(11)hong—第十章—SPI模块.ppt_第1页
(11)hong—第十章—SPI模块.ppt_第2页
(11)hong—第十章—SPI模块.ppt_第3页
(11)hong—第十章—SPI模块.ppt_第4页
(11)hong—第十章—SPI模块.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章,片内和片外模块,10.1并行I/O 10.2异步串行通信SCI 10.3同步串行通信SPI 10.4 ATD转换模块10.5周期中断定时器PIT 10.6时钟发生器模块,第1页,第2页,第10章,片内和片外模块SPI,SPI概述SPI模块工作原理SPI模块寄存器SPI模块编程示例SPI模块应用示例,第3页,SPI(串行外设接口)可设置主模式/从模式和从模式您可以选择从最高位或最低位传输,您可以选择全双工模式或单线双向模式的可编程传输速率,您可以灵活设置时钟的极性和相位,您可以实现发送和接收数据寄存器和移位寄存器的独立操作。接收中断和发送中断的工作方式简单,有液晶驱动器、数模转换器、可

2、编程只读存储器等通信接口;第10章片内和片外模块的SPI概述,第4页,第10章片内和片外模块的SPI概述,第5页,主机,从机,MOSI主机输出入MISO主机输出入SCK同步时钟SS从机芯片选择引脚,当一个主机和一个从机时,主机从低到高,第10章片内和片外模块的SPI工作原理,第6页,当主机写入发送数据寄存器时,它将开始数据传输(位号,传输速率)。从机向接收数据寄存器发送数据。当SS处于低电平时,从机与主机同步移动。从机只能通过主机发起的传输被动传输数据。因此,有必要频繁地主动更新要发送给主机的数据。7、MOSI、米索、中央处理器、输入输出、重复8次,第10章:SPI模块的工作原理,第7页,第1

3、0章:在SCK的奇数跳变沿驱动,在偶数跳变沿采样,在SCK信号的跳变沿在主从之间移位和采样数据,主从观察相同的时序模式,不同的时钟时序可以是SPI与各种同步外设通信。第8页、第10章片内和片外模块的SPI模块寄存器、SCK的偶数跳变沿驱动、奇数跳变沿采样、主/从移位和在SCK信号跳变沿采样数据、主/从观察相同的时序模式、不同的时钟时序可以与各种同步外设进行SPI通信。、第9页、第10章片内和片外模块的SPI模块寄存器、SPI控制寄存器1(SPI R1)-SPI控制寄存器1 $ 00d8、1=SPI中断使能0=SPI中断禁用、1=SPI系统使能0=SPI系统禁用、1=SPI是主机0=SPI是从机

4、DDRS7 SSOE主模式从模式0 0 SS输入SS输入(MODF使能)0 1 GP输入SS输入1 0 GP输出SS输入1 1 SS输出SS输入、1=SPI LSB优先0=SPI MSB优先、1=SPI发送中断使能0=SPI发送中断禁用、SPI控制寄存器2(SPI R2)-SPI控制寄存器2 $ 00d9,mod fen-模式故障使能0=模式故障禁用1=模式故障使能。 双向模式下的双向输出使能0=输出缓冲器禁用1=输出缓冲器使能、Xfrw、XFRW传输宽度0=8位1=16位,第10页,第10章片内和片外模块的串行接口模块寄存器,实践:20M总线时钟,最大串行接口波特率=?最小串行接口波特率=?

5、SPI波特率寄存器(spibr)-SPI波特率设置寄存器$00DA,第11页,第10章片内和片外模块的SPI模块寄存器,SPI状态寄存器(SPISR)-SPI状态寄存器$00DB,SPIF-SPI接收中断标志1=新接收到SPIDR,SPTEF-SPI发送缓冲器空气中断标志MODF主机模式错误标志1=SPI数据寄存器为空1=SPI主机被选为从机,第12页,第10章片内和片外SPI模块寄存器Spidata寄存器(SPI0BR=spidrh: spidrl)-SPI数据寄存器$00DC $00DD,注意:用户只能在设置SPI发送缓冲区空标志时写入该寄存器,注意:发送数据和接收数据共享相同的存储器地址

6、,第13页,第10章SPI模块编程片内和片外单芯片模块示例,SPI模块编程方法,SPI初始化:先写SPI。 再次写入控制寄存器SPI0CR1和SPI0CR2,设置时钟的极性、相位、SPI数据传输宽度、SPI工作模式和中断允许位,并使能SPI模块。SPI发送和接收数据:通过查询SPI0SR中的状态位或采用中断方式读写数据寄存器,完成数据发送和接收。第14页,第10章单片机片内和片外模块的SPI模块编程示例,/SPI初始化函数无效SPI _ Init()SPI 0BR=0 x44;/设置波特率SPI0CR1=0 x5C/关闭串行接口中断,设置串行接口主模式,并启用串行接口模块SPI 0cr 2=0

7、x 00;/数据传输宽度为8位,即一个字节。/SPI发送一字节函数(参数:send_data为1字节待发送数据)无效SPI _ send _ char(无符号char send _ data)而(spi0sr,第15页,第10章,片内和片外微控制器SPI模块应用实例,借助并行输入/串行输出芯片和串行输入/并行,重新设计了前面的任务:(1)用SPI输出代替并行端口,实现LED小灯的跑马灯。(2)用串行接口代替并口输入进线开关的值。问题:数据需要转换成并行、串行、并行、串行、并行、串行接口、专用芯片,第16页,第10章,片上和片外单片机的串行接口模块应用实例,借助并行输入/串行输出芯片和串行输入/

8、并行输出芯片,通过串行接口模块扩展并行接口。任务(1)中的接线如图所示,其中164的磁流变仪连接到PORTA1,164的输出Q0Q7连接到数字输出显示电路L0L7。输出并行数据,相当于PORTA的并行端口等。它扩展了并行端口。第17页,第10章片内和片外单片机的SPI模块应用实例,串行输入/并行输出芯片74hc 164/74hc 164:8位边沿触发移位寄存器,引脚描述,数据通过DSA或DSB串行输入,任一输入端可作为高电平使能端,控制另一输入端的数据输入。主复位输入端的低电平将使所有其他输入无效,同时异步清除寄存器,迫使所有输出为低电平。,真值表,第18页,第10章,串行接口模块在单片机内外

9、的应用实例,借助并行输入/串行输出芯片和串行输入/并行输出芯片,通过串行接口模块扩展并行接口。任务(2)中的接线如图所示,其中165的PL连接到PORTA0,第10章,片内外单片机SPI模块应用示例,并行输入/串行输出芯片74hc165/74hct165: 8位边沿触发移位寄存器,引脚描述,真值表,正电源,16,VCC,时钟使能输入(低电平有效),15 3 6,D0D7,串行数据输入,10,DS,地(0V),8,GNDDDRB=0 Xff;SPI _ Init();i=0 x55PORTB=i。POTA=0x 00;DDRA=0 Xff;延迟(1);PORTA=0 xff。SPI _ send _ char(I);I=SPI _ rev _ char();PORTB=i。对于(;);第10章,片内和片外单片机SPI模块的应用实例,实验9的任务:(1)为实现SPI输出,输出端接8位数字显示电路,01010101的内容输出在一个小灯上。(2)实现串行接口输入,输入端连接一个8位数字输入电路,输入通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论