第4章 数字波形的合成

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0x0000 7041
0x0000 7042 0x0000 7044 0x0000 7046 0x0000 7047 0x0000 7048 0x0000 7049 0x0000704A 0x0000 704B 0x0000 705C 0x0000 705F
1
1 1 1 1 1 1 1 1 1 1
SPI操作控制寄存器
void InitSpi(void) { EALLOW; GpioMuxRegs.GPFMUX.all = 0x000F; //SPI引脚配置为外设模式 EDIS; SpiaRegs.SPICCR.all = 0x0F; //软件复位,上升沿输出,字符长度16位 SpiaRegs.SPICTL.all = 0x0F; //时钟延迟半个周期,主模式,发送与中断使能 SpiaRegs.SPIBRR = 0x07; //波特率=150/4/8=4.69MHz SpiaRegs.SPICCR.all = 0x8F; //退出复位状态,准备接收、发送字符 PieCtrl.PIEIER6.bit.INTx1 = 1; //使能SPI接收中断 PieCtrl.PIEIER6.bit.INTx2 = 1; //使能SPI发送中断,(仅用于FIFO模式) IER |= M_INT6; //使能PIE组6中断 ClearSPI[0]=0x01; //*ClearSPI=(volatile unsigned int *)0x80006;
V UT A O
2
VOUTB
7
VDD
GND REF
SYNC
DIN SCLK 6 5
SPISTE SPISIMO SPICLK
3 4
AD7303
TMS320F2812
C28
0.1 F
输出1 U5
R6
输出2 +5V VCC 2OUT 2IN2IN+
R16
5.1K
C27
0.1 F
1OUT 1IN1IN+
/SPISTE通常作为从设备的片选信号,数据传输过程置低电平,传输完 成后置高.

TALK位(SPICTL.D1)
态。若发送期间清零TALK位,SPI要继续完成当前的字符传输,以保证 SPI设备正确接受数据。
当TALK位清零,数据发送被禁止,输出引脚(SPISOMI)处于高阻状
TALK位允许在一个网络上连接多个从SPI设备,但同一时刻只能有一个
(5)支持4种时钟模式,易于与扩展外设的时序特性匹配。 下降沿没有相位延时:SPICLK为高电平有效。SPI在 SPICLK信号的下降沿发送数据,在上升沿接收数据。 下降沿有相位延时:SPICLK为高电平有效。SPI在 SPICLK信号的下降沿之前的半个周期发送数据,在下降沿 接收数据。 上升沿没有相位延时:SPICLK为低电平有效。SPI在 SPICLK信号的上升沿发送数据,在下降沿接收数据。 上升沿有相位延时:SPICLK为低电平有效。SPI在 SPICLK信号的上升沿前的半个周期发送数据,在上升沿接 收数据。
4
5 6
REF
SCLK DIN
7
电平触发控制输入(低电平有效),是数据的帧同步 信号。当它变低时,使能输入移位寄存器,数据在 /SYNC 时钟上升沿打入移位寄存器。在它的上升沿,有关 寄存器数据更新。
8
Vout B DAC B 的模拟电压输出。
输入移位寄存器的内容
控制位
数据位
输入移位寄存器各位的作用
从设备允许驱动SPISOMI。这点与多机通信的RS485接口相似。
20
SPI的典型接口

主控制器通过SPICLK信号来启动数据传输; 通常在一个时钟的边沿发送数据,而在时钟的另一个边沿接收数据; 两个微处理器能够同时发送和接收数据或一侧接收一侧发送。
主处理器
从处理器
主从式微处理器间的SPI连接
波特率的计算方法: 1)当SPIBRR=3~127时: SPI波特率=LSPCLK/(SPIBRR+1) 2)当SPIBRR=0、1、2时: SPI波特率=LSPCLK/4
例 :假定LSPCLK=75MHz,试确定SPI的波特率范围。
SPI波特率最大值:LSPCLK/4=18.75MHz
SPI波特率最小值:LSPCLK/128=0.586MHz
0
0 1
0
1 0
上升沿发送,下降沿接收
上升沿前的半个周期发送 数据,上升沿接收 下降沿发送,上升沿接收
有相位延迟的下降沿
1
1
下降沿前的半个周期发送 数据,下降沿接收
24
SPI的中断
SPI中断控制和状态位:

SPI中断使能位(SPICTL.0):1-使能中断,0-禁止中断 当中断使能置位,且满足中断条件时,产生相应的中断。 SPI中断标志位(SPISTS.6):只读,由硬件设置。 指示SPI接收器中已经存放字符可以被读取或已完成指定长度的数据发送。 该位置位时已接收数据送入SPIRXBUF,当DSP读SPIRXBUF中的数据后 自动清除中断标志。
缓冲寄存器
TX FIFO寄存器
TX 中断逻辑 中断 SPI中断标志位 缓冲寄存器 SPI 中断使能
数据寄存器
状态控制 主/从
SPI速率
时钟 极性
时钟 相位
SPI的工作原理
SPI有主/从两种工作模式,由Master/Slave位(SPICTL.2)选择. 主模式:Master/Slave=1

3)在SPICLK信号的下降沿输入的数据被锁存(00);
4)字符长度为1位; 5)禁止SPI中断; 6)SPIDAT中的数据复位为0000H; 7)SPI模块引脚 被配置为通用输入。
SPI应用编程
为配置SPI模块,应完成以下操作:
1)清零SPI SW RESET位(SPICCR.7),软件复位SPI;
位 名 称 功能描述 选择内部与外部参考。0:内部参考;1:外部参考 不使用 同步更新DAC输出的加载DAC位 掉电DAC B 掉电DAC A 选择DAC A或DAC B的地址选择位 CR1和CR0组合实现各种数据加载功能 8位数据位
输入移位寄存器中各控制字的配置不同,所实现的功能是不同
的,通过对命令字的配置,就可以实现所需要的功能。
SPI的引脚SPICLK为整个串行通信网络提供时钟; 通过SPIBRR寄存器设定通信网络的数据传输速率; 数据从SPISIMO输出,并锁存从SPISOMI输入的数据; /SPISTE通常作为片选信号,数据传输过程置低电平,传输完成后置高. 发送数据: 写数据到SPIDAT或SPITXBUF,启动SPISIMO引脚上的数据发送,首 先发送最高有效位(MSB)(与SCI有所不同)。
1
DSP技术及应用
多媒体教学系统
制作:李金明
兰州石化职业技术学院
退出
2
第4章 数字波形的合成
主要内容
学习SPI串行外设接口的使用。
介绍用SPI接口的连接DAC。
数字波形合成的基本方法
1.查表法。此种方法用于对精度要求不是很高的场 合。如果要求精度高,表就很大,相应的存储器容量 也要很大。
2.泰勒级数展开法。这是一种更为有效的方法。与查表法相比, 需要的存储单元很少,而且精度高。 一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5 项进行近似得: x3 x5 x7 x9 x2 x2 x2 x2 sin x x(1 (1 (1 (1 )))) 3! 5! 7! 9! 23 45 67 89
给移位寄存器写入0x01xx,即高8位命令字为#00000001B,其
含义为:选择内部参考电压,从移位寄存器更新DAC A的输入寄 存器。
再如,给移位寄存器写入0x25xx,即高8位命令字为
#00100101B,其含义为:选择内部参考电压,同步更新DAC的
输出,从移位寄存器更新DAC B的输入寄存器,并且两个DAC同
23
SPI的时钟模式

SPI支持4种不同的时钟模式:


时钟极性选择位(SPICCR.6)选择时钟上升或下降沿有效;
时钟相位选择位(SPICTL.3)选择是否有半个周期的时钟延迟。
SPI时钟控制方式选择
SPICLK时钟方式 极性选择 相位控制 工作方式描述
无相位延迟的上升沿
有相位延迟的上升沿 无相位延迟的下降沿
2)设置SPI寄存器,如数据格式、波特率、工作与时钟模 式、引脚功能; 3)置位SPI SW RESET位,使SPI退出复位状态,进入工 作状态; 4)写数据到SPIDAT或SPITXBUF, (主模式下就启动通信过程); 5)数据传输结束后(SPISTS.6=1),读取SPIRXBUF中
的数据。
SPI的初始化
VOUT
A R8
5.1K
5.1K
R18 VOUT B
5.1K
R7
10K
GND LM358
R17
10K
AD7303简介
AD7303是一款双通道、8位电压输出DAC,采用 2.7 V至 5.5 V单电源供电。采用三线式串行接口,最高时 钟达30 MHz,DA转换时间1.2μs,采用SPI串行接 口和DSP连接。串行输入寄存器为16位,其中8位用 作DAC的数值位,其余8位构成一个控制寄存器。DA 输出可以得到0~5V的输出范围。


超时中断使能位(SPICTL.4):1-使能中断,0-禁止中断 接受超时中断标志位(SPISTS.7):新的字符接受完成后,前一个字符 还未读取,则置位中断标志。该标志位必须由软件清除。
提示:SPISTS.7和SPISTS.6共享一个中断向量SPIRXINT。
25
SPI的复位
当系统复位后,SPI外设模块配置为如下的缺省状态: 1)配置为从模式(Master/Slave=0); 2)禁止发送功能(TALK=0);
SPI状态寄存器 SPI波特率控制寄存器 SPI仿真缓冲寄存器 SPI串行输入缓冲寄存器 SPI串行输出缓冲寄存器 SPI串行数据寄存器 SPIFIFO发送寄存器 SPIFIFO接收寄存器 SPIFIFO控制寄存器 SPI优先级控制寄存器
接收超时 标志 RX FIFO寄存器
超时中断 使能
RX 中断逻辑 SPIFFOVF 标志位
有两个独立的外设中断请求信号(SPIINT/RXINT和TXINT),
提供了12个寄存器实现SPI模块的配置和控制。
SPI模块与CPU的接口
系统控制 模块 低速时钟 预定标器
外部 引脚 GPIO
寄 存 器
外 设 总 线
SPI模块
主要特点有:
(1)两种工作模式:主/从工作模式。 (2)四个复用引脚: SPISOMI:从输出/主输入引脚; SPISIMO:SPI从输入/主输出引脚; SPISTE:SPI从发送的使能引脚; SPICLK:SPI串行时钟引脚。 (3)波特率:125种可编程的通信波特率。 (4)数据字长:可编程为1~16位的字符长度。
时激活。
TMS320F2812的串行外设接口SPI概述
TMS320F2812芯片内部集成了一个SPI模块,其数据移位速率 和字符长度是可编程的,支持主/从模式下的多机通信。SPI模块 与CPU间的接口包括四个外部引脚(SPI接口的四根信号线都是 与GPIOF复用的),采用低速外设时钟LSPCLK作为时钟源,具
(6)支持同步接收和发送操作,即全双工模式 。 (7)可通过中断或查询方式实现接收和发送。 (8)支持16级接收和发送FIFO,以减小CPU 访问SPI外设 的时间开销。
SPI寄存器 名称 SPICCR 地址 0x0000 7040 大小/16b 1 功能描述 SPI配置控制寄存器
SPICTL
SPISTS SPIBRR SPIEMU SPIRXBUF SPITXBUF SPIDAT SPIFFTX SPIFFRX 管脚 1 2 3
名 称


Vout A DAC A 的模拟电压输出。 VDD GND
电源。要求2.7V~5.5V。
地。 外部参考输入。 串行输入的时钟,最高时钟为30MHz。 串行数据输入位。器件内部有16位的移位寄存器,8位 数据位和8位控制位。数据在串行时钟上升沿进入 移位寄存器。
21
数据格式


SPICCR.3~SPICCR.0确定了字符的位数(1~16);
当数据写入SPIDAT和SPITXBUF寄存器时必须左对 齐;


当数据从SPIRXBUF读取时,必须是右对齐;
SPIRXBUF中包含最新接收的字符,以及上次接收且 已移位到左边的位。
22
波特率设置

主模式下,SPICLK引脚为通信网络提供时钟,时钟频率≤LSPCLK/4。 从模式下,SPICLK引脚接收外部时钟信号,时钟频率≤ LSPCLK/4。
x2 x4 x6 x8 x2 x2 x2 x2 cos 1 1 (1 (1 (1 )))) 2! 4! 6! 8! 2 3 4 5 6 7 8
其中, 为
x 的弧度值。
本项目采用泰勒级数展开法产生一正弦波,并通过D/A转换输出。
系统电路图
1 +5V 8

接收数据: 当指定数量的数据位已经通过SPIDAT移位后,SPIDAT中的数据发送 到SPIRXBUF中,且SPI INF FLAG置1。
19
SPI的工作原理
从模式:Master/Slave=0

从模式下,SPICLK时钟由主控制器提供,并决定了传输速率。
数据从SPISIMO引脚输入,从SPISOMI引脚输出。
相关文档
最新文档