主题中讨论的其他器件:ALP
您好
我已收到客户进行测试所需的电路板。
根据客户的要求、我发出了 I2C 命令、旨在最终控制 MCU 的 PWM 占空比。
但是、由于 PWM 没有改变、因此我使用逻辑分析仪来验证 I2C 信号。
我想发送4字节的 I2C 数据、但在实际测量中、
它被分为两个单独的传输。
[系统模块]
[客户 MCU 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.
您好
我已收到客户进行测试所需的电路板。
根据客户的要求、我发出了 I2C 命令、旨在最终控制 MCU 的 PWM 占空比。
但是、由于 PWM 没有改变、因此我使用逻辑分析仪来验证 I2C 信号。
我想发送4字节的 I2C 数据、但在实际测量中、
它被分为两个单独的传输。
[系统模块]
[客户 MCU I2C 命令]
尊敬的 Ikram
由于我们是客户的 OEM 制造商、因此 MCU 固件不是由我们设计的。
我们需要使用 DS90UH927在生产过程中测试客户的电路板。
客户提供了 I2C 通信规范和控制命令、例如 PWM 100%(0xE2、0x02、0xFF、0x03)。
例如、当使用 board.WriteI2C(0xE2, 0x02, [0xFF, 0x03])
要发送 I2C 命令一次、
通过逻辑分析仪测量的 DS90UH928发送的数据似乎分为两组 3字节数据:0xE2、0x02、0xFF 和0xE2、0x02、 0x03。
我不确定这种差异是否会导致 PWM 响应不足。
尊敬的 Ikram:
我使用另一个 EVB 板编写了一个简单的 I2C 传输程序、并将其连接到 DS90UH928和 MCU 的 I2C 总线。
通过发送(PWM 占空比100%) 0xE2、0x02、0xFF、0x03和(PWM 占空比0%) 0xE2、0x02、0x00、0x00、我可以成功地控制 MCU 的 PWM。
这证实了 MCU 可被正确控制。
WriteI2C(0xE2, 0x02, [0xFF, 0x03])
在模拟 Launchpad 上并测量 DS90UH928的 I2C、I2C 数据分为两组:0xE2、0x02、0xFF 和0xE2、0x03、 0x03。
这似乎就是无法正确控制 MCU 的原因。
如何解决发送4字节 I2C 数据被拆分为两组3字节数据的问题?
尊敬的 Ikram:
在过去的几天里、我一直在尝试其他方法来解决问题。
1.board.WriteI2C(0xE2, 0x02, [0xFF, 0x03])
从 Analog LaunchPAD 发送命令时,我观察到来自 DS90UB927 EVM 上 Atmel MCU 的 I2C 输出已经拆分为两组数据:0xE2, 0x02, 0xFF
和0xE2, 0x03, 0x03
。
当数据为1个字节时、读取 DS90UB927或 DS90UH928不是问题。 因此、使用board.ReadI2C
是可以接受的。 但是,尝试0xE2, 0x30, 0xE3, 0x30, 0x01
0xE2, 0x00, 0xE3, 0x00, 0x07
通过 Analog LaunchPAD 读取客户提供的 MCU READ 命令(和)似乎不成功。
3.我试图使用另一个 EVB 连接到 DS90UB927 EVM 上 Atmel MCU 的 I2C ,以直接发送信号到 DS90UB927,作为 Analog LaunchPAD 的替代产品,但到目前为止,它还没有成功。
此致、
亚当斯
您好、Adams、
这是 关于 Atmel MCU 数据已被拆分的一个很好的观察结果。
我试图使用另一个连接到 DS90UB927 EVM 上 Atmel MCU I2C 的 EVB 来直接发送信号到 DS90UB927
您是说尝试在927 EVM 上使用外部 I2C 控制器吗? 如果可能、您可以尝试使用单独的 MCU 板写入该总线吗? 如果这是您尝试的方法、逻辑分析仪是否仍然存在相同的问题?
此致、
伊克拉姆
尊敬的 Ikram:
是的、如图所示、我已经将 ESP32 EVB 连接到 DS90UB927EVM。
通过 ESP32 I2C 对 MCU 进行读取/写入的功能正常。
但是、在 DS90UB927EVM 上电时仍存在问题;尝试使用 I2C 直接从 ESP32配置 DS90UB927的寄存器将不起作用。
似乎需要使用 ALP 进行初始配置,我不确定 ALP 是否会在 DS90UB927EVM 上对 Atmel AVR 进行任何其他设置。
目前、我建议的解决方案是将927和928的寄存器设置合并到一个 Python 脚本中、并使用 ALP 执行一次。
后续将对 ESP32 EVB 进行测试。
此致、
亚当斯