新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 并行模數(shù)轉(zhuǎn)換器ADS8364與TMS320F2812的接口設(shè)計(jì)

并行模數(shù)轉(zhuǎn)換器ADS8364與TMS320F2812的接口設(shè)計(jì)

作者: 時(shí)間:2009-03-31 來源:網(wǎng)絡(luò) 收藏

例如:extern void InitAdc(void); //初始化ADC函數(shù)

(2)命令文件(.CMD)的編寫:該文件中用到了兩個(gè)偽指令MEMORY和SECTIONS。

MEMORY偽指令用來標(biāo)示實(shí)際存在的目標(biāo)系統(tǒng)中可被使用的存儲(chǔ)器范圍。

SECTIONS偽指令用來定位一些代碼和數(shù)據(jù)塊。

部分代碼:

MEMORY

{

PAGE 0 : //聲明了片內(nèi)的存儲(chǔ)單元,包括起始地址和長度

PRAMH0 : origin = 0x3F8000, length = 0x001000

PAGE 1 :

RAMM0 : origin = 0x000000, length = 0x000400

……

}

SECTIONS

{ codestart : PRAMH0, PAGE = 0 /*定位代碼數(shù)據(jù)段*/

PieCtrlRegsFile : > PIE_CTRL, PAGE = 1 /* 定位各外設(shè)的積存器結(jié)構(gòu)體 */

……

}

(3)主程序及中斷程序:

void main(void)

{ ……

InitSysCtrl(); //調(diào)用初始化系統(tǒng)控制函數(shù)

//該函數(shù)用于初始化系統(tǒng)控制寄存器、PLL、看門狗、時(shí)鐘

InitGpio(); //調(diào)用初始化GPIO函數(shù),用于選擇適當(dāng)?shù)腉PIO

Reset(); //復(fù)位

……

DINT; // 禁止和清楚所有CPU中斷

IER = 0x0000; IFR = 0x0000;

InitPieCtrl(); // 初始化Pie控制寄存器為默認(rèn)值

InitPieVectTable(); // 初始化中斷向量表

……

EINT; // 使能全局中斷 INTM

PWM(); //開啟轉(zhuǎn)換時(shí)鐘

while(1) // 循環(huán),根據(jù)條件讀數(shù)并產(chǎn)生中斷

{……}

}

void read_ADD() //該函數(shù)讀取采集的數(shù)據(jù)

{ //根據(jù)通道讀取數(shù)據(jù)

if (ADD_Mode){ADC_address[0] = (*ptrCHA0);}

……

if (ADD_Mode){ADC_address[5] = (*ptrCHC1);}

CHC1_Data[idx] = *ptrCHC1;

}

5 結(jié)束語

本文以轉(zhuǎn)換芯片為基礎(chǔ),詳細(xì)討論了ADS8364和和工作原理,重點(diǎn)介紹了控制芯片的最小系統(tǒng)、ADS8364和的連接、初始化程序等三部分內(nèi)容。該方案在電機(jī)控制、多軸定位系統(tǒng)、多通道數(shù)據(jù)采集等場合有著廣泛的應(yīng)用。


上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

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

關(guān)閉