1 TMS320F28335 McBSP
1.1 TMS320F28335 McBSP的特点
TMS320F28335是一款高性能、多功能、高性价比32位浮点DSP。该器件最高可在150 MHz主频下工作,片上集成丰富的外设,其中包括两个多通道缓冲串口(McBSP)。McBSP是一种同步串行接口,除具有一般DSP串口功能之外,还可以支持T1/E1,ST-BUS,SPI等不同标准。它的主要特点如下:全双工串行通信;允许独立数据流的双倍发送缓冲和三倍接收缓冲数据存储器;独立的接收、发送帧和时钟信号;发送和接收通道数最多可达128路;多通道选择模式,允许或阻止每个通道的传输;两个16级,32位的FIFO代替DMA;可直接与工业标准的编码器、模拟界面芯片(AICs)、其他串行A/D,D/A器件连接;支持时钟信号和帧同步信号的外部生成;用来内部生成和控制帧同步信号的可编程采样率发生器;可编程的内部时钟和帧同步信号生成;可编程的帧同步和数据时钟极性;可选的数据宽度:8 b,12 b,16 b,20 b,24 b或32 b;比特数据传输时可选择高位或低位在先;用于数据压缩的μ律和A律压缩扩展。
1.2 TMS320F28335 McBSP的工作过程
TMS320F28335的McBSP包括7个引脚,分别是串行数据发送信号DX,串行数据接收信号DR,发送时钟信号CLKX,接收时钟信号CLKR,发送帧同步信号FSX、接收帧同步信号FSR和外部输入时钟信号CLKS。McBSP通过这7个管脚为外部设备提供了数据通道和控制通道。
McBSP通过DX和DR实现DSP与外部设备的通信和数据交换。其中,DX完成数据发送,DR完成数据接收。控制信息通过CLKX,CLKR,FSX和FSR以时钟和帧同步的形式进行通信。由于McBSP内有一个可编程的采样和帧同步时钟发生器,所以这些时钟和帧同步信号既可以由内部产生,也可以由外部输入。
McBSP发送数据的过程如下:首先将要发送的数据写入数据发送寄存器DXR[1,2],如果发送移位寄存器XSR[1,2]中没有数据,则DXR[1,2]中的值先复制到XSR[1,2],再由XSR[1,2]将数据移到DX上发送;如果XSR[1,2]不为空,则等待将XSR[1,2]中的数据全部移出到DX脚发送后才将DXR[1,2]中的值复制到XSR[1,2],再由DX脚将数据发送出去。
McBSP接收数据的过程如下:DR脚上接收的数据首先移入接收移位寄存器RSR[1,2],一旦收到一个字(可以是8 b,12 b,16 b,24 b或32 b),检查接收缓冲寄存器RBR[1,2]是否为空,如果为空,则将RSR[1,2]中的数据复制到RBR[1,2],接着,数据被复制到数据接收寄存器DRR[1,2],CPU通过读取DRR[1,2]中的数据完成数据接收。需要注意的是,DRR2,RBR2,RSR2,DXR2和XSR2寄存器只有当接收或发送的字
长超过16 b(20 b,24 b和32 b)时,才会用上。
0位数据延迟时,McBSP串口接收和发送数据的时序图如图1所示。
2 ADS7863
2.1 ADS7863芯片的特点
ADS7863是一个双路、2 MSPS、12位、3+3或2+2通道、同步采样模/数SAR转换器。ADS7863具有如下特点:四路全差分或六路伪差分输入;SNR:71 dB,THD:-81 dB;可编程的和缓冲的内部2.5 V参考电压;灵活的省电功能;可变的电源范围:2.7~5.5 V;低功率操作:5 V时45 mW;工作温度范围:-40~+125℃;引脚与ADS7861,ADS8361兼容。
2.2 ADS7863芯片的工作原理
ADS7863的引脚图如图2所示。
2.2.1 ADS7863的主要引脚定义
ADS7863的主要引脚定义如下:CHxy+:同相模拟输入通道xy+(x代表A或B,y代表0或1,eg:A1+);CHxy-:反相模拟输入通道xy~(x代表A或B,y代表0或1,eg:A1-);M1:模式引脚1,选择SDOx数字输出,x代表A或B;M0:模拟引脚0,选择模拟输入通道;SDI:串行数据输入,这个管脚允许使用ADS7863的增加功能,并且这些功能可以用在ADS7861的兼容模式上;CONVST:转换开始,不管CLOCK的状态,在CONVST的上升沿ADC从采样模式进入保持模式,转换本身在CLOCK的下一个上升沿开始;RD:读数据,SDOx输出与SDI输入的同步脉冲,RD只在为低时触发;:芯片选择,当置低时,SDOx输出有效,当置高时,SDOx输出3态。CLOCK:外部时钟输入;BUSY:ADC忙碌指示符,当进入保持模式时,BUSY变成高电平,转换结束后,BUSY变成低电平;SDOB:转换器B的串行数据输出,在CLOCK的下降沿数据是有效的;SDOA:转换器A的串行数据输出,当M1为高时,SDOA与SDOB都是有效的,数据在CLOCK的下降沿是有效的。
2.2.2 ADS7863的工作原理
ADS7863的工作模式根据M0,M1的不同配置分为四种,如表1所示。本文主要介绍ADS7863的M0=0,M1=1模式时的工作原理。当M0=0、M1= 1时,ADS7863工作在人为通道控制模式,数据只在SDOA脚输出,SDOB脚置为3态。SDI选择不同的模拟输入通道。当CONVST置高时,一个转换被触发。ADS7863需要32个CLOCK周期从两个模/数转换器ADCs输出转换结果,需要1.0μs完成一个完整的CONVERSION/READ周期。如果CONV-ST信号每0.5μs被触发一次(RD信号的需要),那么每第二个脉冲被忽略。在CONVST的上升沿,不管CLOCK的状态,ADC从采样模式进入保持模式。经过一些延迟,BUSY信号变成高电平,并且在转换周期内保持高电平。在第二个时钟的下降沿,根据SDI寄存器的C[1:0]两位的状态,ADS7863选择使用下一个转换周期的模拟输入通道。CS必须置为低电平以使能SDOA输出。在每个转换的每32个CLOCK周期的下降沿,数据是有效的。输出数据由一个‘0’,紧接一个ADC指示符(CHAx为‘0’,CHBx为‘1’),12位转换结果,和一个‘00’组成。
相应的时序图如图3所示。
3TMS320F28335McBSP与ADS7863接口设计
3.1 硬件接口设计
图4是TMS320F28335 McBSP与ADS7863无缝连接的示意图。从图中可以看出,McBSP与ADS7863之间的连接非常简单,实现了数据的高效转移,充分体现了同步串口连接的优点。由F28335 DSP的GPIO11向ADS7863提供片选信号。McBSP的数据发送DX脚接ADS7863的SDI脚,向ADS7863发出控制信号。ADS7863的SDOA脚接McBSP的数据接收DR脚,向F28335传送数据信号。由MeBSP内含的可编程采样率发生器生成时钟信号CLKG和帧同步信号FSG。由CLKG驱动发送时钟信号CLKX,CLKX驱动接收时钟信号CLKR和ADS7863的时钟信号CLOCK。由FSG驱动发送帧同步信号FSX,FSX驱动接收帧同步信号FSR和ADS7863的开始转换信号CONVST。CONVST初始化一个转换进程,并启动发送前一周期转换的数据。为了简化,只连接了ADS7863的CHA1+和CHB1+通道,可用输出数据的第二位(ADC指示符)分辨所采样的信号来自哪个通道。
3.2 软件接口设计
3.2.1 McBSP口初始化
整个初始化过程包括三部分:接收部分初始化、发送部分初始化和采样率发生器初始化。
(1)DSP初始化后,采样率发生器的初始化位GRST=0;在其他情况下,也可通过向SPCR2寄存器中的GRST位置0,使采样率发生器处于初始化状态。在此状态下,时钟CLKG时钟为CPU时钟的1/2,帧同步信号FSG为逻辑0;设置接收初始化位RRST、发送初始化位XRST和帧同步发生器初始化位FRST为0;
(2)对采样率发生器SRGR[1,2]进行设置,并对其他控制寄存器进行设置;
(3)等待两个CPU时钟以确保内部正确同步;
(4)将采样率发生器初始化位置1,使采样率发生器进行工作;
(5)等待两个SRG时钟;
(6)将接收和发送初始化位置1;
(7)在下一个CPU时钟的上升沿,CLKG时钟发送一个1,并以CPU时钟/(1+CLKGDV)的频率运行;
(8)在数据发送寄存器DXR[1,2]被载入数据后,将帧同步初始化位置1以发出正确的帧同步脉冲信号。
下面是McBSP初始化程序片段:
3.2.2 McBSP串口通信主要程序
McBSP串口通信主要程序如下:
4 试验结果
ADS7863的输入模拟量Vin1=1.670 V,Vin2=1.866 V时,A/D转换器SDOA引脚输出如图5所示。图中通道Ch2为ADS7863的外部输入时钟CLOCK,通道Ch1为ADS7863的模拟输入通道CHA1+和CHB1+的32位输出结果。可以很清楚地看出该32位二进制码为:00110101011010000111011 111101000,前16位为CHA1+通道的转换结果,后16位为CHB1+通道的转换结果。在本试验中,通过设置McBSP的采样率发生器时钟分频系数CLKGDV,使得McBSP的采样率发生器时钟CLKG频率为323.2 kHz,从而使得ADS7863的外部输入时钟CLOCK频率为323.2kHz。
5 结论
本文设计了高速度、高精度12位A/D转换器ADS7863与32位浮点DSPTMS320F28335的McBSP之间的硬件接口与软件实现。该系统设计简洁,在DSP集成开发环境CCS下采用C语言编写、调试完成,对其他A/D系统设计具有很大的借鉴意义。