新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MPC5634的控制器多路AD采樣的設(shè)計(jì)

基于MPC5634的控制器多路AD采樣的設(shè)計(jì)

作者: 時(shí)間:2014-10-28 來(lái)源:網(wǎng)絡(luò) 收藏

  

本文引用地址:http://butianyuan.cn/article/264517.htm

?

  圖3 程序流程

  3.1 定義數(shù)組

  本文中cQUEUE0[40]被定義為轉(zhuǎn)換命令的存儲(chǔ)數(shù)組,rQUEUE0[40]被定義為轉(zhuǎn)換結(jié)果的存儲(chǔ)數(shù)組。把所有通道的轉(zhuǎn)換命令分別放在數(shù)組cQUEUE0[40]中,最后采集的結(jié)果分別放在數(shù)組rQUEUE0[40]中,這個(gè)可以隨時(shí)讀取rQUEUE0[40]中的數(shù)據(jù)被汽車(chē)控制器所用。

  3.2 初始化

  TCD0對(duì)應(yīng)于CFIFO0,TCD1對(duì)應(yīng)于RFIFO0.由于本設(shè)計(jì)只要一個(gè)命令緩存CFIFO0和一個(gè)結(jié)果緩存RFIFO0就可以滿(mǎn)足設(shè)計(jì)要求,故只用到一個(gè)CFIFO0,一個(gè)RFIFO0,以及與他們對(duì)應(yīng)的TCD0和TCD1.設(shè)置TCD0:源地址為&cQUEUE0,目的地址為0xFFF80010,源地址偏移為4,傳輸?shù)拇笮?2位,次要字節(jié)傳輸數(shù)NBYTES為2;主迭代數(shù)為40;設(shè)置TCD1:源地址為&rQUEUE0,目的地址為0xFFF80032,源地址偏移為4,傳輸?shù)拇笮?6位,次要字節(jié)傳輸數(shù)NBYTES為2;主迭代數(shù)為40.

  3.3 初始化eQADC

  初始化轉(zhuǎn)換命令的存儲(chǔ)數(shù)組cQUEUE0[40],本設(shè)計(jì)是采用ADC0模塊單元,12位精度,采用校正,一次采集40個(gè)通道的模擬量。配置eQADC的寄存器,時(shí)鐘分頻因子為2,使能0,1請(qǐng)求等。

  3.4 校正寄存器的設(shè)置

  本項(xiàng)目的芯片功能很強(qiáng)大,以前的校正都需要外面加硬件來(lái)校正采樣結(jié)果,自帶的有校正功能,本項(xiàng)目采用的校正是這樣的:ADC的初步轉(zhuǎn)換結(jié)果將通過(guò)MAC單元來(lái)完成校正。MAC單元執(zhí)行下列算法來(lái)進(jìn)行校正:

  Idealresult=GCCXADCresult+OCC+2 (1)

  GCC為增益校正的常數(shù),它是在寄存器ADCn_GCCR中定義的;OCC為偏移量校正常數(shù),它在寄存器ADCn_OCCR中定義的。

  GCCR與OCCR的值是需要計(jì)算來(lái)確定的。通過(guò)以下公式進(jìn)行求解:

  Idealresult1=GCCXADCresult1+OCC+2 (2)

  Idealresult1=GCCXADCresult1+OCC+2 (3)

  為了求出GCCR與OCCR的值,我們只需要兩個(gè)通道的理想結(jié)果和實(shí)際的結(jié)果就行了,通道44和通道43的電壓值分別對(duì)應(yīng)0.25Vdd和0.5Vdd.而他們的實(shí)際結(jié)果可以采集到。因此,可以求出GCCR和OCCR的值。

  3.5 使能DMA請(qǐng)求

  設(shè)置使能DMA0和DMA1請(qǐng)求。

  3.6 觸發(fā)CFIFO0

  設(shè)置CFIFO0為連續(xù)轉(zhuǎn)換模式,這樣就可以連續(xù)、持續(xù)地采集信號(hào),并及時(shí)把采集的結(jié)果放到結(jié)果存儲(chǔ)數(shù)組中,如此就可以保證汽車(chē)控制器在結(jié)果存儲(chǔ)數(shù)組中所讀取的數(shù)據(jù)為最新的采集結(jié)果,可以使控制器根據(jù)最新的數(shù)據(jù)來(lái)控制各個(gè)執(zhí)行器。

  4 主程序和執(zhí)行結(jié)果

  void main(void)

  {

  uint32_t cQUEUE0[40]; //定義命令存儲(chǔ)數(shù)組

  uint16_t rQUEUE0[40]; //結(jié)果存儲(chǔ)數(shù)組

  dma_init_fnc(); //DMA初始化

  eqadc_init_fnc (); //eQADC初始化

  set_calconstants ();//校正寄存器的設(shè)置

  dma_able();//使能DMA0,DMA1

  cfifo0_trig();//使能DMA0,DMA1

  while(1)

  {

  }

  }

  5 結(jié)束語(yǔ)

  本設(shè)計(jì)完成了汽車(chē)控制器的采樣模塊的設(shè)計(jì),它保證在時(shí)間上和精度上滿(mǎn)足汽車(chē)控制器的要求。通過(guò)不斷地測(cè)試,該設(shè)計(jì)達(dá)到了系統(tǒng)所要求的性能和功能。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: MPC5634 AD采樣 DMA

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉