80S51與高速ADC晶片溝通問題 |
缺席
|
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
請問你是用那一顆ADC?
ADC的動作是你在控制的,一般的A/D還要讓MCU等.你這樣會有什麼問題
我不知道耶... 還有取樣率並不是轉換時間,有的A/D會做sample and hold然後再做轉換.
如果(取樣 轉換)它都比MCU快,那應該沒問題才對.且這樣的A/D一定不便宜..
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
倘若ADC頻率1MHz,也就是說我89S51必須在1us內處理完ADC資料,
才能保證資料不miss
但我需要把ADC資料存放於外部的RAM中,算一算應該趕不上阿
我的算法如下:
假設晶片的OE已經為low了,而預定要存放ADC資料於外部RAM的起始位置也已經設定好了,因此我可以寫指令把ADC讀進MCU再存放到外部RAM,程式碼區段大概如下
READC: MOVX A,@R0 ;讀入ADC資料 MOVX @DPTR,A ;將讀到ADC的結果存入外部RAM INC DPL ;調整下一筆資料於外部RAM的存放位置 AJMP READC ;重新讀取上面的指令算一算共需7個machine cycle,而89S51極速為2.75MHz,換算起來MCU處理一筆資料約要費時7*(1/(2.75*10^6))=2.55us >< MCU處理速度完全趕不上ADC 到底有沒有方法可以克服呢? 還是有沒有方法可以直接將ADC結果不經MCU就存入外部RAM呢? 有點快想破頭了 |
阿信
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
|
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
|
kokalin
一般會員 ![]() ![]() 發表:13 回覆:19 積分:6 註冊:2004-07-29 發送簡訊給我 |
之前為了這個問題搞了好一段時間
經過板上好幾位高手的幫忙,才得以讓我有解決的方法
本來是打算要用DMA controller的,不過由於種種因素......所以放棄 新的方法仍然是沿用DMA controller的概念
不過是利用counter來實現,我的電路圖如下
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |