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.
大家好,
客户在AM5716 IC2主地址发送从属地址期间观察到奇怪的行为。 I2C5主控制器无法 使总线繁忙以进行传输,并按如下所示的ACK位定时发送数据。 发生了1次/ 2到3小时。
I2C5与外部RTC通信。 I2C5模块停留在Line15,该总线正忙于 连接的代码。
您对此问题有什么想法吗?
/* Set i2c slave address */ I2CMasterSlaveAddrSet( baseAddress, slaveAddress ); I2CFIFOClear(baseAddress, I2C_TX_MODE); I2CFIFOClear(baseAddress, I2C_RX_MODE); /*Clear all interrupt status*/ I2CMasterIntClearEx(baseAddress, I2C_INT_ALL); /* Set data count */ I2CSetDataCount( baseAddress, size+1 ); /* Configure i2c as master-transmitter and to generate stop condition */ I2CMasterControl(baseAddress, I2C_CFG_MST_TX); /* generate start */ I2CMasterStart(baseAddress); /* wait for bus busy */ while(I2CMasterBusBusy(hwAttrs->baseAddr)==0) { } // data TX for (i = 0; i < (size+1); i++){ /*Wait for transmit interrupt to occur*/ while (I2CMasterIntRawStatusEx(baseAddress, I2C_INT_TRANSMIT_READY) != I2C_INT_TRANSMIT_READY) { } /* Send the data */ I2CMasterDataPut(baseAddress, txBuf[i] ); /*Disable transmit ready and stop condition interrupt*/ I2CMasterIntClearEx(baseAddress, I2C_INT_TRANSMIT_READY); } /* generate stop when requested */ I2CMasterStop(baseAddress); /*Clear data buffer length*/ I2CSetDataCount(baseAddress, 0);
谢谢,此致,
Kuerbis
我是提问者的一员。
第
回答问题1)至3)。
1)您能否分享您用于I2C的时钟频率?
答案:100k Hz
2) AGV应用程序调用API以发送到外部IC。
答案:AGV应用程序调用API以发送到外部IC。
在20毫秒周期内发送
高优先级BIOS任务正在运行,不执行I2C访问
3)您正在使用TI提供的驱动程序I2C_v1.c。
答案:您正在使用TI提供的驱动程序I2C_v1.c。
陷入困境。
请回答。
嘿,
对不起,我没有注意到延迟,20毫秒应该足够好。
您是否可以尝试将时钟频率降低到10kHz并查看行为是否发生变化?
此致,
第
您好,Parth:
我想请你告诉我 ,调查10kHz的建议是什么。
您能告诉我您关心什么以及您想在10kHz时看到什么吗?
谢谢,此致,
Kuerbis
Kuerbis,您好!
某些i2c器件在较高频率下无法稳定工作。 只是想排除这不是问题。
此致,
第
我是提问者的一员。
第
回答有关我们正在使用的设备的问题。
您能否提供有关您正在使用的i2c设备的一些详细信息:
1)您使用的是什么设备?
答案:
型号:RX8130CE
制造商:Epson
日语链接: support.epson.biz/.../doc_check.php
英文链接: support.epson.biz/.../doc_check.php
2)设备支持的最大频率是多少?
答案:
在标准模式下,它支持高达100kHz的频率。
在快速模式下,它支持高达400kHz的频率。
我们正在使用100kHz频率。
3)与设备通信是否需要任何特定的I2C序列?
答案:
我不认为这是一个特殊的I2C序列。
详细的电报顺序如下所示。
日语链接:tTP://support.epson.biz/td/api/doc_check.php? dl = APP_RX8130CE & lang = ja
英文链接: support.epson.biz/.../doc_check.php
我们将需要有关系统的更多详细信息
1)您正在运行的应用程序,它是独立的应用程序吗? 如果没有,我们是否有办法在独立环境中测试应用程序? 这将帮助我们隔离是否有其他任何干扰?
2)是否有任何其它设备连接到同一i2c总线上? 如果是,请提供这些方面的详细资料。
3)此外,请提供整个系统的详细信息。 有关可能影响此应用程序的任何其他应用程序的任何详细信息都将很有帮助。
此致,
第
您好,
这5716这是404.8281万是 一404.8281万一个独立的应用程序。 串行电缆仅作为调试端口连接。 任务正在运行的任务多于遇到此问题的任务,但不能进行外部连接。 只有一个任务使用I2C。[/QUOT]您能否提供正在运行的其他任务的详细信息? 这些任务正在访问哪些接口? 以及系统中配置的中断。
此外,我还看到该设备在快速模式下支持高达400kHz的频率。 您能否以最大频率尝试应用程序并查看问题的行为?
此致,
第