How can i use ACS37800 for 220VDC monitoring

I want to measure 220VDC input voltage through ACS37800. The circuit configuration is the same as EVB of ACS37800.
Riso 1 ~ 4 = 1M ohm, Rsense : 2K ohm

To read DC voltage, set BYPASS_N_EN = 1 of shadow register 0x1F, and set N value to 1023.

After applying 60VDC input voltage for test, if you read register 0x20, a specific value will be output.

I don’t know the calculation formula to find the input voltage of 60VDC using this value.

I don’t understand the formula in the datasheet.

I need help.

Thank you.

Hi @jskim ,

The ACS37800 datasheet is very confusing. It took me a long time to work out how to convert the register values into voltage and current.

To read DC voltage, you need to read register 0x2A. It contains the “instantaneous” voltage.

Register 0x20 contains the RMS voltage - for AC voltages. This will be zero on DC voltages.

Please have a look at the notes in our Arduino Library.

I hope this helps,
Paul

1 Like

Thank you for your reply
I read the DC input voltage normally with the example code you linked.

I also want to check ICODE or IRMS, but how can I find the currentSensingRange value in the example code?

Hi @jskim ,

_currentSensingRange defaults to 30.0 (Amps). With our library, if you are using a 90.0 Amp sensor, you need to call setCurrentRange(90.0) to adjust the current range.

As far as I can tell, the sensor current rating itself is not stored in EEPROM. It might be possible to infer it from crs_sns, but that is not the same thing as the current range.

Best wishes,
Paul