DSPMAX548A 与TMS320LF2407 的SPI通信系统设计Word格式文档下载.docx
《DSPMAX548A 与TMS320LF2407 的SPI通信系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《DSPMAX548A 与TMS320LF2407 的SPI通信系统设计Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
**************
2015年5月19日
摘要
TI公司的TMS320LF2407型DSP微控制器内嵌的同步串行口(SPI)支持CPU与其它使用标准格式的同步外设之间的数字通讯,通过MAX548A可以方便地进行DSP之间或与PC机之间的同步通信。
串行外设接口(SPI)是一个高速同步串行输入/输出(I/O)端口,常用于DSP控制器和外部器件或其它控制器间的通讯。
本设计正是通过TMS320LF2407所带有的SPI模块进行DSP的数据传输通信。
此实例电路结构简单易懂,非常适合刚接触DSP的初学者使用,具有很好的参考价值。
本设计还介绍了MAX548A的基本工作原理及其功能,设计了其与TMS320LF2407的同步串行外设接口(SPI)的通信方案,给出了系统的硬件接口和软件设计.
关键词:
MAX548A;
TMS320LF2407;
SPI
第一章MAX548A的介绍
1.0MAX548A的简介
MAX548A是美信公司生产的高速串行数模转换芯片,其最高转换速度
可达10MHz,可用于需要高速模拟量输出的场合,兼容SPI,QSPI,MI2CROWIRE接口标准,将其与TMS320LF2407所带的串行外设接口(SPI)进行连接,利用DSP的高速及可编程特性,实现高速的数模转换,与实现同样功能的并行数模转换相比,可以减少系统的硬件开销,减小系统体积.本文以TMS320LF2407和MAX548A的连接为例,介绍了SPI与D/A芯片的通信设计方法。
1.1MAX548A的特点
MAX548A是8位电压型2路低功耗模数转换芯片,3线输入,兼容SPI,QSPI,MICROWIRE接口标准.它具有如下特点:
(1)宽电压范围:
工作电压从+2.5V到+5.5V;
(2)低功耗:
每个D/A通道在VDD=+2.5V时典型工作电流为75μA;
(3)具有睡眠模式,内部R-2R梯形网络从电源断开,参考输入电流减小到1μA;
(4)灵活的工作方式:
允许每个D/A通道单独断开,输入寄存器和DAC寄存器可
以单独更新,也可以同时更新;
(5)上电复位,清所有寄存器为零;
(6)10MHz时钟频率,三线串输入,满足SPI/QSPI,MICROWIRE接口标准;
1.2MAX548A的外部特性和内部结构
图1
外部引脚如图1所示:
其引脚功能见表1:
其内部结构如图2所示:
其内部由输入移位寄存器及控制逻辑、2个DAC输入寄存器、2个DAC寄存器、2个R-2R梯形解码电阻网络组成.输入移位寄存器及控制逻辑的功能是接受串行输入的2进制数,并实现DAC输入寄存器、DAC寄存器数据的加载及更新,可以同时控制2个D/A通道,也可以对每个通道单独进行控制.每个通道的8位数字量经过DAC输入寄存器、DAC寄存器两级缓冲,直接到R-2R梯形解码电阻网络解码输出模拟量,因此MAX548A可工作于双缓冲输入方式,但输出无缓冲,换句话说,数模转换在正常模式下,只要更新DAC寄存器的内容,输出模拟量就会随之改变.在睡眠模式下,内部R-2R梯形网络从电源断开,因此此时模拟量无法输出,但这并不影响对DAC输入寄存器、DAC寄存器的操作。
1.3
工作原理及操作方式
对DAC输入寄存器、DAC寄存器的控制,包括如对A、B通道的寻址(即
确定相应操作通道的相应寄存器)、相应寄存器值的更新、工作于正常模式或是睡眠模式等,是通过输入移位寄存器的内容来完成的,它是16位的二进制数,包含8位控制位,8位数据位,其格式及各位的功能如表2所示:
图3是MAX548的工作时序图:
在CS为低时,输入移位寄存器在串行时钟SCLK的上升沿接受从DIN输入的串行数据.其中UB1首先移入,D0最后移入.传输的数据可以是16位的字,也可以是2个字节(之间有停顿),当16位数据输入移位寄存器后,CS的上升沿对DAC编程,可同时或单独的加载输入寄存器而不更新DAC寄存器,这样可以允许每个DAC寄存器用不同的数值同时更新,LDAC独立于CS,可用于不同时更新DAC寄存器的值的情况,当C1=1,可设置1个或2个DAC寄存器在LDAC的下降沿或是CS上升沿更新。
根据不同控制位的取值不同,可以分别形成不同的指令,表3列出了部分指令,其他指令可依控制位的不同类推。
第二章MAX548A与TMS320LF2407的SPI接口应用
2.0SPI接口的主要特点
TMS320LF2407是DSP控制器24X系列产品之一,它具有处理速度快,外设集成度高等优点,为多种用途的产品提供了经济的可编程方案,其同步串行外设接口主要特点有:
(1)4个输入输出口,即SPISIMO,SPISOMI,SPISTE,SPICLK;
(2)主动和从动2种工作方式;
(3)125种可编程的波特率;
(4)发送和接收可同时操作;
(5)发送和接收可采用中断或查询方式来完成;
(6)1~16个数据位.
与接收和发送有关的主要寄存器包括串行外设接口配置控制寄存器(SPICCR)、串行外设接口操作控制寄存器(SPICTL)、串行外设接口状态寄存器(SPISTS)、串行外设接口波特率寄存器(SPISTS)、串行外设接口串行接收缓冲寄存器(SPIRXBUF)、串行外设接口串行发送缓冲寄存器(SPITXBUF)、串行外设接口串行数据寄存器(SP2IDAT).发送和接收数据时的操作方式和过程与这些寄存器有关。
2.1
硬件电路
利用TMS320LF2407的SPI接口与MAX548A构成DAC电路如图4所示.图中SPI工作在主动工作方式.MAX548A的DIN接到SPI的SPISIMO,由于DIN在SCLK的上升沿接收数据,因此程序中必须通过设定SPICCR,使SPI在上升沿输出数据;
MAX548A的SCLK接到SPI的SPICLK,SPICLK的频率可通过软件编程得到,由于SCLK的最高频率可达10MHz,这里利用设定SPIBRR来设定SPICLK频率为10MHz;
MAX548A的CS接到SPI的SPISTE,通过主动工作方式下,启动数据输出使之输出为低,完成对MAX548A的片选.因此,该DAC电路基本工作过程为:
在主动工作方式下,启动数据传输时,SPISTE(CS)变低,16位数据以SPICLK(SCLK)频率输入MAX548A的输入移位寄存器,当16位数据传输完成后,一次数据传输结束,SPISTE(CS)变高,在SPISTE(CS)的上升沿,执行MAX548A的指令,完成对MAX548A内部寄存器的操作及控制,如此循环,完成全部数字量的转换.由于MAX548有上电复位清零功能,因此常规的DAC电路的初始化(送模拟量0清所有寄存器)这里并不需要。
2.2
软件设计
假设系统初始化时已设定系统时钟频率为40MHz,而SPICLK频率为10MHz,因此,这里取SPIBRR=0;
另外,在初始化时,需通过设定MCRB,设定通用引脚为SPI功能引脚;
通过SPICCR设定数据传输时刻和数据长度,等.下面是通过MAX548A的A口输出正弦波形的程序,包含对SPI各个控制寄存器的配置及正弦波的产生程序:
#include“register.h”#include“math.h”#include“stdio.h”intvout;
//*********************系统初始化子程序********************
intinitial()
{
asm(“setcINTM”);
//屏蔽中断
WSGR=0X00;
//禁止所有的等待状态
asm(“CLRCSXM”);
asm(“CLRCOVM”);
asm(“CLRCCNF”);
//B0被配置为数据空间
3SCSR1=0X00FE;
3WDCR=0X0E8;
//不使用看门狗
}
//**************SPI模块初始化及波形产生********************
main
intAinitial();
MCRB=0X003C;
//设置通用引脚为SPI功能的引脚
SPICCR&
=0X000F;
//16位数据长度,上升沿发送数据
SPICTL=0X0006;
//使能主动模式,允许发送SPIBRR=0X0000;
SPICCR|=0X0080;
//使SPI退出复位状态
SPITXBUF=0X0B80;
while((SPISTS&
0X40)==0X00)
A=SPITXBUF;
}
voidSPIADCSIN()
unsignedintV0=0X0B80;
unsignedintTEMP
inti;
next:
i=0;
while(i<
=360)
{
∥******************角度最大为360°
************************
vout=V0+1283sin(3.141593i/180);
∥计算每10°
的正弦值
SPITXBUF=vout
TEMP=SPITXBUF;
i=i+2;
∥角度+2
gotonext;
∥重复输出正弦波
第三章结论
本文利用双通道8位串行D/A芯片MAX548A,设计其与TMS320LF2407的SPI接口电路,结构简单,编程方便,节省电路板空间,并能节约成本,具有较高的实用价值。
第四章参考资料
[1]
TexasInstrumentsCorporation.TMS320C20XUser’sG,1999.
[2]
刘和平.TMS320LF240XDSPC语言开发应用[M].北京:
北京航空航天大学出版
社,2003.
[3]
MaximInc.Dual,Serial,Voltage-OutputDACsinaμMAXPackage.www.maxim-
ic.com.cn,1999
[4]云南大学学报(自然科学版),2005,27(5A):
278~282CN53-1045/N
ISSN0258-7971JournalofYunnanUniversity