新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于HCS12(X)單片機AD的深層次的一些東西

關于HCS12(X)單片機AD的深層次的一些東西

作者: 時間:2016-11-27 來源:網絡 收藏

關于AD,一直有人問一些東西,應該是屬于AD比較深的東西,答應總結一個貼子.
大部分來自中電網陳剛版主的精典問答,如果要用加速度傳感器,請看完下面的,如果想用好多路AD轉換請看完下面的.
一般小車可能不需要,因為一般用的是單次轉換單通道無FIFO模式.

本文引用地址:http://www.butianyuan.cn/article/201611/322218.htm

1為什么要多次轉換?

ATD模塊有8個結果寄存器,所以它的AD轉換有這樣的功能,就是對一個或多個通道連續(xù)進行轉換,將結果順序放入這8個結果寄存器中。這樣用戶如果要取一個通道的平均值,或取多個通道的值,都很方便了,就不用軟件一次一次地去轉換了


2 ATDCTL3 那個S8C、S4C等決定的轉換序列長度是什么意思?
ATDCTL3中的S8C~S1C決定了一個轉換序列的長度,即一個轉換序列共轉換多少次。你可以選擇做一次AD轉換的過程,是對一個通道連續(xù)轉換多次,還是對多個通道連續(xù)進行轉換,這由ATDCLT5的MULT位決定。

3 如果選擇了多通道,MULT=1,那么CC、CB、CA、只是控制第一個轉換的通道那么我就沒有找到該如何制定具體由哪幾個通道轉換的控制字。。。比如光要0、1、3三個通道轉換。。。難道本身轉換就是8個通道全部轉一遍的?

S8C~S1C就控制每輪進行多少次轉換,最多為8。比如可以選擇為6,那么每6次轉換稱為一個序列。 如果選擇了多通道轉換,那么CC、CB和CA選擇首個轉換的通道,后面的通道按通道號排列。比如S8C~S1C選擇轉換數(shù)為6,MULT設為1,而CC、CB和CA選擇通道4,那么轉換開始后,AD模塊將按通道4、通道5、通道6、通道7、通道0、通道1的順序依次進行轉換,并將轉換結果依次放入6個結果寄存器中。要注意并不能間隔選擇通道。

4 在HC12系列單片機中,當控制寄存器5中S8CM=0(即一個轉換序列轉4次),MULT=0(即單通道轉換)時,是在一個轉換序列中對一個通道連續(xù)轉換四次;而在S12系列中,當轉換序列長度設置為1,MULT=0時,每進行一個序列的轉換是對該通道轉換一次,還是轉換四次?

在S12系列中,當轉換序列長度設置為1(S8C:S1C=0001),MULT=0時,只對一個通道進行一次轉換。

5 關于控制寄存器ATD0CTL3中FIFO的使用
假定要轉換的序列為3,即通道3、4、5,轉換模式為連續(xù)轉換(SCAN=1)
(1)當FIFO=0時,轉換結果是存儲在ATD0DR0-ATD0DR2中,還是存儲在ATD0DR3-ATD0DR5中?
當一個序列轉換結束后,下一個轉換序列的結果還是存儲在這幾個對應寄存器中,對嗎?
(2)當FIFO=1時,轉換結果是存儲在ATD0DR0-ATD0DR2中,還是存儲在ATD0DR3-ATD0DR5中?
當一個序列轉換結束后,下一個轉換序列的結果是存儲在緊接其后的幾個對應寄存器中,循環(huán)存儲(即存儲到ATD0DR7后,返回ATD0DR0,在從ATD0DR0-ATD0DR7存儲),對嗎?

假定要轉換的序列為3,即通道3、4、5,轉換模式為連續(xù)轉換(SCAN=1)
(1)當FIFO=0時,轉換結果是存儲在ATD0DR0-ATD0DR2中;當一個序列轉換結束后,下一個轉換序列的結果還是存儲在這幾個對應寄存器中。
(2)當FIFO=1時,第一次轉換結果存儲在ATD0DR0-ATD0DR2中;當一個序列轉換結束后,下一個轉換序列的結果是存儲在緊接其后的幾個對應寄存器中,循環(huán)存儲(即存儲到ATD0DR7后,返回ATD0DR0,再從ATD0DR0-ATD0DR7存儲)。

6 通道轉換是不是通過設置這二個寄存器,ATDCTRL3中轉換序列的長度來采集設置需要的通道數(shù).還有ATDCTRL5中的MULT來設置啟動多通道轉換?
是的,ATDCTRL5設置成多通道轉換后,ATDCTRL3設置采集的通道數(shù),此外ATDCTRL5中還需要設置多通道采集的起始通道。比如采集7個通道,起始通道是1,那么就采集從1-7通道,如果起始通道是2,就采集2-7,還有0通道。

7 多通道轉換應該是同時進行的吧?各個通道的轉換結果分別放在哪個數(shù)據(jù)寄存器(這一點我非常困惑)?
多通道轉換也不是同時的,可以看AD的系統(tǒng)框圖,只有一個采樣保持電路,前面通過8通道選擇器來選擇通道,所以不能同時,只是多通道一次采集過程可以連續(xù)連續(xù)采集多個通道。每個通道的結果都保存在各自的結果寄存器reslut registers中

8 MC9SDg128上面有16個AD通道,而寄存器上好像只能啟動8個通道吧?另外8個通道該如何使用?
DG128是兩個8通道的AD,看dg128的數(shù)據(jù)手冊總的memory map,AD0的寄存器在基址的$0080-$009F 32個字節(jié)的地方, AD1的寄存器在基址的$0120-$013F 32個字節(jié)的地方。



關鍵詞: HCS12(X)單片機A

評論


相關推薦

技術專區(qū)

關閉