Hello,
I have a SM72442 connected to an ATMega32u4 microprocessor through I2C bus and I want to set Vout_max parameter. I've already wrote some code and I'm ableto read all registers through I2C: after boot, I read all default values as descrived in SM72442 datasheet.
Unfortunately, I have problems when I try to set Vout_max, which is supposed to be in reg3, bits 29:20. Below, I describe the behaviour I get.
Right after boot (or after SM72442 reset), I have Vin = 12V, Vout = 22.5V, and, reading reg3 I get the following output:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x08 0x00
Then, I try to set overide_adcprog (reg3 bit 46), sending the following string:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x48 0x00
but if I read again reg3, nothing has changed:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x08 0x00
I send another string, in this case I set overide_adcprog and bb_reset bits:
0x07 0xE4 0xDF 0xF6 0xFF 0xFF 0x48 0x00
and I'm able to read it back; in this case, Vout voltage drops to 0.9V
Then, I reset bb_reset bit, leaving overide_adcprog bit:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x48 0x00
but the overide_adcprog bit appears to be reset:
0x07 0xE0 0xDF 0xF6 0xFF 0xFF 0x08 0x00
and Vout voltage goes back to 22.5V
At this point, I try to set overide_adcprog again and change Vout_max:
0x07 0xE0 0xDF 0x06 0xC0 0xFF 0x48 0x00
and I'm able to read it back. The Vout voltage drops to 21.3V.
Then I set bb_reset and reset it with the following strings:
0x07 0xE4 0xDF 0x06 0xC0 0xFF 0x48 0x00
0x07 0xE0 0xDF 0x06 0xC0 0xFF 0x48 0x00
and in both cases Vout drops to 0.9V.
I really can't understand what's happening, maybe datasheet is not so clear on this issue or I'm missing something.
Could you kindly help me?
Best Regards,
Paolo Gerini