The ADT7470 Table 50. show "When GPIO is configured as an output, these bits are read/write. Setting these bits asserts the GPIO output. (Asserted can be high or low depending on the setting of GPIO4 polarity.)". We run below setting:
But GPIO 3 ( PWM3 pin 8 ) level don't have any change (always high level) and Register 0x81 always read equal to "0x0C" at each step. Please help to check this issue. Thanks!
If you are using the eval board, you will need to connect first the 12V power supply. In any case, I replicated what you are doing and it seems that this register cannot be read/written. We might need some time to review the software code or further evaluate the part itself. Thanks for pointing it out.
However, we could workaround it at the moment: you can control the GPIO outputs by modifying its polarity. I monitored the 4 GPIO (with the 12V supply connected) and did the following sequence:
-Enable the desired GPIOs on register 0x7F
-Set the desired GPIOs as outputs on register 0x80
-Toggle the GPIO desired by changing its polarity on register 0x80(as I was monitoring the outputs I could easily see the outputs level changing, for GPIO1 and GPIO2 you can also observe whether the fan is ON or OFF)
This can be done more easily by using the GPIO configuration window, clicking on the third icon from the right hand side. Please note you will need to allow a short delay since the button is pressed until the output voltage level changes.
I hope this works, and apologies for the inconveniences.
I have the same problem with ADT7470 not being able to set GPIO output state. I've tried setting register 0x81 and I also found in latest datasheet revision in table 49 (0x80 register) for GPIO direction for each port saying "Data for GPIO 3 is set by the LSB of the PWM3 min duty cycle register" so I tried changing PWM min duty cycle register as well, but both of these things didn't work.
But I can confirm that polarity workaround works.
Is this problem solved in some of next revisions of the chip since this discussion is made?