<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > SN 8 位單片機 SN8P2743 應用實踐(2)

          SN 8 位單片機 SN8P2743 應用實踐(2)

          作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
          SN8P2743 是一較新的型號,內(nèi)部含有放大器,比較器,AD 轉(zhuǎn)換器并且有外部基準電壓參考輸入.....4K*16位 空間,感覺上比較"價廉物美!"
          通常,我們使用SN單片機的 AD 功能時,如果選擇外部基準電壓,可以利用廉價的 TL431 提供 2.5V 左右的高穩(wěn)定度電壓,即使通著電的240℃高溫電烙鐵靠上去,TL431 的輸出波動也僅僅 1~3mV ,此時,系統(tǒng)可以把 5V 基準時得到的 12BIT AD 變成 2.5V 基準得到了 12BIT AD,這是非常劃算的舉措! ---- 一方面,等同于使用了一只 2 倍放大的無偏移,無失調(diào),無溫飄的放大電路,另外一方面,讓AD 的參考值具有高達 50ppm 的溫度系數(shù)!

          我就在最近使用 2743 的外部基準和 AD 功能時,遇見一個問題:

          AD 讀數(shù)遠遠相差期望值很遠很遠!仿真器的轉(zhuǎn)接板上,AVREFH 測量到的基準電壓不是 2.5V,而是 5.0V ,怎么回事呢?

          檢查仿真器上外部/內(nèi)部基準 AVREFH 插頭,已經(jīng)拔開!(必須拔開!)

          以為是需要外接基準電壓,于是,把轉(zhuǎn)接板上 AVREFH 的插針與外部基準 TL431 直接連接,看看是否正確? 結(jié)果,電壓變成比 2.5V 稍大了 0.1~0.3V ,不穩(wěn)定.由于事先有準備,不停摸一下 TL431,發(fā)現(xiàn)其溫度上升,感覺此舉錯誤,趕緊脫開 AVREFH 與 TL431 的連接.
          轉(zhuǎn)接板與目標板是具有引腳一對一關(guān)系的,外部基準實際已經(jīng)到達芯片對應引腳,為什么轉(zhuǎn)接板上 AVREFH 測量不到呢?
          查看轉(zhuǎn)接板上,原來這些接口是利用一種 NLAS4501DFT2G 通用單刀單擲模擬開關(guān)來切換的!為此,臨時上網(wǎng)查閱該芯片的手冊.費了不少勁!
          小心測量 NLAS4501DFT2G 芯片的控制引腳,發(fā)現(xiàn)與"選擇外部基準"的指令不同,怎么回事?

          再重新閱讀 2743 的數(shù)據(jù)手冊,在 ADM 寄存器里,比通常的 SN 帶 AD 單片機多了一個 FAVREFH 位,它 =1 則是選擇外部基準! ---- 這里,通常不會出錯!指令是正確的!

          再看看它給出的示例:

          ADC操作舉例

          ADC:
          ; 復位ADC。
          CLR ADM ; 清ADM 寄存器。
          ; 設置ADC 時鐘Rate 和ADC 分辨率。
          MOV A, #0nmn0000b ; nn:ADCKS[1:0]代表ADC 時鐘Rate。
          B0MOV ADR, A ; m 代表ADC 分辨率。
          ; 設置ADC 參考高電壓。
          B0BCLR FAVREFH ; 內(nèi)部VDD。
          or
          B0BSET FAVREFH ; 外部參考源。
          ; 設置ADC 輸入通道。
          MOV A, #value1 ; 設置P4CON 選擇ADC 輸入通道。
          B0MOV P4CON, A
          MOV A, #value2 ; 設置ADC 輸入通道為輸入模式。
          B0MOV P4M, A
          MOV A, #value3 ; 禁止ADC 輸入通道的內(nèi)部上拉電阻。
          B0MOV P4UR, A
          ; 使能ADC。
          B0BSET FADCENB
          ; 執(zhí)行ADC 100us 啟動時間延遲循環(huán)。
          CALL 100usDLY ; 100us 延遲循環(huán)。
          ; 選擇ADC 輸入通道。
          MOV A, #value ; 設置ADCHS[2:0]選擇ADC 輸入通道。
          OR ADM, A
          ; 使能ADC 輸入通道。
          B0BSET FGCHS
          ; 使能ADC 中斷功能。
          B0BCLR FADCIRQ ; 清ADC 中斷請求。
          B0BSET FADCIEN ; 使能ADC 中斷功能。
          ; 開始AD 轉(zhuǎn)換。
          B0BSET FADS
          好了!問題找到了! ----- 看看這一句:CLR ADM ; 清ADM 寄存器。---- 這里就把 BIT3 重新變成 0 了!
          一個單片機系統(tǒng),除了 AD 轉(zhuǎn)換之外,大部分時間都在運行其它程序,FAVREFH (ADM.3)在程序指令下,會從 1 變成 0,又從 0 變成 1 ! 不停切換外部基準/內(nèi)部基準,當然就會讓外部基準不停變化了!
          于是,刪除這一句: " CLR ADM ; 清ADM 寄存器 " !

          并且,在上電后最先的系統(tǒng)初始化時,就讓 FAVREFH (ADM.3)=1 ! 以后,就必須牢記不能動這一位!選擇AD通道時,可以使用 OR 指令或 AND 指令去改變 ADM ,當然,如果充分注意,仍然可以使用 MOV ADM,#value 去賦值!

          例如:;B3:FAVREFH=1 外部參考源。

          ;選擇ADC 輸入通道:
          MOV A,#098H ;=P40----FAVREFH (ADM.3)=1
          ;或
          MOV A,#099H ;=P41----FAVREFH (ADM.3)=1
          ;或
          MOV A,#09AH ;=P42----FAVREFH (ADM.3)=1
          ;或
          MOV ADM,A
          ZB1 FADS; 開始AD 轉(zhuǎn)換。
          ;................
          經(jīng)過這樣處理,測量轉(zhuǎn)接板上 AVREFH 的插針上就是 2.5V ,穩(wěn)定不動! AD 轉(zhuǎn)換讀數(shù)也變成正常了!

          ------ 當然了,P4M,P4UR,P4CON 這些相關(guān)寄存器仍然需要小心正確設置的!

          此經(jīng)歷特別貼出,供朋友們使用 2743 時留意參考! ---- 隨著應用深入,如果再發(fā)現(xiàn)有比較古怪的問題,再行貼出!

          上一頁 1 2 下一頁

          關(guān)鍵詞: 單片機SN8P2743應用實

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();