您好!
我有一个 SM72442通过 I2C 总线连接到 ATMega32u4微处理器、我想设置 Vout_max 参数。 我已经编写了一些代码、并且能够通过 I2C 读取所有寄存器:启动后、我读取 SM72442数据表中描述的所有默认值。
遗憾的是、当我尝试设置 Vout_max 时、我会遇到问题、该值应位于 reg3位29:20中。 下面、我描述我得到的行为。
在启动后(或 SM72442复位后)、我的 Vin = 12V、Vout = 22.5V、并且读取 reg3、我获得以下输出:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x08 0x00
然后、我尝试设置 overid_adcprog (reg3位46)、发送以下字符串:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0xFF 0x48 0x00
但是、如果我再次读取 reg3、则没有任何变化:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x08 0x00
我发送另一个字符串、在本例中、我设置 overid_adcprog 和 bb_reset 位:
0x07 0xE4 0xDF 0xF6 0xFF 0xFF 0x48 0x00
我能够读回它;在本例中、Vout 电压降至0.9V
然后、我复位 bb_reset 位、留下 overide_adcprog 位:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0xFF 0x48 0x00
但是 overid_adcprog 位似乎被复位:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x08 0x00
Vout 电压会恢复到22.5V
此时、我尝试再次设置 overide_adcprog 并更改 Vout_max:
0x07 0xE0 0xDF 0x06 0xC0 0xFF 0x48 0x00
我能够读回它。 Vout 电压降至21.3V。
然后、我设置 bb_reset 并使用以下字符串将其复位:
0x07 0xE4 0xDF 0x06 0xC0 0xFF 0x48 0x00
0x07 0xE0 0xDF 0x06 0xC0 0xFF 0x48 0x00
在这两种情况下、Vout 都降至0.9V。
我真的无法理解所发生的情况、可能数据表对此问题不是很清楚、或者我缺少了一些东西。
请帮帮我。
此致、
Paolo Gerini