当前位置: 首页 > article >正文

控制器一些不常用的的功能说明

1、IIC的特殊功能

1.1、IIC的10bit设备地址

10bit地址格式与7bit地址不同,分发送方向和接收方向。

1.1.1、发送方向

第一个字节的前7位是1111 0XX:XX是10bit地址的最高有效位的前两位
第一个字节的第8bit是读写位:决定传输方向
第二个字节为10bit地址的有效低8位

(1)注意:尽管1111 XXX有8种可能的组合,然后只有1111 0XX这四种可以用于10bit寻址,剩下的1111 1XX这四种是为将来I2C扩展用的

(2)例如:配置的slave地址为0x110,拆成10bit二进制值为 01 0001 0000

按照协议规则,前2位放在XX,即第1个字节的前7位为 1111 001
第1个字节第8bit是加上写位,即 1111 0010
第2个字节为 0001 0000

在这里插入图片描述

1.1.2、接收方向

接收方向时,会反向,所以地址由3个字节组成

(1)、例如:配置的slave地址为0x110,拆成10bit二进制值为 01 0001 0000

按照协议规则,前2位放在XX,第1个字节的前7位为 1111 001
第1个字节第8bit加上写位为 1111 0010
第2个字节为 0001 0000
第3个字节第8bit是加上读位 1111 0011

在这里插入图片描述

1.2、IIC的PEC校验功能

通常IIC协议传输,只发送或接收指定长度的数据,没有多余的数据字节,PEC是在协议末尾多发或多收一个字节,用于校验数据正确性。

控制器会根据之前发送完的所有字节,计算得到CRC8校验码(不同控制器使用的规则可能不同),只需要发起PEC命令,就能自动把CRC8校验码发出去。

接收带PEC功能的数据时,接收完有效数据后,再多收一个字节即可。

(1)、例如:slave地址为0x10,发送2个有效数据(0x6、0x7)

发送时协议数据为 :0x20(slave地址+写位0)、0x6、0x7、0x28(PEC校验码)
接收时协议数据为 :0x21(slave地址+读位1)、0x6、0x7、0x43(PEC校验码)

这里计算的CRC8采用以下规则:CRC在线计算

在这里插入图片描述

1.3、IIC的SMBUS ARP功能

SMBUS是包含在IIC协议里的,有主机和设备的概念,但和master、slave概念又有所不同。

配置了SMBUS使能后,该设备可以选择作为主机(有固定的主机地址),还是设备(有固定的设备地址)。

总线上,只能允许一个主机存在,可以有多个设备。

假如IIC配置成SLAVE模式,可以配置任意的SLAVE地址;再配置SMBUS使能,选择作为主机,还是作为设备。其他master可以寻址该IIC的SLAVE地址、或固定的主机地址、或固定的设备地址。

1.4、IIC的广播功能

仅SLAVE模式可以开启广播响应功能,且SLAVE地址为0x00,master向slave发送数据时,slave可以查询到广播响应状态。

2、UART的特殊功能

2.1、奇校验

数据1个数为奇时,校验为0,反之为1

例如0x00数据1的个数为0,校验位为1
例如0x01数据1的个数为1,校验位为0

在这里插入图片描述

2.2、偶校验

数据0个数为偶时,校验为0,反之为1

例如0x00数据1的个数为0,校验位为0
例如0x01数据1的个数为1,校验位为1

在这里插入图片描述

2.3、按WORD发送

配置数据宽度为8bit,按word模式发送时,数据都是按32位发送的,不足32位时,高位补0。

例如数据依次为0x5A,0x5A5A,0x5A5A5A,0x5A5A5A5A,发出的数据如下:

在这里插入图片描述

3、TIMER的捕获功能

使用timer的周期,配置引脚,采集外部输入信号,得到外部输入信号的脉冲宽度值。

有上升沿采样、下降沿采样、电平采样3种方式

例如timer的频率是1K,工作时钟是10M

周期值 = 时钟 / 频率 = 10M / 1000 = 10000

即一个高电平和一个低电平组成的周期值是 10000,高电平和低电平周期值分别是5000

波形周期 = 1 / 频率 = 0.001秒

3.1、上升沿采样

由上述描述得知,两个上升沿之间的周期值为10000

软件配置上升沿采样,捕获产生中断的阈值需要小于等于10000,中断产生后,可得到当前捕获的实际周期值是多少,再根据公式反推得到输入波形的频率。

3.1、下降沿采样

由上述描述得知,两个下降沿之间的周期值为10000

同上升沿采样,可以得到输入波形的频率

3.2、电平采样

由上述描述得知,单个电平(高电平或低电平)周期值为5000

软件配置上升沿采样,捕获产生中断的阈值需要小于等于5000,中断产生后,可得到当前捕获的实际周期值是多少,再根据公式反推得到输入波形的频率。

还能得到当前捕获的是高电平还是低电平。

例如下列测试结果:edge 0 表示电平采样,edge 1 表示上升沿采样,edge 2 表示上升沿采样
在这里插入图片描述


http://www.kler.cn/a/373851.html

相关文章:

  • Python中的`drop`和`index[1:]`用法详解
  • MySQL数据类型——针对实习面试
  • Python 变量在函数中的作用域
  • unity中预制体的移动-旋转-放缩
  • git 提交仓库
  • 练习LabVIEW第二十八题
  • 算法的基本概念@性能分析初步@复杂度分析初步
  • 《高频电子线路》 —— 高频谐振功放(2)
  • 【SQL实战】——数据查询
  • Anaconda和Pycharm超详细安装教程(2024版本+Win11)
  • LLM大模型部署实战指南:部署简化流程
  • 基于图像形态学处理和凸包分析法的指尖检测matlab仿真
  • 故障诊断 | CNN-GRU卷积神经网络-门控循环单元组合模型的故障诊断(Matlab)
  • Router和route区别
  • 装饰器模式详解:动态扩展对象功能的优雅解决方案
  • Android启动流程_Init阶段
  • c++qt
  • SLAM:未来智能科技的核心——探索多传感器融合的无限可能
  • ​IOT NTN 与 NR NTN​
  • 我在命令行下剪辑视频
  • Linux CentOS7下创建SFTP服务器
  • 我在命令行下学日语
  • Chrome和Firefox如何保护用户的浏览数据
  • c++编解码封装
  • 【YOLO 系列】基于YOLO的行人口罩检测系统【python源码+Pyqt5界面+数据集+训练代码】
  • Python中的`update`方法详解及示例