ARM控制器外设(史上最全)一


一品
一品 2022-09-21 15:15:58 52310
分类专栏: 资讯

ARM微控制器外设:SPI通讯简介

SPI:

1、SPI——串行外围接口——4线同步串行通讯接口

2、方便连接各种外设/芯片

3、信号定义:

        1、MOSI:主出从入,主设备发送到从设备的信号

2、MISO:主入从出,从设备发送到主设备的信号

3、SCK:由主设备控制产生的SPII工作时钟,每个SCK周期完成一个bit的传输

4、SS:从设备选择端,当从设备收到该端为低电平时,设备有效;对于主设备,该端平时为高电平,可以用于在有效传输周期内给出低电平选通

SPI的特点:

1、串行的

2、同步的

3、全双工的

4、主从模式的

5、点对点或总线的

6、灵活的时钟极性/相位格式

7、可变帧大小从4位到16位

SPI信号——SCK极性与相位:

1、通讯由片选信号的下降沿发起,然后时钟信号的奇数沿总是用来通知主机和从机去采集数据信号数据的值,时钟信号的偶数沿总是用来驱动我们的主机和从机去改变数据线上的值切换到下一个bit

2、通讯由时钟信号第一个沿发起,SS为低电平,奇数沿改变数据线上的值,偶数沿采集数据信号

主模式——Master mode:

1、控制整个传输过程:

        1、通过SS信号选择对应的通信从节点

        2、决定SCK波特率,相位,极性

        3、产生SCK时钟信号

        4、驱动MOSI信号

        5、采样MISO信号

2、CPU通过向SPIx_D写入数据来启动一次传输过程

从模式——Slave mode:响应主节点的信号:

1、当SS信号被选通时才激活

2、根据预先约定的相位/极性来检测SCK信号

3、驱动MISO信号

4、采样MOSI信号

ARM微控制器外设:SPI寄存器与编程

步骤:

1、把SPI模块对应的时钟打开

2、把引脚指定给SPI模块使用

3、设置SPIx寄存器以接收/传输

SPIx_D:

1、发送和接收都是双缓冲结构

2、移位缓冲寄存器用于数据收发,CPU不能读写

3、数据寄存器能被CPU访问

4、发送时,数据自动从数据寄存器转移到移位寄存器

5、接收时,数据自动从移位寄存器转移到数据寄存器

6、发送和接收的数据寄存器使用相同的寄存器地址

7、读写该寄存器地址具有不同的含义

SPIx_C1

SPIx_C2

SPIx_BR

SPIx_S

ARM微控制器外设:SPI编程实例——OLED显示屏驱动

ARM微控制器外设:I2C通讯简介

I2C:

1、I2C——Inter-IC Bus:一种双向2线制同步串行通讯接口

2、顾名思义,简单、方便地连接各种外设/芯片:一种双向2线制串行总线

I2C的基本特征:

1、串行

2、同步

3、单端

4、双向(但非双工)

5、主从

6、总线

I2C电气特征:

1、两根信号线(还有共地):

        1、SDA串行数据线

        2、SCL串行时钟线

2、SDA和SCL引脚是特殊的,可线与:

        1、漏极开路

        2、漏电极开路

3、所有的SDA引脚,所有的SCL引脚,是逻辑“与”的关系

4、SDA和SCL都接了上拉电阻

5、总线空闲时,都是高电平(不耗电流)

6、兼容性好,可以是5V,也可以是3.3V

I2C的优点:

1、只需要2根信号线(节约面积、引脚、成本)

2、协议简单

3、协议容易实现(硬件模块、开漏引脚、GPIO)

4、支持的器件多,功能丰富

5、总线可以同时挂载多个器件

6、总线电气兼容性好

7、速率较高

8、距离较远

I2C的电平逻辑:

1、I2C是电平有效的,与SPI不一样(边沿有效)

2、信号定义:数据线SDA的电平,在时钟线SCL为低电平时,发生变化;数据线SDA的电平,在时钟线SCL为高电平时,保持稳定不变;SDA仅在特殊情况下(I2C总线开始或结束时),在SCL为高时变化

3、起始位:当SCL处于高电平时,SDA从高电平向低电平跳变,产生“起始”位。总线在起始条件产生后便处于忙的状态。可将“起始”位简记为S

4、停止位:当SCL处于高电平时,SDA从低电平向高电平跳变,产生“停止”位。总线在停止条件产生后处于空闲状态,可将“停止”位简记为P

ARM微控制器外设:I2C的通讯协议

I2C的通讯数据帧:

1、SA:从机地址:

        1、I2C总线可以连接多个从机设备,但是无需额外的片选信号引脚

        2、接在一起的多个的多个器件设备,使用地址进行区分

        3、主机不需要地址,每个从机器件都必须有个地址

        4、从机地址不能重复,地址为7bits

2、D:数据:8bits一个字节数据,MSB在先,LSB在后

3、A/A:应答(ACK)和无应答(NACK):

        1、每传输一个字节,都需要数据的接收方给出一个应答

        2、若应答位由从机给出,则从机短暂控制接管SDA,主机释放SDA线(但时钟SCL仍然由主机控制)

        3、0表示应答ACK,1表示无应答NACK

        4、遇到非应答NACK,应停止数据的发送

I2C高阶:重复起始和子地址:

1、Sr:重复起始:

        1、I2C通讯中,有时需要切换数据收发的方向

        2、例如I2C设备是个EEPROM存储器时,要读EEPROM,需要先写入地址(主→从),再读取数据(从→主)

        3、此时无需给出停止位,然后再给开始位

        4、而是直接再产生一次开始位,就可以了,称为“重复起始”位,记为Sr

2、子地址:

        1、有一些I2C器件,除了器件自身的从机地址SA外,内部还有若干个单元可被访问,相应具有子地址

        2、典型的例如上述的EEPROM存储器,本课实验用到的加速传感器

        3、子地址可以是1字节~N字节,通讯时当做I2C的数据发送

ARM微控制器外设;I2C寄存器与编程

步骤:

1、配置好时钟打开

2、把引脚配置给I2C模块使用

3、设置I2C寄存器以接收/传输

加速传感器所用的4个寄存器:

1、I2Cx_F

2、I2Cx_C1

3、I2Cx_S

4、I2Cx_D

ARM微控制器外设:I2C编程实例——加速度传感器

I2C接口定义

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=9275
赞同 0
评论 0 条
一品L0
粉丝 0 发表 4 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2959
【软件正版化】软件正版化工作要点  2878
统信UOS试玩黑神话:悟空  2843
信刻光盘安全隔离与信息交换系统  2737
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1270
grub引导程序无法找到指定设备和分区  1235
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
点击报名 | 京东2025校招进校行程预告  164
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!