使用的DSP为TMS320F280025,引脚GPIO26 GPIO27两个引脚都接了一个10K的上拉电阻,除IIC引脚外,没有对程序做任何改动。
测试pmbus_over_i2c_target_example例程,通信速率100K时,主机发送读数据请求之后,从机有给回应信号,之后SCL和SDA都被拉低,需要复位从机之后才能恢复;
通信速率400K可以正常通信。
后使用PMBUS over I2C Communications Stack源程序自建工程,测试结果一样,在调试过程中发现主机发送读请求时,在
if(TARGET_TRANSMITTER)中打断点,程序不会停止,或者nBytes = 0;
用两块板,一块作为主机运行pmbus_over_i2c_controller_example,一块作为从机运行pmbus_over_i2c_target_example在通信速率100KHz时也会出现。
请问是否有伙伴遇到过同样的情况?如何解决的?或者有无一些好的建议,求解答,谢谢!
您好,
由于通信在 400k 时按预期工作,因此 10k 上拉电阻值似乎太弱,无法在 400 kHz 下进行可靠的快速模式作。
建议使用 2.2k 欧姆范围内的更强的上拉电阻,以最大限度地减少 SDA 和 SCL 线路上的上升时间。
请确认时钟低/高周期、数据建立/保持时间等与数据表中的所需值匹配。