(2)时钟部分:为DSP芯片提供时钟一般有两种方法。一种是采用晶体,一种是采用外部有源时钟芯片。本设计采用前者。它利用了DSP芯片内部所提供的晶振电路,在DSP芯片的X1和X2之间连接一晶体可启动内部振荡器。
(3)仿真部分:这一部分将作为程序的调试和烧录所用。2812芯片提供了5个标准的JTAG信号(TRST、TCK、TMS、TDI、TDO)和两个仿真引脚(EMU0、EMU1)。
3.2 ADS8364的接口设计
ADS8364采用+5V模拟电源(AVDD)和数字电源(DVDD),而其内部的缓冲器采用与TMS320F2812相同的+3.3V电压。缓冲器电压(BVDD)允许直接连接到3V或5V电压系统。TMS320F2812的I/O电压为+3.3V,因此,若使用该元件,ADS8364的BVDD必须设置成3.3V。
在这个设计中,ADS8364采用的是4MHz时钟。每个通道的吞吐率最大可达200ksps。将ADS的地址线A[2:0]接到TMS320F2812的地址线。当A0接到数字地,A2和A1接到VCC上可迫使ADS8364进入周期模式。在这个模式中,转换器可自动对六个通道进行采样,并可将数据按从A0到C1的顺序传送到输出端。
将ADS8364的BYTE引脚接到VCC上,可以使能字节模式。在这个模式中,要从ADC中正确地读取数据,需要对每个通道进行两次连续的读操作。第一次读取的是转换数据的高位字节,第二次读取的是低位字节。假如通道信息要作为数据输出的一部分,那么,应将ADS8364的ADD引脚也接到VCC。读取数据时,需要对ADS8364的每个通道进行三次读操作。第一次读取通道和数据信息,后两次分别读取高位和低位数据。
3.3 ADC的初始化操作
触发ADS8364的复位引脚RST可以确保读指针指向第一个数据位置。作为TMS320F2812初始化的一部分,由TMS320F2812的通用输入输出口GPIOF0提供给ADS8364的引脚RST。当系统时钟稳定后,被触发为低电平,从而确保了从ADC输出的数据对应于通道A0、A1、B0、B1、C0、C1的排列。
对于每一个转换通道,EOC均是低电平信号。 ADS8364可为TMS320F2812提供三个脉冲。每个脉冲信号表明一个转换的结束。当ADC的这三个引脚同时置低时,三个通道被认为有效并同时进行转换。另外,EOC引脚也可被连接到TMS320F2812的一个中断引脚,以触发一个读周期。
ADS8364的片选CS是一个有源低电平输入信号。当CS为高时,并行输出引脚处于高阻态。当CS为低时,并行数据线反映了输出缓冲器的当前状态。为了正确地从ADS8364的并行数据总线上读取数据,ADS8364必须被片选CS选中后才能进行读操作。
ADS8364的读(RD)信号端也是有源低电平信号。当CS为低时,在读信号(RD)的下降沿,ADS8364 中寄存器的内容将被更新。这意味着在每个读序列之前,RD信号必须被触发,这样才能更新输出缓冲器。通过TMS320F2812的中断子程序将ADS8364的RD引脚置低可以保存输入的数据,之后可再将RD引脚置高。
ADS8364与TMS320F2812的连接图
4 初始化编程
(1)头文件(.H)的编写:主要用来定义片内寄存器以便函数中引用
例如:系统控制与状态寄存器的定义:
struct SCSR_BITS
{ // 位描述
Uint16 WDOVERRIDE:1; // 0 允许看门狗无效位
……};
union SCSR_REG
{
Uint16 all;
struct SCSR_BITS bit;
};
此外头文件中还声明一些全局函数和常量。