會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客



(1) 2 »


33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15220
離線
根據33EP的DATASHEET,好像可以取樣到3MHz 12位元。
我微控器操作在70 MIPS
我寫了一個pwm觸發adc後,adc轉換完成後中斷的函式
發現最快只能做到幾百k而以,請高手指點怎麼寫這個中斷函式最快

我的的需求是一個256的ARRAY,要把它填滿後再禁能中斷
我寫的大概如下(細節可能有點記不清):


VOID INTERRUPT ( (AUOT_PSV,SHADOW)) _ADCANI0()
{
EXTERNAL VOLATILE ARRAY[256];
EXTERNAL COUNT;

TEST_IO = 0;
NOP();
TEST_IO = 1;


ARRAR{COUNT] = ADCBUF0;
COUNT++;
IF (COUNT >= 256)
STOP旗標=1;


}

3月08日 14:42:04
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2012/05/04 19:18
所屬群組:
註冊會員
文章: 221
等級: 13; EXP: 88
HP : 0 / 322
MP : 73 / 6555
離線
不知道有沒有DMA?

3月08日 15:32:31
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15220
離線
應該沒有DMA...

3月10日 23:44:54
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15220
離線
確認33EP系列沒有DMA。
想請教高手如何寫此中斷程式,可以把取樣率拉到最高,目前是70MHz的MIPS,希望至少做到1.28MHz。

orz

3月11日 14:22:55
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2012/05/04 19:18
所屬群組:
註冊會員
文章: 221
等級: 13; EXP: 88
HP : 0 / 322
MP : 73 / 6555
離線
除非你進中斷到出中斷的時間比下一次PWM觸發還要慢,否則你ADC的SAMPLING RATE應該被PWM觸發的速度限制住才對!
再來就是印象中16BIT MCU的ADC應該有BUFFER,可以善用BUFFER,BUFFER滿了在拿或許會比較不佔用中斷時間,而且應該也不用每次轉換每次中斷,等BUFFER滿了再放到你的ARRAY!
我也不知道能不能幫到你,討論看看...

3月12日 08:35:03
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15220
離線
引用:

Edison_yu 寫道:
除非你進中斷到出中斷的時間比下一次PWM觸發還要慢,否則你ADC的SAMPLING RATE應該被PWM觸發的速度限制住才對!
再來就是印象中16BIT MCU的ADC應該有BUFFER,可以善用BUFFER,BUFFER滿了在拿或許會比較不佔用中斷時間,而且應該也不用每次轉換每次中斷,等BUFFER滿了再放到你的ARRAY!
我也不知道能不能幫到你,討論看看...


謝謝對快,可能有幾個方面:
1.中斷怎麼寫(進入)最快,要下什麼特別參數、或者是中斷函式內要不要減少變數?
2.在沒有DMA的情況下,怎麼寫程式來做到儲存、INDEX++、確認INDEX是否到頂了

你說的ADCBUF應該只有自己AN的,我要256 雙BYTE,應該不行

3月12日 15:32:58
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2012/05/04 19:18
所屬群組:
註冊會員
文章: 221
等級: 13; EXP: 88
HP : 0 / 322
MP : 73 / 6555
離線
想請問IC型號是甚麼呢?

3月12日 16:51:31
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14691
等級: 73; EXP: 35
HP : 1085 / 1808
MP : 4897 / 79174
離線
如下圖 ADC 的規格,Tad 最快為 14.28nS, ADC 12-bit 的轉換需 14 個 Tad。所以一個轉換最快的時間為 200nS。

再加上取樣時間,最高速的一個 12-bit 轉換時間依 Data Sheet 所示為: 3.25Msps.

最愾轉換方是以內部的 Tad 時脈驅動的觸發轉換。請確定你的 Tad 的設定是否到 14.28nS? 這是高速轉換的必要設定。

附加檔案:



jpg  擷取.JPG (102.32 KB)
16_5c88ac4b503cf.jpg 931X449 px

3月13日 15:07:55
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15220
離線
引用:

Edison_yu 寫道:
想請問IC型號是甚麼呢?


33EP64GS002

3月14日 20:20:57
轉換PDF檔 列印


Re: 33EP系列ADC取樣到極限的中斷函式如何寫?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15220
離線
版大你好,感謝你的回應與對話。

我查過我的程式,發現和CONVERSION的時間我都沒有設定,查DATASHEET了初始值都是0,我想預設應該就是最小時間。
但我查了一下我的CLK COURCE本來是設FRC比較慢,我把它改為SYSTEM CLOCK
你附的DATASHEET我算了一下這個時間大概是1/70 MIPS,也就是一個CYCLE的轉換時間。

想請問你說要設到14個TAD,若我設0會有問題嗎?

另外我發現用PWM去觸發ADC,我在中斷會送一個HIGH-LOW信號出來判斷

我測試週期和DUTY cycle這兩個參數,DUTY cycle可以設很小沒問題,
但週期大概只能小到一定數值,再小ADC的中斷就不會出現(會沒有HIGH-LOW輸出)
這個極限值的PWM CYCLE大概190K Hz左右。變成限制我的adc也只能做到這個取樣率,我不知道原因為何。可有任何建議?

3月18日 16:35:52
轉換PDF檔 列印



(1) 2 »



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

[進階搜尋]


搜尋
Microchip連結

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