MAX548A与TMS320LF2407的SPI通信接口设计

  • 格式:pdf
  • 大小:267.21 KB
  • 文档页数:5

云南大学学报(自然科学版),2005,27(5A):278~282CN53-1045/N ISSN0258-7971 Journal of Yunnan U niversityΞMAX548A与TMS320LF2407的SPI通信接口设计谭智力1,2,朱冬姣2(1.华中科技大学电气与电子工程学院,湖北武汉 430074;2.中国地质大学机电学院,湖北武汉 430074)摘要:介绍了MAX548A的基本工作原理及其功能,设计了其与TMS320L F2407的同步串行外设接口(SPI)的通信方案,给出了系统的硬件接口和软件设计.关键词:MAX548A;TMS320L F2407;SPI中图分类号:TP334 文献标识码:A 文章编号:0258-7971(2005)5A-0278-05 MAX548A是美信公司生产的高速串行数模转换芯片,其最高转换速度可达10MHz,可用于需要高速模拟量输出的场合,兼容SPI,QSPI,M I2 CROWIRE接口标准,将其与TMS320L F2407所带的串行外设接口(SPI)进行连接,利用DSP的高速及可编程特性,实现高速的数模转换,与实现同样功能的并行数模转换相比,可以减少系统的硬件开销,减小系统体积.本文以TMS320L F2407和MAX548A的连接为例,介绍了SPI与D/A芯片的通信设计方法.1 MAX548A介绍MAX548A是8位电压型2路低功耗模数转换芯片,3线输入,兼容SPI,QSPI,M ICROWIRE 接口标准.它具有如下特点:(1)宽电压范围:工作电压从+2.5V到+5.5 V;(2)低功耗:每个D/A通道在VDD=+2.5V 时典型工作电流为75μA;(3)具有睡眠模式,内部R-2R梯形网络从电源断开,参考输入电流减小到1μA;(4)灵活的工作方式:允许每个D/A通道单独断开,输入寄存器和DAC寄存器可以单独更新,也可以同时更新;(5)上电复位,清所有寄存器为零;(6)10MHz时钟频率,三线串输入,满足SPI/ QSPI,M ICROWIRE接口标准;(7)μMAX封装,体积小.1.1 外部特性和内部结构 外部引脚如图1所示,其引脚功能见表1.其内部结构如图2所示,其内部由输入移位寄存器及控制逻辑、2个DAC输入寄存器、2个DAC寄存器、2个R-2R梯形解码电阻网络组成.输入移位寄存器及控制逻辑的功能是接受串行输入的2进制数,并实现DAC输入寄存器、DAC寄存器数据的加载及更新,可以同时控制2个D/A通道,也可以对每个通道单独进行控制.每个通道的8位数字量经过DAC输入寄存器、DAC寄存器两级缓冲,直接到R-2R梯形解码电阻网络解码输出模拟量,因此MAX548A可工作于双缓冲输入方式,但输出无缓冲,换句话说,数模转换在正常模式下,只要更新DAC寄存器的内容,输图1 外部引脚Fig.1Pin configurationsΞ收稿日期:2005-08-18 作者简介:谭智力(1973- ),男,博士生,讲师,主要从事电力电子数字控制研究工作.出模拟量就会随之改变.在睡眠模式下,内部R -2R 梯形网络从电源断开,因此此时模拟量无法输出,但这并不影响对DAC 输入寄存器、DAC 寄存器的操作.表1 引脚功能Tab.1Pin description of function1GND 地2OU TADACA 输出3CS片选输入,低电平时,允许串行数据以时钟频率移入输入寄存器,内部编程命令在其上升沿执行.4DIN串行数据输入端,数据在SCL K 的上升沿移入16位输入移位寄存器.5SCLK串行时钟输入6LDAC加载DAC 输入寄存器,在变高之后,如果被控制字编程,其下降沿更新DAC 寄存器,不用时接VDD.7OU TB DACB 输出8VDD正电源电压1.2 工作原理及操作方式 对DAC 输入寄存器、DAC 寄存器的控制,包括如对A 、B 通道的寻址(即确定相应操作通道的相应寄存器)、相应寄存器值的更新、工作于正常模式或是睡眠模式等,是通过输入移位寄存器的内容来完成的,它是16位的二进制数,包含8位控制位,8位数据位,其格式及各位的功能如表2所示.图3是MAX548的工作时序图,在CS 为低时,输入移位寄存器在串行时钟SCL K 的上升沿接受从DIN 输入的串行数据.其中UB1首先移入,D0最后移入.传输的数据可以是16位的字,也可以是2个字节(之间有停顿),当16位数据输入移位寄存器后,CS 的上升沿对DAC 编程,可同时或单独的加载输入寄存器而不更新DAC 寄存器,这样可以允许每个DAC 寄存器用不同的数值同时更新,LDAC 独立于CS ,可用于不同时更新DAC 寄存器的值的情况,当C1=1,可设置1个或2个DAC 寄存器在LDAC 的下降沿或是CS 上升沿更新.根据不同控制位的取值不同,可以分别形成不同的指令,表3列出了部分指令,其他指令可依控制位的不同类推.2 MAX 548A 与TMS320LF2407的SPI 接口应用TMS320L F2407是DSP 控制器24X 系列产品之一,它具有处理速度快,外设集成度高等优点,为多种用途的产品提供了经济的可编程方案,其同步串行外设接口主要特点有:图2 内部结构Fig.2Functional diagram972第5A 期 谭智力,等:MAX548A 与TMS320L F2407的SPI 通信接口设计表2 控制及数字位定义Tab.2Control -byte/input -word bit definitions控制位 数据位UB1UB2UB3C2C1C0A1A0D7D6D5D4D3D2D1D0UB1,UB2,UB3:无功能位,可取任意逻辑;C2:0:上电模式,即政党工作模式;1:睡眠模式,唤醒时间等于数模转换时间;C1:0/1:不允许/允许加载DAC 寄存器;C0:0:在CS 的上升沿更新DAC 寄存器;1:在LDAC 的下降沿更新DAC 寄存器;A1:0/1:不寻址/寻址DACB ,用于对B 通道的寄存器的操作;A0:0/1:不寻址/寻址DACA ,用于对A 通道的寄存器操作;D7~D0:8位数据位图3 串联接口时序图Fig.3Serial -interface timing diagram表3 编程命令Tab.3Serial -interface programming commandsUB1UB2UB3C2C1C0A1A0D7…D0LDAC 指令(在CS 的上升沿执行)XXXX18位数据X加载数据到A 输入寄存器,B 输入寄存器及2个DAC 寄存器内容不变X X X 010018位数据X加载数据到A 输入寄存器,更新2个DAC 寄存器,B 输入寄存器不变X X X 011118位数据X加载数据到2个寄存器,在CS 的上升沿后,在LDAC 的下降沿更新2个DAC 寄存器X X X 110018位数据X加载数据到A 输入寄存器,A 通道处睡眠模式,更新2个DAC 寄存器,B 输82云南大学学报(自然科学版) 第27卷 (1)4个输入输出口,即SPISIMO,SPISOM I, SPISTE,SPICL K;(2)主动和从动2种工作方式;(3)125种可编程的波特率;(4)发送和接收可同时操作;(5)发送和接收可采用中断或查询方式来完成;(6)1~16个数据位.与接收和发送有关的主要寄存器包括串行外设接口配置控制寄存器(SPICCR)、串行外设接口操作控制寄存器(SPICTL)、串行外设接口状态寄存器(SPISTS)、串行外设接口波特率寄存器(SPISTS)、串行外设接口串行接收缓冲寄存器(SPIRX BU F)、串行外设接口串行发送缓冲寄存器(SPITX BU F)、串行外设接口串行数据寄存器(SP2 IDA T).发送和接收数据时的操作方式和过程与这些寄存器有关.2.1 硬件电路 利用TMS320L F2407的SPI接口与MAX548A构成DAC电路如图4所示.图中SPI工作在主动工作方式.MAX548A的DIN接到SPI的SPISIMO,由于DIN在SCL K的上升沿接收数据,因此程序中必须通过设定SPICCR,使SPI 在上升沿输出数据;MAX548A的SCL K接到SPI 的SPICL K,SPICL K的频率可通过软件编程得到,由于SCL K的最高频率可达10MHz,这里利用设定SPIBRR来设定SPICL K频率为10MHz; MAX548A的CS接到SPI的SPISTE,通过主动工作方式下,启动数据输出使之输出为低,完成对MAX548A的片选.因此,该DAC电路基本工作过程为:在主动工作方式下,启动数据传输时, SPISTE(CS)变低,16位数据以SPICL K(SCL K)频率输入MAX548A的输入移位寄存器,当16位数据传输完成后,一次数据传输结束,SPISTE (CS)变高,在SPISTE(CS)的上升沿,执行MAX548A的指令,完成对MAX548A内部寄存器的操作及控制,如此循环,完成全部数字量的转换.由于MAX548有上电复位清零功能,因此常规的DAC电路的初始化(送模拟量0清所有寄存器)这里并不需要.2.2 软件设计 假设系统初始化时已设定系统时钟频率为40MHz,而SPICL K频率为10MHz,因此,这里取SPIBRR=0;另外,在初始化时,需通过设定MCRB,设定通用引脚为SPI功能引脚;通过SPICCR设定数据传输时刻和数据长度,等.下面是通过MAX548A的A口输出正弦波形的程序,包含对SPI各个控制寄存器的配置及正弦波的产生程序.图4 硬件电路Fig.4Hardware circuit#include“register.h”#include“math.h”#include“stdio.h”int vout;//系统初始化子程序int initial(){ asm(“setc IN TM”);//屏蔽中断 WSGR=0X00;//禁止所有的等待状态 asm(“CL RC SXM”); asm(“CL RC OVM”); asm(“CL RC CNF”);//B0被配置为数据空间 3SCSR1=0X00FE; 3WDCR=0X0E8;//不使用看门狗}//SPI模块初始化及波形产生main{int Ainitial()MCRB=0X003C;//设置通用引脚为SPI功能的引脚SPICCR&=0X000F;//16位数据长度,上升沿发送数据SPICTL=0X0006;//使能主动模式,允许发送SPIBRR=0X0000;SPICCR|=0X0080;//使SPI退出复位状态182第5A期 谭智力,等:MAX548A与TMS320L F2407的SPI通信接口设计SPITX BU F=0X0B80;while((SPISTS&0X40)==0X00)A=SPITX BU F}void SPI ADC SIN()unsigned int V0=0X0B80;unsigned int TEMP int i;next: i=0;while(i<=360){∥角度最大为360°vout=V0+1283sin(3.141593i/180);∥计算每10°的正弦值SPITX BU F=voutSPITX BU F=0X0B80;while((SPISTS&0X40)==0X00)TEMP=SPITX BU F i=i+2;∥角度+2}goto next;∥重复输出正弦波}3 结 论本文利用双通道8位串行D/A芯片MAX548A,设计其与TMS320L F2407的SPI接口电路,结构简单,编程方便,节省电路板空间,并能节约成本,具有较高的实用价值.参考文献:[1] Texas Instruments Corporation.TMS320C20X User’s,1999.[2] 刘和平.TMS320L F240X DSP C语言开发应用[M].北京:北京航空航天大学出版社,2003.[3] Maxim Inc.Dual,Serial,Voltage-Output DACs in aμMAX ,1999.Design of the interface communicating MAX548A with SPI of TMS320L F2407TAN Zhi2li1,2,ZHU Dong2jiao2(1.School of Electrical&Electronics Engineering,Wuhan430074,China;2.School of Mechanical&Electronic Engineering,Wuhan430074,China)Abstract:This paper introduces the basic principles and functions of MAX548,designs is interface com2 municating with SPI of TMS320L F2407.It also provides the hardware interface and software programming.K ey w ords:MAX548A;TMS320L F2407;SPI 333333333333333333333333333333333333 (上接第277页)The research to improve the linearization techniquesof transconductance amplifierWAN G Guo2wei,ZHAN G Yan(Department of Physics,Lanzhou Teacherπs College,Lanzhou730070,China)Abstract:The basic concepts and characteristics about the current model circuit and trans conductor (g m)have been given,the method of enhancing linear scale of transmission characteristics of input end and enlarging linear area are investigated and proposed.K ey w ords:operational transconductance amplifier;transconductor;the current model circuit;lineariza2 tion282云南大学学报(自然科学版) 第27卷。