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.

AMC6821: PWM is permanentely HIGH

Other Parts Discussed in Thread: AMC6821

Dear friends,


my co-workers and I are trying to use the AMC6821 PWM fan controller as a temperature sensor and to control a FET for a gas sensor's heating. Fan RPM measurement is not required for out application; instead, the PWM shall be controlled by software.

We have a board which has jumpers for the PWM mode pin (connected to GND = high frequency) and the address pins (set to 0x18), and pulls up all other pins by 4.7kOhm resistors except for those for the external temperature sensor (IN+ and IN-), which are connected by a 2200pF capacitor. That is more tha suggested in the docs; might it be harmful? Please note that no external sensor is connected. (I would add schematics and layout, but do not see a way to do that here.)

We are using a Raspberry Pi B+ as a development platform, with the I²C clock set to 100kHz manually.

Now, we can talk to the device under the configured address no problem, and read out the correct local temperature of approx. 23°C. But we have not found a way yet to actually get a PWM signal from the controller - PWM out is permanentely pulled up to the supply voltage of 3.3V. Interestingly, this is independent of the PWM invert bit's value in configuration register 1.

I have tried to recreate the init procedure of the linux driver in my program, and I have tried to configure the controller manually from the command line with i2cget/i2cset with the values suggested by the configuration, i.e. I have disabled all interrupts, set software DCY control mode and enabled the PWM output in configuration register 2, set the start bit in configuration register 1, and even set the mysterious future MSB in configuration register 4 (0x04) to 1, as suggested in table 14 on page 33 of the documentation.

Question: Can you kindly describe the correct procedure of making the controller independent of the RPM signal and setting the PWM duty cycle by software?

Thank you in advance, I'm really looking forward to any suggestion.