TMS320F206与串行ADC TLC2543接口的实现
导读:
关键字:
TMS320F206与串行ADC TLC2543接口的实现 天津大学精密仪器与光电子工程学院叶文宇谌雅琴李刚 摘要以TMS320F206与TLC2543的接口为例,介绍一种DSP与串行ADC的接口方法。文中利用DSP外部通用输出引脚模拟时钟源,较好地实现了DSP的同步串行口(SSP)与串行ADC的时序配合。对于其它DSP与串行ADC的接口,也可参考这一方法实现。 关键词DSP串行A/D转换器接口同步串行口 引言 数字信号处理器(DSP)的应用已日趋广泛,而数据采集及信号处理又常常是DSP应用中不可分割的两个部分,为此,本文介绍一种TMS320F206(以下简称F206)与串行ADC TLC2543的接口方法。该方法同样适用其它具有SSP的处理器与相应串行ADC的接口。 F206是TI公司生产的16位定点数字信号处理器(DSP)。其内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,采用了四级流水线操作,提供了特殊的DSP指令,可以快速实现各种处理算法\[1~3\]。F206除不含有片内ROM外,具有与其它TMS320C2XX 相同的片内其它资源, 可以说,在TMS320C2XX系列产品中具有一定的代表性。由于F206具有片内32K FLASH存储器,支持程序的串行下载,非常便于开发设计,因而已进入了传统单片机所占据的领域。 TLC2543也是TI公司的产品。它是具有11个模拟输入通道的串行A/D转换器,采样精度达12位,外接串行时钟最大频率可达41MHz,能满足多数较高精度多通道数据采集的要求\[4\]。TLC2543可以通过控制字编程,控制转换是单极性还是双极性,数据输出格式是8位、12位或16位。它的这些特性可以使其与8位微控制器(如89C51)和16位处理器(如数字信号处理芯片DSP TMS320F206)很方便地接口。TLC2543的控制字写入及转换结果的输出都是通过串行数据完成的,所需的外部数据线及控制线较少。这对于外部控制能力相对较弱,而运行速度较高的DSP来说,串口通信尤为合适。 一、 硬件接口电路设计 F206片内具有同步串行口(SSP),可通过串行数据信号、移位时钟信号及帧同步信号配合,进行串行数据的输入、输出。与同步串行口发送相关的外部引脚有:串行输出数据引脚(DX)、发送时钟信号引脚(CLKX)及发送帧同步信号引脚(FSX)。当发送串行数据时,首先会由内部或外部在FSX产生一帧同步信号。该信号之后,DX引脚随每个CLKX时钟的上升沿移出一位数据。与同步串行口接收相关的外部引脚有:串行输入数据引脚(DR)、接收时钟信号引脚(CLKR)及接收帧同步信号引脚(FSR)。当接收串行数据时,首先会由外部在FSR产生一帧同步信号。该信号之后,DR引脚随每个CLKR时钟的上升沿移入一位数据。通过寄存器设置,CLKX、CLKR可配置为由内部或外部产生,FSX也可配置为内部或外部产生,而FSR仅能由外部产生。用户可通过直接写入或读取发送接收寄存器(SDTR)进行串行数据的发送或接收。 TLC2543所需的接口控制线较少,其引脚结构如图1所示。TLC2543有3个控制输入端:片选CS、输入输出时钟(I/O CLOCK)及控制数据输入端(DATA INPUT);一个串行数据输出端(DATA OU图1TLC2543引脚图TPUT);一个AD转换结束标志(EOC)。可通过DATA INPUT写入AD控制字,通过DATA OUTPUT读取AD图3接口时序图的转换结果。TLC2543片内含有一个14通道多路器,可从11个模拟输入通道或3个内部自测电压中选择一个。TLC2543的工作模式可通过控制字进行设置,其控制字包含8位。其中D7~D4位用于通道选择,以确定对哪路信号进行采集;D3、D2用于时钟模式选择,可选择工作在8位、12位、16位时钟模式下;D1用于数据输出方式选择,可选择高位数据先输出还是低位数据先输出;D0用于设置转换为单极性或双极性。 TLC2543与F206的接口采用了如图2所示的方式。通过寄存器设置,将FSX配置为由内部产生,CLKX、CLKR配置为由外部产生,I/O0配置为通用输出口。图2中FSR与FSX相连,在数据接收时,可以使FSX为F图2TLC2543与TMS320F206的接口示意图SR提供输入帧同步信号。I/O0与CS相连,用于控制A/D的片选信号;DX、DR分别与DIN、DOUT相连,用于串行数据的发送和接收;通用输出引脚XF与CLKX、CLKR相连,并通过一反向器与SCLK相连,用于提供串行数据输入输出的时钟信号。值得指出的是,图2中由F206的XF引脚模拟时钟信号,由于TLC2543和SSP的数据输入或输出均在时钟的上升沿发生变化,因而它们的时钟信号应反相,使TLC2543或SSP的输出信号稳定后,SSP或TLC2543再进行相应的数据接收\[5\]。 F206与TLC2543的接口工作时序如图3所示。图3中AD工作在16位时钟模式、高位先输出的情况下。在进行AD数据转换时,首先,使AD的片选信号(CS)有效,此后,需1.425μs的延迟,以避免因小的噪声干扰引起的误操作。然后,随输入输出时钟(I/O CLOCK)的变化,采样数据移出一位,AD控制字移入一位。因AD控制字为8位数据,因而输入的数据仅在前8个时钟周期有效。在I/O CLOCK的通道选择周期,AD进行前一控制字的通道选择;在采样周期,AD进行相应通道的采样;在I/O CLOCK的最后一个下降沿,EOC变低,AD开始进行转换,约10μs后,转换结束,EOC变高。 二、 软件接口的实现 当进行数据采集时,软件实现按照如下的过程进行:首先,进行相关寄存器设置。通过将同步串口控制寄存器(SSPCR)中的MCM位清0,使CLKX、CLKR配置为外部输入;将TXM位清0,使FSX配置为内部帧同步;将FSM位置1,使数据发送模式采用突发模式。通过将异步串口控制寄存器(ASPCR)的CIO0位置1,使I/O0配置为通用输出端口。然后,将AD控制字写入SDTR的高8位。这是由于AD控制字仅在前8个时钟周期有效。最后,进行AD控制字的发送及AD采集数据的接收。在SDTR写入数据后,由XF产生适当的时钟信号(对F206需3个时钟信号),此时会在FSX产生发送帧同步信号,同时在FSR也取得了接收帧同步信号,此后,应将IO0置低,使AD片选信号有效,再由XF产生16个模拟时钟信号,进行串行数据的发送和接收。此过程结束后,AD采集的数据结果已由串行口读入SDTR中,用户可直接读取。需要指出的是,每次读取的数据采集结果对应前一次所送的AD控制字,因而,第一次读取AD采集结果为无效值。 进行AD数据采集的程序示例如下: .title"TLC2543" .copy"init.h" .copy"vector.h" .text start:〖〗clrc〖〗cnf〖〗;映射块 B0到数据存储区〖2〗ldp〖〗#0h〖〗;页指针设置为0〖2〗setc〖〗intm〖〗;关中断〖2〗splk〖〗#0c0ah,60h〖2〗out〖〗60h,sspcr〖〗;同步串口置内部帧同步源、 ;外部时钟源、突发模式〖2〗splk〖〗#0c3ah,60h〖2〗out〖〗60h,sspcr〖〗;使串口发送和接收位处于 ;非复位状态〖2〗splk〖〗#0ffffh,ifr〖〗;清中断〖2〗splk〖〗#0000h,imr〖〗;屏蔽所有中断〖2〗splk〖〗#0fh,60h〖2〗out〖〗60h,aspcr〖〗;将I/O0配置为通用输出口〖2〗splk〖〗#0ffh,60h〖2〗out〖〗 60h,iosr〖〗;I/O0置高,使ADC片选无效〖2〗setc〖〗 xf;XF置高,时钟端平时保持高电平〖2〗clrc〖〗intm〖〗;开中断〖2〗;寄存器初始化结束〖2〗splk〖〗#0dc00h,6ah ;将AD控制字写入6ah存储 ;单元的高8位中〖2〗call〖〗sample〖〗;调用采样子程序〖2〗in〖〗 70h,sdtr;读取采样结果(第一次读取无效)〖2〗splk〖〗#0bc00h,6ah;写入另一AD控制字〖2〗call〖〗sample〖〗;调用采样子程序〖2〗in〖〗 71h,sdtr〖〗;读取#0dc00h控制字对应的 ;采样结果,存入71h中〖1〗wait:〖〗b wait;〖〗;主程序结束〖1〗;以下为采样子程序〖1〗sample:out〖〗6ah,sdtr;将AD控制字写入SDTR,以待发送〖2〗.loop 3〖4〗;产生3个起始时钟信号, ;以便产生帧同步信号〖2〗clrc〖〗 xf〖2〗setc〖〗 xf〖2〗.endloop〖2〗splk〖〗 #0000h,60h〖2〗out〖〗 60h,iosr〖〗;I/O0置低,使片选有效〖2〗call〖〗 delay〖〗;产生一定延时,(至少1.425μs)〖2〗.loop 16〖4〗;产生16个输出时钟信号, ;进行数据的发送和接收〖2〗clrc〖〗 xf〖2〗setc〖〗 xf〖2〗.endloop〖1〗;此时控制字已发送完毕,AD采样数据已读入SDTR中〖2〗splk〖〗 #1h,60h〖2〗out〖〗 60h,iosr〖〗;使片选无效〖2〗call〖〗 delay;调用延时,等待本次AD转换结束〖2〗ret〖1〗;以下为延时子程序〖1〗delay:〖〗mar〖〗 *,ar0〖2〗lar〖〗ar0,#0c8h〖1〗t1:〖〗nop〖2〗banz〖〗t1〖2〗ret〖1〗codrx:〖〗ret〖4〗;同步串口中断子程序〖1〗timer:〖〗ret〖4〗;定时中断子程序〖1〗inpt1:〖〗ret〖〗〖〗;INT1中断子程序〖1〗inpt23:ret〖〗〖〗;INT2/3中断子程序〖1〗uart:〖〗ret〖〗〖〗;异步串口中断子程序〖1〗codtx:〖〗ret〖〗〖〗;同步串口发送中断子程序〖2〗.end〖〗〖〗;程序结束结束语 本文介绍了TMS320F206与TLC2543的接口方法,给出了具体电路及相应的源程序。为便于串行数据发送和接收的时序控制,此处采用了以DSP外部通用引脚模拟时钟源的方法,较好地实现了DSP与串行ADC的通信。对于其它串行ADC与DSP的接口,也可参考这一方法实现。MES 参考文献 1Texas Instruments Inc..TMS320C20x User's Guide,1999 2张芳兰.TMS320C2XX用户指南.北京:电子工业出版社,1999 3张雄伟,曹铁勇.DSP芯片的原理与开发应用.北京:电子工业出版社,2000 4Texas Instruments Inc.TLC2543C、TLC2543I、 TLC2543M 12\ BIT Analog\ to\ digital converterswith serial control and 11 analog inputs,1997 5Texas Instruments Inc.Interfacing the TLC2543 ADC to the TMS320C25 DSP,1997
来源:单片机与嵌入式系统应用 作者:天津大学精密仪器与光电子工程学院 叶文宇 谌雅琴 李刚 2006/2/12 0:00:00