TI(德州仪器)主推高性能TMS320C28x系列TMS320F281232位定点微控制单元(MCU),主频高达150MHz;具备I2C、SPI、CAN、PWM等总线接口,适用于各种控制类工业设备;体积小、性能强、便携性高,同时适用于多种手持设备;符合高低温、振动测试,满足工业环境应用。
TMS320F2812硬件参数CPU:TI TMS320F2812浮点DSP,主频150MHz ROM:片内256Kx16bit,外扩512Kx16bit NOR FLASH
RAM:片内34Kx16bit,外扩256Kx16bit SRAM
EEPROM:2Kbit,AT24C02C
核心板连接器:2x 80pin排针,共160pin,间距1.27mm
LED:2x电源LED(底板1个,核心板1个),6x 用户LED(底板4个,核心板2个)
按键:3x 用户可编程按钮,1x 系统复位按钮
JTAG:Debug,14pin TI Rev B JTAG座,间距2.54mm
eCAN:2x eCAN,3pin接线端子,间距3.81mm
DAC:1x DAC,0-5V,2pin接线端子,间距2.54mm
ADC:1x 16Channel ADC,0-3V,10pin接线端子,间距2.54mm
红外收发器:1x HX1838
启动方式:1x 4bit启动拨码开关
串口:1x UARTA,烧写串口,提供4针TTL电平测试端口;1x UARTB,USB转串口,提供4针TTL电平测试端口;1x UARTC,
RS232,DB9接口,提供4针TTL电平测试端口;1x RS485,3pin接线端子,间距3.81mm,与UARTC接口复用;
SD卡:1x MicroSD卡座
蜂鸣器:1x无源蜂鸣器
继电器:1x 5V继电器
步进电机接口:1x 五线四相步进电机,5pin接线端子,间距2.54mm
直流电机接口:1x 5V直流电机,2pin接线端子,间距2.54mm
音频:1x LINE IN,3.5mm音频座;1x LINE OUT,3.5mm音频座;1x MIC IN,3.5mm音频座;
RTC:1x RTC,CR1220纽扣电池座
网口:1x 10M/100M以太网,RJ45连接器
拓展接口J13:ePWM、GPIO等信号,2x10pin排针,间距2.54mm
拓展接口J14:eQEP、SPI、I2C、GPIO等信号,2x10pin排针,间距2.54mm
拓展接口J15:XINTF、UART、I2C、GPIO等信号,2.54mm,2x25pin简易牛角座
LCD:1x 1602液晶屏接口,16pin排母,间距2.54mm;1x 12864液晶屏接口,20pin排母,间距2.54mm;1x 4.3寸TFT触摸屏接口,2x17pin排针,间距2.54mm
电源接口:1x 5V 2A直流输入,DC-005电源接口
TMS320F2812软件参数
DSP端软件支持:裸机
CCS版本号:CCS5.5
TMS320F2812主要特点TI主推高性能 TMS320C28x系列TMS320F2812 32位定点微控制单元(MCU),主频高达150MHz;
具备I2C、SPI、CAN、PWM等总线接口,适用于各种控制类工业设备;
体积小、性能强、便携性高,同时适用于多种手持设备;
符合高低温、振动测试,满足工业环境应用
AD7656概述AD7656具有最大4 LSBS INL和每通道达250kSPS的采样率,并且在片内包含一个2.5V内部基准电压源和基准缓冲器。该器件仅有典型值160mW的功耗,比最接近的同类双极性输入ADC的功耗降低了60% 。
AD7656包含一个低噪声、宽带采样保持放大器(T/H),以便处理输入频率高达8MHz的信号。该AD7656还具有高速并行和串行接口,可以与微处理器(mcu)或数字信号处理器(DSP)连接。AD7656在串行接口方式下,能提供一个菊花链连接方式,以便把多个ADC连接到一个串行接口上。
AD7656采用具有ADI专利技术的iCMOS(工业CMOS)工艺。iCMOS 工艺是一种高压半导体工艺与亚微米CMOS(互补金属氧化物半导体)和互补双极型工艺相结合的制造上艺。它能开发出承受30V电源电压的多种高性能模拟IC,并且其小封装尺寸是任何其他同类高电压IC都未曾达到的。与使用传统CMOS工艺的模拟IC不同,iCMOS器件能承受高电源电压,同时提高性能、显著降低功耗和缩小封装尺寸。AD7656是使用该种工艺设计制造的产品,所以非常适合在继电保护、电机控制等工业领域使用。
AD7656的特性下图示出AD7656的功能框图。AD7656的主要特性如下:
图1 AD7656的功能框图
●6通道16-bit逐次逼近型ADC;
●最大吞吐率为250kS/s;
●AVCC范围为4.75V-5.25V;
●低功耗:在供电电压为5V、采样速率为250kS/s时的功耗为160mW;
●宽带宽输入:输入频率为50kHz时的信噪比(SNR)为85dB;
●片上有2.5V基准电压源和基准缓冲器;
●有并行和串行接口;
●与SPI/QSPI/μWire/DSP兼容的高速串行接口;
●可通过引脚或软件方式设定输入电压范围(±10V,±5V);
●采用iCMOS工艺技术;
●64引脚QFP。
AD7656与TMS320F2812的接口设计1、AD7656的工作原理
具有并行和串行两种工作模式,本文采用并行工作模式,图2所示是AD7656在并行方式下的工作时序图。首先,由CONVST管脚启动转换,并保持为高电平。然后由AD7656在启动转换信号后输出BUSY信号,当BUSY信号出现下降沿时,代表AD模数转换已经结束。此时,AD7656内部的寄存器已经保存了转换的数据,可通过控制片选CS和读信号RD来依次读出各个通道的AD转换值。读出转换值后,可改变CONVST为低电平,为下一次转换做好准备。但应注意,在设计时,一定要保证AD转换过程中保持CONVST为高电平。
2、AD7656的接口电路设计
要使TMS320F2812能够控制AD7656正常工作,通常需要TMS320F2812提供可满足AD7656工作时序的控制信号。TMS320F2812上的外部存储器接口提供有丰富的控制信号,如地址总线、数据总线、片选信号、读写控制信号、外部中断信号等。此外,TMS320F2812还提供了丰富的通用IO口,也可辅助产生扩展设备的时序控制信号。AD7656的外围电路及其与TMS320F2812的接口设计如图3所示。
图3中的DVCC和AVCC分别是数字电压端和模拟电压端,它们在接入前要经过1个去耦电路,每个供电电压输入引脚都要连接1个去耦电路,该电路由1只10μF和1只100nF的电容器组成。VDD、VSS和VDRIVE同样要连接去耦电路。VDRIVE可以采用5V或3.3V供电,因要和TMS320F2812互联,而TMS320F2812的IO口电压为3.3V,所以,VDRIVE采用3.3V供电。需要注意的是,AD7656上电后必须对其进行复位,复位脉冲应在100ns以上,本文采用RC电路来对AD7656进行复位。
在AD7656与TMS320F2812接口电路中,AD7656的数据输出D0~D15直接和TMS320F2812的数据线相连,可使用TMS320F2812的外部地址片选管脚XZCS67作为AD7656的外部片选信号,并采用GPIOB8来控制AD7656的启动转换,另外,采用GPIOB10来查询AD7656的启动转换是否结束。
数据采集程序设计本设计的数据采集程序 编制主要包括TMS320F2812的IO口初始化、 AD7656控制时序的产生及状态查询 、 采 集 数 据 的 处 理 。 对 应 于AD7656并行接口模式工作时序图, 其详细的软件代码如下:
#define ADC_ADD * ( int *)
0x00100000 //片选
#define ADC_BUSY GpioDataRegs.
GPBDAT.bit.GPIOB10 //转换是否结束
#define ADC_CONVST GpioDataRegs.
GPBDAT.bit.GPIOB8 //启动转换
float ADC_F1 [6] ; //ADC存储值
void ADC (void)
{
unsigned int ADC_TMP;
ADC_CONVST=0;
ADC_CONVST=1; //启动模数转换
while (ADC_BUSY==1) ; //查询转换是否
结束
ADC_TMP=ADC_ADD&0xFFFF; //读取
通道1结果
if ((ADC_TMP&0x8000)! =0x8000) //转换
通道1结果
ADC_F [0] = ((float) (ADC_TMP))
/((float) (0x7FFF)) *10.0;
else
ADC_F [ 0] = ( ( float) ( 0xFFFF -
ADC_TMP)) /((float) (0x7FFF)) * (-10.0) ;
ADC_TMP=ADC_ADD&0xFFFF;
//读取通道2结果
if ((ADC_TMP&0x8000)! =0x8000)
//转换通道2结果
ADC_F [1] = ((float) (ADC_TMP))
/((float) (0x7FFF)) *10.0;
else
ADC_F [ 1] = ( ( float) ( 0xFFFF -
ADC_TMP)) /((float) (0x7FFF)) * (-10.0) ;
ADC_TMP=ADC_ADD&0xFFFF;
//读取通道3结果
if ((ADC_TMP&0x8000)! =0x8000)
//转换通道3结果
ADC_F [2] = ((float) (ADC_TMP))
/((float) (0x7FFF)) *10.0;
else
ADC_F [ 2] = ( ( float) ( 0xFFFF -
ADC_TMP)) /((float) (0x7FFF)) * (-10.0) ;
ADC_TMP=ADC_ADD&0xFFFF;
//读取通道4结果
if ((ADC_TMP&0x8000)! =0x8000)
//转换通道4结果
ADC_F [3] = ((float) (ADC_TMP))
/((float) (0x7FFF)) *10.0;
else
ADC_F [ 3] = ( ( float) ( 0xFFFF -
ADC_TMP)) /((float) (0x7FFF)) * (-10.0) ;
ADC_TMP=ADC_ADD&0xFFFF;
//读取通道5结果
if ((ADC_TMP&0x8000)! =0x8000)
//转换通道5结果
ADC_F [4] = ((float) (ADC_TMP))
/((float) (0x7FFF)) *10.0;
else
ADC_F [ 4] = ( ( float) ( 0xFFFF -
ADC_TMP)) /((float) (0x7FFF)) * (-10.0) ;
ADC_TMP=ADC_ADD&0xFFFF;
//读取通道6结果
if ((ADC_TMP&0x8000)! =0x8000)
//转换通道6结果
ADC_F [5] = ((float) (ADC_TMP))
/((float) (0x7FFF)) *10.0;
else
ADC_F [ 5] = ( ( float) ( 0xFFFF -
ADC_TMP)) /((float) (0x7FFF)) * (-10.0) ;
ADC1_CONVST=0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)