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: Occasional wrong TACH readings

Part Number: AMC6821

Tool/software:

Hi,

I'm experiencing occasional reading errors from the AMC6821, to which a 3-wire fan is attached.

Readings to TACH DATA are executed by multiple bytes reading starting from 0x08. The fan runs at fixed rpm (around 5900 rpm), thus TACH DATA stays at around 1016.

Sometimes TACH DATA returns a doblue value ( 11500rpm, 500 value from TACH DATA), sometimes four times the real value (23000rpm).

Here's the configuration for CONFIG1, CONFIG2, CONFIG4:

CONF1 = 0x01

CONF2 = 0x06

CONF4 = 0x80

Readings are requested every 3s.

As you can see from the image below, this is the comunication via I2C when the microcontroller requests TACH DATA register. Here TACH DATA returns the correct value (0x405 = 1029 = 5830 rpm)

Instead, the image below is a screen when TACH DATA returns wrong value (0x203 = 515 = 11650 rpm)

I monitored TACH signal from the fan and there's no frequency change when TACH DATA is wrong.

I'm attaching a piece of the schematich with the interessed part

Does anyone have any idea about the reason the AMC sometimes returns wrong value?

I just wanted to note that sometimes it's a recurring phenomenon, sometimes it's less frequent.

As you can see from the schematich A0 was left unconeccted, so I tried to change its address by tying it to VCC.

Any help would be appreciated.

  • A0 no connect is a valid address selection, although I would always recommend to tie address pins off to supply or ground where possible. Changing the A0 pin would change the target (formerly slave) address for all I2C communication. This can't be the source of your issue, because it would result in I2C NACK and lack of response from the AMC6821.

    Thanks for providing I2C bus captures. It confirms that you are getting data correctly from the AMC6821. In this case, the AMC6821 TACH input must be genuinely confused by noise it is seeing from the fan. You said that you looked at the TACH pin with an oscilloscope; did you note noise or ringing? You could try adding a capacitor to ground at the TACH pin to dampen noise. I would start with 1nF or less and check the waveform on oscilloscope.

    thanks,

    ren

  • Hi, thanks for your reply. That's exactly what I've done! A 10nF capacitor between TACH and GND. I noticed another issue in I2C comunication: if you have a look at the screens, you can see that after the register adress 0x08, a STOP and a START bit are sent instead of a Repeated Start.

    Do you think this could also lead to comunication errors?

  • Stop/Start is allowed on AMC6821 even though the datasheet suggests the SMBus-style restarts.

    thanks,

    ren