- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机 arm 常用的接口总结
常用的接口有 spi,I2c,uart 等,他们都有自己的协议规定,下面谈谈它们之间的联系与区别:
I2C 总线
涉及到 I2C 的编程主要涉及到两种情况:有专用控制器的 arm 芯片,无控制器的单片机芯片。有控制器的 arm 芯片,主要就是依据数据手册,通过设置相应的寄存器(控制寄存器,状态寄存器等)来实现相应的操作;然而对于没有控制器的单片机芯片,只有通过相应的引脚根据 I2c 协议来予以模拟实现。
首先来谈谈 I2c 协议。涉及到的信号主要分为三类:开始信号,停止信号, 发送数据。既然是协议,就是双方事先约定好的规定,通信双方按照这个标准来进行数据的传输就可以了。保证数据传输的一致性的话,还有在某些时候发送一些附带的检查信息,例如 ack 信号,非 ack 信号;
开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定
的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
基于单片机的模拟 I2C 的信号,应该严格按照以上的时序进行研究实现。
接下来看看带有 I2C 的控制器的 arms3c2410,s3c2440 芯片的 i2c 的控制。主要包括四个相关的寄存器的设置:通过它们之间的相互配合,实现i2c 的数据传输。
IICON:控制寄存器。主要是用于控制是否发出ACK信号,设置发送器的时钟,开启I2c中断,并标示中断是否发生。
IISTAT: 状态寄存器。选择 I2C 的工作模式,发出S 信号,P 信号,使能接受/发送功能,并标示各种状态,比如总线仲裁是否成功,作为从机时是否被寻址,是否接收到 0 地址,是否接收到 ACK 信号。
IICADD:多主机 I2C 地址寄存器;
IICDS:发送、接受数据移位寄存器;
接下来按照数据手册,根据其主机发送器的工作流程来编写相应的代码。三个函数就可以实现简单的I2C 协议: 读取,写入,中断;
编程思路如下:
写函数,读函数,仅仅是启动I2C 传输,然后等待,直到数据在中断服务程序中传输完毕后再返回。
SPI 总线协议的认识(SPI 中的极性 CPOL 和相位 CPHA)
【背景】
最近在看关于Silicon Labs 的 C8051F347 的某个驱动中,关于 SPI 部分初始化的代码, 看到其对于 SPI 的设置为CPOL=1,CPHA=0,对于 CPOL 及 CPHA 的含义不了解,想要搞懂,
这两个参数到底是什么意思,以及为何要这么设置。所以才去找了 SPI 的极性和相位的相关
这两个参数到底是什么意思,以及为何要这么设置。所以才去找了 SPI 的极性和相位的相关
资料,整理如下。
【SPI 基础知识简介】
设备与设备之间通过某种硬件接口通讯,目前存在很多种接口,SPI 接口是其中的一种。
SPI 中分Master 主设备和Slave 从设备,数据发送都是由Master 控制。
一个 master 可以接一个或多个slave。
常见用法是一个Master 接一个slave,只需要 4 根线:
SCLK:Serial Clock,(串行)时钟
MISO:Master In Slave Out,主设备输入,从设备输出
MOSI:Master Out Slave In,主设备输出,从设备输入
SS: Slave Select,选中从设备,片选
SPI 由于接口相对简单(只需要 4 根线),用途算是比较广泛,主要应用在 EEPROM, FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI 的Master 通过SPI 与一个从设备,即上述的那些Flash,ADC 等,进行通讯。
而主从设备之间通过SPI 进行通讯,首先要保证两者之间时钟 SCLK 要一致,互相要商量好了,要匹配,否则,就没法正常通讯了,即保证时序上的一致才可正常讯。而这里的SPI 中的时钟和相位,指的就是SCLk 时钟的特性,即保证主从设备两者的时钟的特性一致了,以保证两者可以正常实现SPI 通讯。
【SPI 相关的缩写或说法】
先简单说一下,关于 SPI 中一些常见的说法:
SPI 的极性Polarity 和相位Phase,最常见的写法是CPOL 和CPHA,不过也有一些其他写法,简单总结如下:
CKPOL (Clock Polarity) = CPOL = POL = Polarity = (时钟)极性;
CKPHA
原创力文档


文档评论(0)