例如:extern void InitAdc(void); //初始化ADC函数
(2)命令文件(.CMD)的编写:该文件中用到了两个伪指令MEMORY和SECTIONS。
MEMORY伪指令用来标示实际存在的目标系统中可被使用的存储器范围。
SECTIONS伪指令用来定位一些代码和数据块。
部分代码:
MEMORY
{
PAGE 0 : //声明了片内的存储单元,包括起始地址和长度
PRAMH0 : origin = 0x3F8000, length = 0x001000
PAGE 1 :
RAMM0 : origin = 0x000000, length = 0x000400
……
}
SECTIONS
{ codestart : PRAMH0, PAGE = 0 /*定位代码数据段*/
PieCtrlRegsFile : > PIE_CTRL, PAGE = 1 /* 定位各外设的积存器结构体 */
……
}
(3)主程序及中断程序:
void main(void)
{ ……
InitSysCtrl(); //调用初始化系统控制函数
//该函数用于初始化系统控制寄存器、PLL、看门狗、时钟
InitGpio(); //调用初始化GPIO函数,用于选择适当的GPIO
ResetADS8364(); //复位ADS8364
……
DINT; // 禁止和清楚所有CPU中断
IER = 0x0000; IFR = 0x0000;
InitPieCtrl(); // 初始化Pie控制寄存器为默认值
InitPieVectTable(); // 初始化中断向量表
……
EINT; // 使能全局中断 INTM
PWM(); //开启转换时钟
while(1) // 循环,根据条件读数并产生中断
{……}
}
void read_ADD() //该函数读取采集的数据
{ //根据通道读取数据
if (ADD_Mode){ADC_address[0] = (*ptrCHA0);}
……
if (ADD_Mode){ADC_address[5] = (*ptrCHC1);}
CHC1_Data[idx] = *ptrCHC1;
}
5 结束语
本文以ADS8364模数转换芯片为基础,详细讨论了ADS8364和TMS320F2812的接口设计和工作原理,重点介绍了TMS320F2812控制芯片的最小系统设计、ADS8364和TMS320F2812的连接、初始化程序等三部分内容。该设计方案在电机控制、多轴定位系统、多通道数据采集等场合有着广泛的应用。