我们正在开发一款使用 RF430上的 I2C 接口的产品。 该产品适用于较新的 TI 芯片批次。 由于 RF430FRL152H 现已缺货、我们决定使用~5年的旧批次。 我们看到固件是读取此芯片上的 I2C 接口的错误工具。
我们已读取芯片上的寄存器(7.52固件版本寄存器)、指示固件版本、这与之类似。 TI 能否提供 一个指示、说明过去几年中固件或硬件是否发生了变化、从而使 I2C 总线更可靠? 我们想了解这批芯片为何不可靠。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们正在开发一款使用 RF430上的 I2C 接口的产品。 该产品适用于较新的 TI 芯片批次。 由于 RF430FRL152H 现已缺货、我们决定使用~5年的旧批次。 我们看到固件是读取此芯片上的 I2C 接口的错误工具。
我们已读取芯片上的寄存器(7.52固件版本寄存器)、指示固件版本、这与之类似。 TI 能否提供 一个指示、说明过去几年中固件或硬件是否发生了变化、从而使 I2C 总线更可靠? 我们想了解这批芯片为何不可靠。
谢谢 Adreas、
我将要求我的制造工程师为我提供正确的代码。
同时、我认为问题出在 UCB0CTLW0寄存器中。 在无线上传代码期间不会重置此寄存器、该寄存器通过某种方式设置为10位 i2c 模式。 在初始化期间、我们必须清除该寄存器。
通过略微更改 TI 示例代码、形成'slac691f.zip':
UCB0CTLW0 |= UCMODE_3 + UCMST + UCSYNC + UCTR;
至:
UCB0CTLW0 = UCMODE_3 + UCMST + UCSYNC + UCTR;
现在、旧一批芯片也在工作。 不过、有一点奇怪、因为寄存器应该在初始化后复位、不知为何不执行该操作。 我们放置了所有去耦电容器、因此不会发生毛刺脉冲。
谢谢、
此致、
约斯特
尊敬的 Andreas:
我们已经看到、通过从读取器中移除标签来进行无线编程与下电上电周期的结合不足以复位 I2C 寄存器"UCB0CTL"。 为什么我们仍然不知道这种情况,这不符合我们的利益。
示例代码 'slac691f.zip'的微小变化 极大地改变了 I2C 接口的运行。 从一对一的 I2C 接口工作到 一个完全正常工作的 I2C 通信。
谢谢!
此致、
约斯特