




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 sci串行通信接口 scia scib 电平转换芯片 数据和握手信号 rs232 485 标准串行总线接口 2 f2812串行外设接口serialperipheralinterface spi dsp原理及其应用技术 6 1spi模块概述 6 2spi的工作原理 6 3通过spi接口扩展外设 6 4软件编程举例 3 6 1spi模块概述 spi与sci有什么区别 通常用于dsp与扩展外设以及其它处理器间进行通信 如显示驱动器 adc dac eprom rtc以及主从模式的多处理器应用等 f2812包含一个spi接口 支持16级的接受和传输fifo 串行外设接口 spi 是一种同步串行输入 输出接口 传输速率较高 lspclk 4 适于板级通信 串行通信接口 sci 是一种异步串行接口 通常需经过收发器进行电平转换 通信速率较低 适于长距离通信 spi适于那些应用场合 4 spi与xintf spi与xintf有什么区别 串行外设接口 spi 是一种同步串行输入 输出接口传输速率最高可达37 5mbps信号线少 2 4条 适于板级扩展的外设输入 输出接口适于板级微处理器间通信 外部扩展接口 xintf 是一种并行输入 输出接口传输速率较很高 可达75m 16 1200mbps信号线多 db16 ab19 cb11 限用于板级扩展外设的输入 输出接口 5 spi模块的特点与信号 数据长度 1 16位可编程 4个外部引脚 波特率 126种可编程 两种工作方式 主 从工作方式 4种时钟模式 由极性和相位控制 可同时进行发送和接收操作 接口方式 中断或查询 12个寄存器 6 spi模块寄存器概述 共12个寄存器 fifo寄存器 双缓冲结构 7 6 2spi的工作原理 spi的引脚spiclk为整个串行通信网络提供时钟 通过spibrr寄存器设定通信网络的数据传输速率 数据从spisimo输出 并锁存从spisomi输入的数据 spiste通常作为片选信号 数据传输过程置低电平 传输完成后置高 spi有主 从两种工作模式 由master slave位 spictl 2 选择 主模式 master slave 1 发送数据 写数据到spidat或spitxbuf 启动spisimo引脚上的数据发送 首先发送最高有效位 msb 与sci有所不同 接收数据 当指定数量的数据位已经通过spidat移位后 spidat中的数据发送到spirxbuf中 且spiinfflag置1 8 6 2spi的工作原理 从模式下 spiclk时钟由主控制器提供 并决定了传输速率 从模式 master slave 0 数据从spisimo引脚输入 从spisomi引脚输出 当talk位清零 数据发送被禁止 输出引脚 spisomi 处于高阻状态 若发送期间清零talk位 spi要继续完成当前的字符传输 以保证spi设备正确接受数据 talk位允许在一个网络上连接多个从spi设备 但同一时刻只能有一个从设备允许驱动spisomi 这点与多机通信的rs485接口相似 spiste通常作为从设备的片选信号 数据传输过程置低电平 传输完成后置高 talk位 spictl d1 9 spi的典型接口 主从式微处理器间的spi连接 主控制器通过spiclk信号来启动数据传输 通常在一个时钟的边沿发送数据 而在时钟的另一个边沿接收数据 两个微处理器能够同时发送和接收数据或一侧接收一侧发送 主处理器 从处理器 10 spi的中断 spi中断控制和状态位 超时中断使能位 spictl 4 1 使能中断 0 禁止中断接受超时中断标志位 spists 7 新的字符接受完成后 前一个字符还未读取 则置位中断标志 该标志位必须由软件清除 提示 spists 7和spists 6共享一个中断向量spirxint spi中断使能位 spictl 0 1 使能中断 0 禁止中断当中断使能置位 且满足中断条件时 产生相应的中断 spi中断标志位 spists 6 只读 由硬件设置 指示spi接收器中已经存放字符可以被读取或已完成指定长度的数据发送 该位置位时已接收数据送入spirxbuf 当dsp读spirxbuf中的数据后自动清除中断标志 11 数据格式 spiccr 3 spiccr 0确定了字符的位数 1 16 当数据写入spidat和spitxbuf寄存器时必须左对齐 当数据从spirxbuf读取时 必须是右对齐 spirxbuf中包含最新接收的字符 以及上次接收且已移位到左边的位 例1 发送数据长度为1 spidat当前值为737bh 数据格式见下图 7 3 7 b 12 波特率设置 波特率的计算方法 1 当spibrr 3 127时 spi波特率 lspclk spibrr 1 2 当spibrr 0 1 2时 spi波特率 lspclk 4 主模式下 spiclk引脚为通信网络提供时钟 时钟频率 lspclk 4 从模式下 spiclk引脚接收外部时钟信号 时钟频率 lspclk 4 例2 假定lspclk 75mhz 试确定spi的波特率范围 spi波特率最大值 lspclk 4 18 75mhzspi波特率最小值 lspclk 128 0 586mhz sci的波特率范围 lspclk 2 65536 8 13 spi的时钟模式 spi支持4中不同的时钟模式 时钟极性选择位 spiccr 6 选择时钟上升或下降沿有效 时钟相位选择位 spictl 3 选择是否有半个周期的时钟延迟 spi时钟控制方式选择 14 spi的时钟模式波形 00 01 10 11 数据长度 8位 t r 15 数据传输举例 给出的例子中spi数据长度为8位 f2812的数据长度为16位 在主控制器将数据写入spidat来启动传输前 从控制器必须处于使能状态 且将待发数据写入spidat 当读取spirxbuf中数据时 自动清除中断标志位 只有一次完整的发送结束 spidat中的数据才送入spirxbuf中 本例中设定字符长度为5位 共主 从控制器间共进行两个字符的传送 数据传输过程说明 16 数据传输举例 d0h a 从控制器将d0h写入到spidat 等待主控制器移出数据 b 主控制器将从控制器的 spiste引脚拉低 c 主控制器将58h写入spidat来启动发送过程 d 第一个字节发送完成 置中断标志 e 从控制器从它的spirxbuf中读取0bh 清除中断标志 f 从控制器将4ch写入spidat中等待主控制器移出数据 g 主控制器将6ch写入spidat中来启动发送过程 h 主控制器从spirxbuf中读取1ah 清中断标志 i 第二个字节发送完成 置中断标志 j 主从控制器分别从各自的spirxbuf中读取89h和8dh k 主控制器将从控制器的 spiste引脚置高电平 58h 4ch 6ch 字符长度5位 从spi 主spi 17 max5253的主要特点 四个12 bit电压输出dacs单3 0 3 6v电源供电 0 82ma 典型建立时间12 sspi兼容串行外设接口时钟频率可达10mhz cl pdl upo引脚 6 3通过spi接口扩展外设 串行数据格式 f2812与max5253间的spi接口 dsp 18 多个spi外设的扩展方法 菊花链式 共享总线式 16个spiclk 16个spiclk 16个spiclk 19 dsp与max5253的接口电路 voutx 3 0v nb 4096 max5253配置为单极性输出方式 20 max5253的编程命令 max5253的编程命令 方法1 方法2 21 max5253接口时序 数据传送过程 cs必须保持低电平 提示 spictl中的talk位控制 spiste引脚电平 若talk 1 使能发送 且移位过程 spiste保持低电平 max5253的时序图 仅输入部分 每个数据位在sclk的上升沿采样并送入dac的移位寄存器 数据在 cs的上升沿被锁存到max5253的输入或dac寄存器 cs保持高电平的脉冲宽度必须大于100ns 即两次发送的时间间隔要大于100ns max5253的最高时钟频率10mhz 22 max6629 spi接口的数字温度传感器 max6629与f28 的接口电路 23 max6629的接口时序和数据格式 max6629的接口时序图 cs上升沿启动转换 高电平必须保持300ms以便完成转换 cs下降沿停止转换 并将转换结果锁存到移位寄存器 此时可以读取转换结果 转换结果为16位 d0 d1未定义 d15位符号位d14 d3为数据d2位验证位 24 采用xintf扩展的dac接口 db 14 ab 3 cb 4 pqfp 44 ssop 20 ad7835 max5253 xinft 21 25 6 4软件编程与实例 当系统复位后 spi外设模块配置为如下的缺省状态 1 配置为从模式 master slave 0 2 禁止发送功能 talk 0 3 在spiclk信号的下降沿输入的数据被锁存 00 4 字符长度为1位 5 禁止spi中断 6 spidat中的数据复位为0000h 7 spi模块引脚被配置为通用输入 本节针对实验系统中通过spi接口扩展的max5253芯片 介绍软件spi的初始化和软件编程 26 spi的配置和操作 为配置spi模块 应完成以下操作 1 清零spiswreset位 spiccr 7 软件复位spi 2 设置spi寄存器 如数据格式 波特率 工作与时钟模式 引脚功能 3 置位spiswreset位 使spi退出复位状态 进入工作状态 4 写数据到spidat或spitxbuf 主模式下就启动通信过程 5 数据传输结束后 spists 6 1 读取spirxbuf中的数据 提示 通信过程不要改变spi的设置 以免产生不期望的事件 27 spi的初始化 voidinitspi void eallow gpiomuxregs gpfmux all 0 x000f spi引脚配置为外设模式edis spiaregs spiccr all 0 x0f 软件复位 上升沿输出 字符长度16位spiaregs spictl all 0 x0f 时钟延迟半个周期 主模式 发送与中断使能spiaregs spibrr 0 x07 波特率 150 4 8 4 69mhzspiaregs spiccr all 0 x8f 退出复位状态 准备接收 发送字符piectrl pieier6 bit intx1 1 使能spi接收中断piectrl pieier6 bit intx2 1 使能spi发送中断 仅用于fifo模式 ier m int6 使能pie组6中断clearspi 0 0 x01 clearspi volatileunsignedint 0 x80006 28 状态查询 unsignedintspi txready void unsignedinti if spiaregs spists bit buffull flag 1 i 0 else i 1 return i unsignedintspi rxready void unsignedinti if spiaregs spists bit int flag 1 i 1 else i 0 return i 当一个字符写入spitxbuf时 该位置位 当字符全部位装入串行移位寄存器spidat中后 该位被清除 当整个字符移入或移出spidat寄存器 该位置位 已接收的数据送spirxbuf 如果spi中断使能 会引起一个外设中断 响应中断或读取spirxbuf会复位该位 29 max5253测试程序 voidmain void initsysctrl 初始化系统 使能spi时钟dint ier 0 x0000 ifr 0 x0000 initpiectrl 初始化pie控制寄存器initpievecttable 初始化pie参数表initspi eint spiinitialization for if spi txready 1 spiaregs spitxbuf 0 x1400 delay loop if spi txready 1 spiaregs spitxbuf 0 x5800 delay loop if spi txready 1 spiaregs spitxbuf 0 x9c00 delay loop if spi txready 1 spiaregs spitxbuf 0 xdfff delay loop if spi txready 1 spiaregs spitxbuf 0 x4000 delay loop 查询方式实现四通道dac固定电压输出 30 应用dac芯片产生周期性波形 以产生锯齿波为例 通过定时器中断或软件延迟 使dac的模拟输出线性递增 在一个波形周期后复位为零 重新开始下一个周期 通过软件编程可以使dac产生任意波形 幅度和频率的信号 如三角波 方波 锯齿波 三角函数及其它任意函数 如y t 2 cos 200t sin 100t t t t n t 31 改变周期性波形的频率和幅值 如何改变幅值 如何改变波形周期 1 改变定时器时间间隔 2 改变每个周期合成波形的数字量数目 max5253的数字量范围 0 4095 输出模拟电压0 3v 将每一时刻的数字量乘 一个比例系数或直接改变前后时刻的数字增量 正弦波形的产生 软件产生正弦波的方法主要有两种 1 直接使用sin函数 double
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中华绒毛蟹(大闸蟹)创新创业项目商业计划书
- 押题宝典教师招聘之《幼儿教师招聘》考试题库附参考答案详解【巩固】
- 2025年教师招聘之《小学教师招聘》题库高频难、易错点100题模拟试题(典优)附答案详解
- 2025呼伦贝尔农垦集团有限公司社会招聘50人备考及答案详解(有一套)
- 2025内蒙古事业单位招聘报考指南笔试备考完整参考答案详解
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库含答案详解【综合卷】
- 教师招聘之《小学教师招聘》通关模拟题库带答案详解(考试直接用)
- 教师招聘之《小学教师招聘》试卷及参考答案详解【预热题】
- 2025年江西省农村商业银行招聘考试(经济金融)历年参考题库含答案详解
- 2025年北京银行长沙分行社会招聘笔试参考题库附答案解析
- 《人为因素与航空法规》课件(共九章)
- 招标投标法9个课件
- 风疹病毒实验活动风险评估报告
- 小古文《放风筝》课件
- 污水化验培训课件
- 经济效益证明(模板)
- 《企业年度培训计划制定》
- 安全文明施工措施费使用计划表完整优秀版
- 免疫学(全套课件)
- 胸部检查(二)肺与胸膜检查
- 高压燃气管线施工安全生产措施
评论
0/150
提交评论