嵌入式串行外设接口(SPI)预案.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 串行外设接口(SPI)介绍 作者:卢兴 * SPI接口 寄存器介绍 编程步骤 主要内容 SPI接口概述 S3C2410包含有两个串行外围设备接口(SPI口),每个SPI口都有两个分别用于发送和接收的8位移位寄存器,在一次SPI通信当中数据被同步发送(串行移出)和接收(串行移入)。8位串行数据的速率由相关的控制寄存器的内容决定。如果只想发送,接收到的是一些虚拟的数据。另外,如果只想接收,发送的数据也可以是一些虚拟的“1”。 SPI 结构框图如下图所示。 * * SPI接口特性 与SPI接口协议v2.11兼容; 8位用于发送的移位寄存器; 8位用于接收的移位寄存器; 8位预分频逻辑; 查询、中断和DMA传送模式; * SPI接口操作 通过SPI接口,S3C2410可以与外设同时发送/接收8位数据。串行时钟线与两条数据线同步,用于移位和数据采样。如果SPI是主设备,数据传输速率由SPPREn寄存器的相关位控制。可以修改频率来调整波特率寄存器的值。如果SPI是从设备,其他的主设备提供时钟,向SPDATn寄存器中写入字节数据,SPI发送/接收操作就同时启动。某些情况下片选nSS要在向SPDATn寄存器中写入字节数据之前激活。 * SPI控制寄存器(SPICONn) 该寄存器控制SPI的工作模式。 SPCONn[6:5] (SMOD) :SPTDAT的读/写模式。 00:查询模式;01:中断模式;10:DMA模式;11:保留。 SPCONn[4] (ENSCK):时钟SCK允许/禁止位。 0:禁止SCK;1:允许 SCK。 SPCONn[3] (MSTR):主/从选择位。 0:从设备;1:主设备。 SPCONn[2] (CPOL): 时钟极性选择位。 0:时钟高电平起作用;1:时钟低电平起作用。 SPCONn[1] (CPHA): 时钟相位选择位。 0:数据采样从第一个时钟边沿开始 1: 数据采样从第二个时钟边沿开始 SPCONn[0] (TAGD):决定是否只需要接收数据。 0:正常模式 1;自动发送虚拟数据 * SPI状态寄存器(SPSTAn) SPSTAn[7:3] 保留。 SPSTAn[2] (DCOL):数据碰撞错误标志。 0:未检测到碰撞;1:检测到碰撞错误。 SPSTAn[1] (MULF):多主设备错误标志。 0:未检测到该错误;1:发现多主设备错误。 SPSTAn[0] (REDY):是否准备好发送或接收。 0:未准备好;1:准备好。 * 数据寄存器 SPI发送数据寄存器(SPTDATn) 发送数据寄存器中存放待SPI口发送的数据。 * SPI接收数据寄存器(SPRDATn) 接收数据寄存器中存放SPI口接收到的数据。 SPI引脚控制寄存器(SPPINn) 当一个SPI系统被允许时,nSS之外的引脚的数据传输方向都由SPCONn的MSTR位控制,nSS引脚总是输入。 当SPI是一个主设备是,nSS引脚用于检测多主设备错误(如果SPPIN的ENMUL位被使能),另外还需要一个GPIO 来选择从设备。 如果SPI被配置为从设备,nSS引脚用来被选择为从设备。 * SPI引脚控制寄存器(SPPINn) SPPINn[7:3] 保留。 SPPINn[2] (ENMUL):多主设备错误检测使能 0:禁止该功能;1:允许该功能。 SPPINn[1] 保留,总为1。 SPPINn[0] (KEEP):主设备发送完一个字节后继续驱动还是释放。 0:释放;1:继续驱动。 SPIMISO和SPIMOSI数据引脚用于发送或者接收串行数据。如果SPI口被配置为主设备,SPIMISO就是主设备的数据输入线,SPIMOSI就是主设备的数据输出线,SPICLK是时钟输出线;如果SPI口被配置为从设备,这些引脚的功能就正好相反。在一个多主设备的系统中,SPICLK、SPIMOSI、SPIMISO都是一组一组单独配置的。 * 波特率预分频寄存器(SPIPREn) SPPREn[7:0]=预分频值。可以通过预分频值计算波特率,公式如下: 波特率=[fPCLK/2]/(预分频值+1) * SPI通信模式 程序查询模式:检查条件及处理要占用CPU时间。 中断模式: 检查条件不占CPU时间,满足条件时进入中断子程,所以处理需占CPU时间。该模式主要用于处理事件或事务。 DMA的英文拼写是“Direct Memory Access”,是一种不经过CPU而直接与内存交换数据模式。 在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。该模式主要用于交换数据,如硬盘与内存的数据交换。 * SPI口的传输格

您可能关注的文档

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档