DSP的SPI接口

2026/4/27 19:57:59

第1章 硬件电路设计

1.1 TMS320LF2407A的介绍

TMS320LF2407A的D/A转换是基于2407的SPI接口以及TLV5617芯片里完成。SPI参与数据传输的寄存器有9个,其中SPICCR、SPICTL用于设置SPI的工作状态工作方式、数据长。作为主器件时,时钟模式的选择要参考工作方式。SPIBRR用于设定SPI的波特率;SPISTS反映数据传输的状态;SPIRXBUF、SPITXBUF用于数据的接收和发送;SPIDAT为数据的发送/接收缓冲寄存器。

(1)2407A的SPI工作方式和时钟模式

工作方式:2407A的SPI功能模块是一种真正的同步串行接方式无延时上升沿有延时上升沿无延时下降沿有延时下降沿SPICLK信号上升沿发送数据,下降沿接00收数据提前SPICLK信号上升沿半个周期发送数据,上升沿接收数据SPICLK信号下降沿发送数据,上升沿接01口,可以工作于主动和从动方式。将SPICTL寄存器的位2(MASTER/SLAVE)设置为1,即选择了主动工作方式,2407A作为主器件;反之,为从动方式,2407A作为从器件。当SPI工作在主动方式时,SPICLK为时钟信号输出端,与从器件的时钟信号输入引脚相连接,二者共用2407A的时钟信号。SPI数据传输由第30、32、33、35引脚完成。引脚功能见表1。

表1 引脚功能表

引脚名称:SPISIMO(30引脚)SPISOMI(32引脚)SPISTE(33引脚)SPICLK(35引脚)

2407A数据字长度可以是1到16位,收发数据的功能从动输入/主动输出从动输出

3

/主动输入从动发送使能串行时钟输入/输出位数由SPI的配置控制寄存器SPICCR的低四位(SPICHAR3~SPICHAR0)决定。在二进制中,这四位共有16种组合,每一个组合对应一种数据长度,比如:组合是0000时,规定收发数据的位数是1位;当组合是1111时,就规定了收发数据位数为16位。SPI数据的收发都经过发送/接收缓冲寄存器SPIDAT。SPIDAT是一个16位寄存器,SPI发送采用左对齐方式,所以当要发送的数据小于16位时,需对要发送的数据进行调整,有效位要从高位开始放置(靠左),无效位可为随意的数据。

(2) 时钟模式

SPI的时钟模式有四种。时钟模式的选择由配置控制寄存器SPICCR的时钟极性位(位6:CLOCKPO2LARITY)和接口操作控制寄存器SPICTL的时钟相位位(位3:CLOCKPHASE)的组合状态来决定。

图2 SPI数据传输格式时序

波特率的设定要参考外设的最大传输频率。通过向波特率寄存器(SPIBRR)写入设定值,就可以得到不同的波特率。波特率计算公式如下:SPI波特率=SYSCLK/(SPIBRR+1)(3ΦSPIBRRΦ127)(SPISPI波特率=SYSCLK/4BRR=0,1,2时)其中,SPIBRR为SPI模块的SPIBRR寄存器中的内容,SYSCLK为倍频或分频后的系统时钟频率。

1.2 TLV5617的介绍

TLV5617A是带有灵活3线串行接口的双10位电压输出数/模转换数,DAC串行接口可与TMS320 SPITM QSPIM和MiscrowaresTM的串行端口兼容。它可用含有4个控制位和10个数据位的串行16位字符串编程。 其特点

双10位电压输出数/模转换器DAC:可编程的内部基准,可编程的稳定时

4

间,快速方式2.5s,慢速方式12s,可与TMS320和SPITM串行端口兼容

应用范围:数据伺服系统控制回路,数据偏置和增益调节器,工业处理控制,机械和运作控制器件,海量存储器一般功能TLV5617A是一个基于串联电阻结构的双10位电源的DAC,它由一个串行接口一个速度和掉电控制逻辑一个电阻字符串和一个轨对轨的输出缓冲器组成输出电压全额度由内部基准决定由一下公式给出:

2REF CODE/0*1000【v】

其中REFSHI 电压基准,CODE是在0x000至0xFFC范围内的数字输入值一次上电复位初始化内部锁存至置位状态所有位均为0。 串行接口

CS引脚的下降沿开始将数据一位接一位从最高有效位开始转移到在SCLK引脚的下降沿上的内部寄存器中在16位数据传送完或CS上升时转移寄存器的内部被移入目标锁存DACA DACB缓冲器或控制中这取决于数据字中的控制位。

1.3 DA转换系统原理图

图3 DA转换系统原理图

5

第二章 软件的设计

2.1 程序流程图

图4 SPI模块软件流程

当SPICTL的使能发送允许位TALK位为1时,写数据到SPIDAT或SPITXBUF就启动了SPISIMO引脚的数据发送,数据从SPIDAT的最高位依次发送出去。在数据移出SPIDAT时,将置位SPI的接口状态寄存器SPISTS的中断标志位SPIINTFLAG;若中断使能,将发生中断事件。2407A发送数据的状态可以用两种方法检测:一是中断方式,二是查询方式。查询方式查询SPI中断标志位SPIINTFLAG是否为1,若为1,则数据发送完毕。

2.2 SPI 接口的DA 实验编程

DA转换程序 #include \SPI_Init(); void DA_OUT(unsigned CHANNEL,unsigned int RNG,unsigned int SPI_DATA); int numled0=200; unsigned int t0=0,i=0; int Voltage=0; main() { SystemInit(); //系统初始化

6


DSP的SPI接口.doc 将本文的Word文档下载到电脑
搜索更多关于: DSP的SPI接口 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219