會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



« 1 2 (3) 4 »


Re: 如何寫多通道AD做過電壓保護中斷程式
初級會員
註冊日期:
1月05日 17:30:44
所屬群組:
註冊會員
文章: 35
等級: 4; EXP: 68
HP : 0 / 92
MP : 11 / 212
離線
那請問為什麼每隔44us 執行一次中斷還會跳去處理主程式??
不好意思這裡我還是有點不懂

還有我設定FOSC/8(在手冊裡建議主頻率最大5MHz AD轉換時間須設定FOSC/8,4M最接近5M所以採用FOSC/8, FOSC=4MHz, FOSC/8=2us)
用示波器觀測保護反應時間是在950us
也就是說打一個超過保護電壓範圍的脈波給AD 到發出保護訊號的時間差約為950us

而使用RC oscillator 反應時間在200us-1.5ms太不精確而不考慮

使用FOSC/2、FOSC/4測試的話 發現似乎是中斷時間過快頻率過高 主程式完全不會執行

是不是設定頻率過快 MCU去處理主程式處理時間會太少 會導致主程式會變成一陣陣的頻率?

3月08日 11:28:49
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14126
等級: 72; EXP: 47
HP : 1072 / 1786
MP : 4708 / 70345
離線
點亮 LED 會不會拖慢程式的執行,這端看你的程式架構。

我的做法是由 Timer 中斷函數來控制 LED 點亮的時間。
比如說 Timer1 的中斷時間為 5mS 一次。在中斷裡會又檢查 LED1_Count == 0 的判斷式,假設 LED1_Count 不等於零時 LED1 點亮,並將 LED1_Count --; 直到 LED1_Count == 0; 所以中斷程式會自動判斷要不要點亮或熄滅 LED1 了。
主程式要點 LED1 時就很簡單了。假如要點亮 LED1 1 一秒時,這時只要將 LED1_Count = 200 這樣就可以了。中斷裡會自動計時的。
以這種架構在點亮需要延時的 LED 就會拖累主程式,而且點燈變得很簡單。要亮幾顆 LED 都沒問題的。

3月08日 11:33:57
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14126
等級: 72; EXP: 47
HP : 1072 / 1786
MP : 4708 / 70345
離線
使用軟體方式來偵測突波後再啟動保護機制... 這通常都來不及了。突波,過壓,過流 等保戶通常是要用硬體來完成的。使用 ADC 偵測這也是安慰一下自己而已。通常 ADC 在這種腳色下只能做調整用,無法做到立即的保護的。

你可以看一下 Microchip 的馬達控至元件或一些有 Enhance PWM 輸出的周邊都會有 Fault 的腳位輸入,一但 Fault 腳偵測到錯誤訊息立即以硬體方式切斷 PWM 的輸出。

3月08日 11:42:38
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
初級會員
註冊日期:
1月05日 17:30:44
所屬群組:
註冊會員
文章: 35
等級: 4; EXP: 68
HP : 0 / 92
MP : 11 / 212
離線
引用:

Ryang 寫道:
使用軟體方式來偵測突波後再啟動保護機制... 這通常都來不及了。突波,過壓,過流 等保戶通常是要用硬體來完成的。使用 ADC 偵測這也是安慰一下自己而已。通常 ADC 在這種腳色下只能做調整用,無法做到立即的保護的。

你可以看一下 Microchip 的馬達控至元件或一些有 Enhance PWM 輸出的周邊都會有 Fault 的腳位輸入,一但 Fault 腳偵測到錯誤訊息立即以硬體方式切斷 PWM 的輸出。


我司的產品都是用ADC去控制硬體發出保護 原本是用Holtek的MCU組語去寫 現在改用PIC 真的沒辦法嗎?

3月08日 12:01:34
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
中級會員
註冊日期:
2014/05/28 13:30
所屬群組:
註冊會員
文章: 43
等級: 5; EXP: 35
HP : 0 / 108
MP : 14 / 1081
離線
我想版主Ryang並不是說PIC辦不到,
而是要用"硬體"偵測的方式才能又快又及時,
尤其是用於保護的用途,
以ADC來說=>取樣再到轉換通常就會耗費掉"us"等級的時間,
比較敏感的元件通常在幾個us的錯誤就升天了,
更何況你的MCU不只要做ADC這件事情而已,
再者還可以談到你偵測到錯誤後輸出IO的時間,
種種的因素都會影響到你保護的即時性,

至於多通道掃描的MCU,
這個可能要自己找了...我用過的8bit都沒這個功能..
通常16或32才會比較常見..
以上有錯請各位前輩指正 謝謝!!

3月08日 13:58:24
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
資深會員
註冊日期:
2009/04/07 13:30
所屬群組:
註冊會員
文章: 158
等級: 11; EXP: 62
HP : 0 / 265
MP : 52 / 6627
離線
那請問為什麼每隔44us 執行一次中斷還會跳去處理主程式??
不好意思這裡我還是有點不懂


對不起! 要先等我.... 哈~ 哈~ 哈..... !
因為你真的是搞錯了沒錯.
並不是 "...還會跳去處理主程式??" ,
而是在執行主程式的時候, 出現了 有效中斷 的狀況,
MCU 的執行控制單元於是先停下了要繼續的程序,
然後跳往 中斷程序 去執行需要的動作,
一直到 中斷程序 的結尾處離開後,
才繼續了未進中斷前該執行的程序.

以目前這個程式來說,
是執行 主程式 時老是被 中斷, 跳進了中斷程序.

至於如果要問說為什麼會跳進中斷?
這就不是來問我的事了,
因為這是 PIC mcu 設計者的硬體設計,
是要使用這個 mcu 時要去了解的規則,
它就是被設計當 ADC 轉換完成時會令 ADIF = 1,
而此時如果 允許ADC中斷(GIE=1,PEIE=1,ADIE=1),
那就是會產生跳往中斷的動作了.


還有我設定FOSC/8(在手冊裡建議主頻率最大5MHz AD轉換時間須設定FOSC/8,
4M最接近5M所以採用FOSC/8, FOSC=4MHz, FOSC/8=2us)
:
:
:
使用FOSC/2、FOSC/4測試的話 發現似乎是中斷時間過快頻率過高 主程式完全不會執行

是不是設定頻率過快 MCU去處理主程式處理時間會太少 會導致主程式會變成一陣陣的頻率?



即然你都翻了手冊了,
沒有就直接讀仔細點那真是有點可惜了.
因為可能要看我以下是不是唬爛的, 又要再去翻一次了.

手冊中敘述著,
pic16F877A 的 ADC 模組要選擇 Tad 不得小於 最小值 1.6 us,
(不然呢! 你咬我嗎? ) (因為他也沒說會發生什麼事, 所以我也就不知道了)
接著的才是你看到表格.
osc = 5Mhz, Tosc = 0.2 us, 8 Tosc = 1.6 us (剛剛好)

不過他並沒有說 不能大於最小值 1.6 us,
所以是可以選 8 Tosc/ 16 Tosc/ 32 Tosc/ 64 Tosc,
只是選越大的基礎轉換時間, 整個 ADC 轉換就需要長一點的時間.

( 如果你看得更仔細一點...
好像有個 "12 Tad" 閃過 ) (我好像聽到臉上被 - 啪 - 一聲)

3月08日 14:33:54
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
初級會員
註冊日期:
1月05日 17:30:44
所屬群組:
註冊會員
文章: 35
等級: 4; EXP: 68
HP : 0 / 92
MP : 11 / 212
離線
目前PIC16F877A只是學習用
屆時會更換PIC16F1786作為產品
這顆似乎有Auto Conversion Trigger功能
該如何使用呢?

3月08日 18:26:47

ben.huang 於 2017年03月08日 18:52:29
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 943
等級: 27; EXP: 31
HP : 0 / 657
MP : 314 / 19948
離線
其實這個問題,算是規格問題....

過電壓保護...

請問:
1. 什麼情形叫過電壓(超過多少)?
2. 反應時間在多少以內?

一般而言,是愈快愈好,是用"硬體"來做,才能即時反應...

提外話,保險絲也有快熔(F)與慢熔(T)...

討論問題,最好有規格,不然大家用常理推測...
過電壓保護 => 硬體電路保護

先有(需求)規格,後有(解決)方案

3月09日 08:09:15
_________________
程式是
依照寫出來(的code),跑出結果
不是依照你想出來的,得到結果

先有需求規格 後有解決方案
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
初級會員
註冊日期:
1月05日 17:30:44
所屬群組:
註冊會員
文章: 35
等級: 4; EXP: 68
HP : 0 / 92
MP : 11 / 212
離線
引用:

jason680 寫道:
其實這個問題,算是規格問題....

過電壓保護...

請問:
1. 什麼情形叫過電壓(超過多少)?
2. 反應時間在多少以內?

一般而言,是愈快愈好,是用"硬體"來做,才能即時反應...

提外話,保險絲也有快熔(F)與慢熔(T)...

討論問題,最好有規格,不然大家用常理推測...
過電壓保護 => 硬體電路保護

先有(需求)規格,後有(解決)方案


1.每個通道都可以透過軟體設定在超過幾伏特產生高位訊號(保護訊號)

2.這方面還要在測試 一般來說在500us最好

因為硬體設計需求 是需要有一個高位訊號(High)來產生保護
其實正確來說應該是過電流保護(OCP) 偵測電流是透過INA138轉換成電壓的比例值去發送給AD pin 再用公式換算 所以超過多少電壓值=超過多少電流

3月09日 09:52:01
轉換PDF檔 列印


Re: 如何寫多通道AD做過電壓保護中斷程式
資深會員
註冊日期:
2012/05/04 19:18
所屬群組:
註冊會員
文章: 180
等級: 12; EXP: 47
HP : 0 / 286
MP : 60 / 4576
離線
如果你的保護速度要快,就必須要用硬體才快得起來,可以先將INA138的VO接到比較器的一端(IN+),然後給一個參考電壓源給(IN-),當VO超過IN-時,比較器會輸出High,透過這個訊號去觸發MCU進行AD轉換或保護,也可用MCU內部有含比較器的型號,再者平時可以用TIMER每10ms中斷一次來提醒你去進行進行AD轉換或保護的工作,這樣不就都快速慢速都達到你的需求了嗎?

3月09日 11:27:58
轉換PDF檔 列印



« 1 2 (3) 4 »



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project