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.
您好!
我正在开发"TLE493D-A1B6"库、但无法 运行 I2C 我用示波器进行测量、但 I2C 和 SDA 线路从来都不起作用、始终保持高电平
我在下面附上了我写的代码。
static void i2cInitHal(void) { // I2C0 modülünü başlat i2cInit(); // I2C0 modülünü master modunda ayarla i2cSetMode(i2cREG1, I2C_MASTER); // I2C0 modülünün hızını 100kHz olarak ayarla i2cSetOwnAdd(i2cREG1, I2C_SLAVE_ADDRESS); i2cSetSlaveAdd(i2cREG1, I2C_SLAVE_ADDRESS); i2cSetBaudrate(i2cREG1, 100); } static void i2cSendData(uint8 *data, uint32 length) { // Veriyi I2C0 üzerinden gönder i2cSetDirection(i2cREG1, I2C_TRANSMITTER); i2cSetCount(i2cREG1, length); i2cSetMode(i2cREG1, I2C_MASTER); i2cSetStop(i2cREG1); i2cSetStart(i2cREG1); i2cSend(i2cREG1, length, data); while (i2cIsBusBusy(i2cREG1) == true) ; while (i2cIsStopDetected(i2cREG1) == 0) ; i2cClearSCD(i2cREG1); } static void i2cReceiveData(uint8 *data, uint32 length) { // Veriyi I2C0 üzerinden al i2cSetDirection(i2cREG1, I2C_RECEIVER); i2cSetCount(i2cREG1, length); i2cSetMode(i2cREG1, I2C_MASTER); i2cSetStart(i2cREG1); i2cReceive(i2cREG1, length, data); while (!i2cIsRxReady(i2cREG1)) ; i2cSetStop(i2cREG1); while (i2cIsStopDetected(i2cREG1) == 0) ; i2cClearSCD(i2cREG1); }
代码被卡在函数"void i2cSend (i2c_>STR &(Uint32) I2C_TX_INT)== 0u"内的"while (i2cBASE->STR &(Uint32)"(i2c_TX_INT)"中
和 halcogen 配置
您能帮助我、我如何在您的系统中
尊敬的 Fatih:
在 i2c 线路上使用的上拉电阻器是什么?
2、我在此附加一个工作示例 i2c 主器件项目、能否使用此示例验证您的 HALCoGen 配置?
e2e.ti.com/.../2146.I2C_5F00_Master_5F00_RM46L852.zip
3.还有,我发现一个旧线程,这和你的问题完全一样,在这里,这是由于从端的延迟要求发生的。
--
谢谢。此致、
Jagadish。
大家好、感谢您的回答。
1.有 1K 上拉电阻器、因为电路板和传感器之间有电缆
2.我尝试了示例项目,并检查了配置,但它不起作用。
3.我 查看了添加延迟但不起作用的线程
我在没有传感器的情况下测试了它,并使用了一个振镜,但 我又没有看到任何信号。
尊敬的 Fatih:
1. 有 1K 上拉电阻器、因为电路板和传感器之间有电缆
强上拉(小电阻器)会使 I2C 引脚无法驱动为低电平。 您是否有可能使用2.2K 上拉电阻器进行测试?
--
谢谢。此致、
Jagadish。
有0402封装电阻器。我没有任何402封装电阻器、但我尝试了使用内部上拉电阻器来不使用传感器、但仍然无法正常工作
İf 您需要我可以移除外部电阻器、并且我可以使用内部电阻器进行测试
您好、
İf 如果您希望我可以移除外部电阻器,我可以使用内部电阻器进行测试
内部上拉电阻太小、无法用于 I2C。 它们的强度足以防止引脚悬空。 必须为 I2C 信号提供外部上拉。
--
谢谢。此致、
Jagadish。
您好,Jagadish
我将电阻器替换为2.7K、现在 I2C 可以正常工作。 感谢您的帮助