Using Arduino UNO, obtain various parameters from the ABB B21 112-200 electric energy meter, as well as send settings to it.
This meter has an RS485 interface (ModBus RTU) with terminals A, B, C
To connect, I will use the MAX14783EASA+T transirver.
The distance between the meter and the transirver is within 50cm.
There is no ready-made module with this transirver, so I will design my own.
My wiring diagram:
As a basis, I took the design of the MAX485.
The questions are:
Pull-up resistors are placed on line A, B to protect against floating contact. What determines the choice of the nominal value of these resistances? There are 20k resistors on the MAX485 board, although the line length is not known there. I found various options used: 560 Ohm, 1k, 20k. The datasheet indicates:
True Fail Safe The MAX14783E guarantees a logic-high receiver output when the receiver inputs are shorted or open, or when they are connected to a terminated transmission line with all drivers disabled. If the differential receiver input voltage (A–B) is greater than or equal to -10mV, RO is logic-high.
The lines RO, RE, DE, DI are pull-up by 10k resistors. This is a good decision?
I learned that RE and DE can be combined together and switch the transirver from read mode to send mode using a single contact of the microcontroller. Why is this done? To save contacts or increase reliability?
The MAX14783E has built-in hot-swappable circuitry. I would not want external pull-up resistors to somehow influence this.
Does the -7V + 12V range comply with the A-B voltage standard for the RS485 bus?
This transceiver is rated at -8V + 13V. In the counter passport I did not find the voltage range on the RS485 line.