I am trying to write drivers to control a 4 wire fan using the AMC6821 in software RPM mode.
On initialization I write the following:
0x80 to Configuration Register 4 (0x04)
0x00 to Configuration Register 3 (0x3F)
0x3F to Configuration Register 2 (0x01) (TACH-MODE = 1 for 4 wire fan)
0xB5 to Configuration Register 1 (0x00) (Software RPM mode, Start bit set)
I then set the rpm by writing the value (6,000,000 / rpm) to the TACH settings LBYTE and HBYTE registers (0x1E and 0x1F)
The fan should spin at 1500~6000 rpm (0~100% duty cycle) however no matter what rpm I set it to, it will not spin faster than 1500 rpm. The PWM output is always low (seen with oscilloscope) so it is always at 0% duty cycle.
I can read the DCY register and see that the duty cycle is not 0%, rather it goes up to 100% over time. The only thing that I have found online that may be part of the problem is this post: https://e2e.ti.com/support/sensors/f/1023/t/864879?tisearch=e2e-sitesearch&keymatch=amc6821
On my AMC6821 the THERM pin is floating. Is this the problem or is there a software solution for this issue? I tried disabling THERMOVIE as well as all the other faults and interrupts but there was no difference.
Any advice would be appreciated.