I3C与I2C的区别
1.支持热插拔,动态获取slave地址2.更高的数据传输速率
3.连接方式
===============================
IIC DMA 与IIC 传输的速率对比
1. 加入DMA
2.未加DMA
结论:看起来小批量的数据传输 无论是否加入DMA 对结果没有很大影响
模拟IIC 再写入多页的的设备时需要注意
void IIC_Write_Multi_Reg(uint8_t SlaveAddress,uint8_t RegAddress,uint8_t *Data,int num)
{
IIC_Start();
IIC_Send_Byte(SlaveAddress); //发送器件地址,写数据
IIC_Wait_Ack();
IIC_Send_Byte(RegAddress); //发送低地址
IIC_Wait_Ack();
IIC_Send_Byte(RegAddress%256); //发送低地址
IIC_Wait_Ack();
for(int count =0;count<num;count++)
{
IIC_Send_Byte(*Data);
IIC_Wait_Ack();
printf("%02x ,",*Data);
if((count+1)%12==0 ) printf("\r\n");
Data++;
//满页操作
if((count+1)%8==0) /* Note :每页写完之后要等该页数据存储完毕之后再进行下页的存储*/
{
IIC_Stop();
HAL_Delay(10);
IIC_Start();
IIC_Send_Byte(RegAddress); //发送地址
IIC_Wait_Ack();
IIC_Send_Byte(RegAddress%256); //发送低地址
IIC_Wait_Ack();
}
}
IIC_Stop();
HAL_Delay(10);
}
1.注意发送的高地址和低地址,需要加入发送地址的两位来确认
2.注意再一页数据写完之后 要等数据完成存储,即结束一个IIC ,使之存储起来,再重新发送数据,此时的地址不用发生偏移
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_43519774/article/details/144829135
目前还没有用过I3C,不知道性能如何。 I3C性能一般优于IIC .注意发送的高地址和低地址,需要加入发送地址的两位来确认 这种区别确实非常重要进行区分 总线管理:I3C 支持动态设备地址分配、热插拔,主从可切换;I2C 地址固定,主从角色固定。
信号机制:I3C 用开漏 / 推挽混合输出,引入 BSY/INT 双线仲裁;I2C 为开漏输出,靠 SDA 仲裁。
功耗:I3C 支持低功耗模式(如突发传输后进入休眠),功耗优化更优。
协议特性:I3C 兼容 I2C,新增快速访问、广播中断等功能,适合物联网和传感器场景。 I3C 比 I2C 速度更快(最高 33Mbps),支持热插拔,多主设备,动态地址分配,兼容 I2C 设备,更适用于现代高速传感器网络。
页:
[1]