Other Parts Discussed in Thread: TPS92520-Q1, TPS92520EVM-133
器件型号: TPS92520EVM-133
主题中讨论的其他器件: TPS92520-Q1、
您好专家、
我正在执行一个项目、在未连接 ECU 的情况下为车外的前照灯供电并进行控制、从而简化功能测试和开发。 为了实现这一点、我希望对 LED 通道使用 TPS92520-Q1、以使整体可控性更简单、因为前照灯的 ECU 中也使用了这些降压转换器。
现在、我正在使用 TPS92520EVM-133 来正确测试我的代码和功能、然后再访问整个 ECU。 通过 SPI、我正在尝试通过 python 和 SpiDev 库在我的 Raspberry Pi 5 和评估板上的 TPS92520-Q1 之间建立连接。 我将一个 LED 条连接到两个通道中的每一个、并且在连接到电源时它们会亮起。 当 LHI 接地时、LED 条不会亮起、如数据表中所述。 如果我回答正确、那么我应该下拉 LHI 以与 Raspberry 建立连接并控制转换器、因为它没有以这种方式进入独立模式?
由于我的电源同时为转换器和 Raspberry 供电、因此当转换器的看门狗计时器在 1.67 秒后超时、Raspberry 仍会启动。 如果我再次正确阅读了数据表、我必须将转换器复位为负载模式、以便在准备就绪时实现连接?
我将在以下内容中展示从 RESET 到通道激活的所有 SPI 命令:
- 将转换器复位至负载模式:spi.xfer2 ([0xDD、0xD4])
- 等待 0.001 秒
- 读取 STATUS3 寄存器中的 PC 位:spi.xfer2 ([0x05、0x00])
此后、SPI 总线上应该有活动、以免看门狗再次超时。 我正在使用将 IADJ 和 PWM 调整为所需的值来实现此目的。
- 计算 IADJ:IADJ =(I*1024*14*0.1)/2.45
- 地址(具有写入属性):CH1_IADJH = 1001001、CH1_IADJL = 1001000、CH2_IADJH = 1001011、CH2_IADJL = 1001010
- 在 MSB 和 LSB 中分离 IADJ 并将其连接到相关地址
- 相应地添加奇偶校验位
- 计算 PWM:PWM =(PWM(百分比)*1023)/100
- 地址(使用写入属性):CH1_PWMH = 1001110、CH1_PWML = 1001101、CH2_PWMH = 1001000、CH2_PWML = 1001111
- 在 MSB 和 LSB 中分离 PWM 并将其连接到相关地址
- 相应地添加奇偶校验位
- 安全更改:spi.xfer2 ([0x81、0x0A])
现在、在切换通道之前、我正在等待控制接口上的进一步输入。 在我的理解下、看门狗计时器已被禁用、所以等待时应该没有问题?
要激活通道、将执行以下事务:
- CH1 开启、通道已开启:spi.xfer2 ([0x80、0x05])
- CH1 开启、通道 2 仍关闭:spi.xfer2 ([0x80、0x01])
- CH2 开启、CH1 已开启:spi.xfer2 ([0x80、0x05])
- CH2 开启、CH1 仍然关闭:spi.xfer2 ([0x80、0x04)]
要停用信道、将执行以下事务:
- CH1 关闭、CH2 仍开启:spi.xfer2 ([0x80、0x04])
- CH1 关闭、CH2 已关闭:spi.xfer2 ([0x81、0x00])
- CH2 关闭、CH1 仍然开启:spi.xfer2 ([0x80、0x01])
- CH2 关闭、CH1 已关闭:spi.xfer2 ([0x81、0x00])
据我了解、这一切都遵循数据表中的法规、您能告诉我我朝哪个方向的方向有误吗? 所有 SPI 消息都是正确的、并且我已在示波器上检查所有这些消息时提交。 我真的非常感谢您的帮助!