Part Number:CC1310
有一个iic设备,支持400KHz通讯速度,对时序有一个要求,就是传输的起始位 SDA要比SCL拉低要早5us,实测CC1310只有1.5us, 有没有办法让CC1310的iic在传输数据时,先把sda拉低3.5us,再正常发送起始位?
Alex Zhang:
软件模拟iic,sda电平给低,等3.5us的延时之后,在正常开始发送
,
genyi liu:
没有更好的方法吗?比如先是普通io,要用时才配置时iic?
,
Alex Zhang:
得设计触发时间,然后以触发为标准,才可以做这个时间差,如果没有参考触发,怎么来计算时间差呢?
,
genyi liu:
不太理解你的意思 ,能不能管脚默认是输出模式,拉低SDA 3.5us后,将SDA的管脚配置为IIC。再开始发送数据,不就实现我上面说的要求?不过难点是怎么将管脚从IIC恢复成普通输出模式,或普通输出模式配置成IIC模式?
,
Alex Zhang:
Alex Zhang said:软件模拟iic,sda电平给低,等3.5us的延时之后,在正常开始发送
这不就是我说的方法吗?
genyi liu said:不太理解你的意思 ,能不能管脚默认是输出模式,拉低SDA 3.5us后,将SDA的管脚配置为IIC。再开始发送数据,不就实现我上面说的要求
,
Alex Zhang:
您的问题,总结下来就是模拟iic驱动问题,对吗
,
genyi liu:
是想用硬件iic通讯,发现在400KHz的模式下,从设备有时序要求,要保证起始位SDA先下拉5us,而贵公司芯片只提前下拉了1.5us,所以提出这个问题
,
Alex Zhang:
那您之前提出的软件iic是为了解决这个问题对吗
,
genyi liu:
软件iic 是因为我有两个iic设备,地址相同,要一个是硬件,一个软件
,
Alex Zhang:
怪不得会这样子,已经明白您的问题,我这边看到您提出的一些问题,确实有点难搞,相同的地址,违背了iic通信规则,我这边会对您的问题汇总,然后帮助您这边想办法解决,这需要一些时间,谢谢
,
Alex Zhang:
您能分享该组件数据表吗?看起来很奇怪。我们没有办法改变I2C外设的启动时序,它是根据总线频率自动设置的。
,
genyi liu:
从设备是体温测量芯片。支持400KHz,芯片型号是M117
,
Alex Zhang:
可以上传datasheet文件吗
,
genyi liu:
可以,技术细节是问过相关芯片工程师,要唤醒只要保证sda早点拉低就可以保证工作在400KHz的频率上M117 MTS01 I2C协议FAQ-敏源202107.pdfM117.pdf
,
Alex Zhang:
好的,已经收到您的数据表,我会继续跟进这个问题
,
Alex Zhang:
您是否发送了该文档中提到的虚拟序列?
另外,你们是否用实际芯片进行了测试?
,
genyi liu:
有的,并且还找芯片的技术支持
,
genyi liu:
就是对时序有一个要求,就是传输的起始位 SDA要比SCL拉低要早5us。就可以正常唤醒
,
Alex Zhang:
好的,感谢您的回复,我会继续跟进这个问题
,
Alex Zhang:
您好,您的需求只能在软件iic实现,ti不提供软件iic例程。谢谢理解