Post History
While the terminology is similar to that of microcontrollers, and of CPUs in general, the "register" term here is specific to energy meters. Essentially, this board is a very basic version of a sma...
Answer
#1: Initial revision
While the terminology is similar to that of microcontrollers, and of CPUs in general, the "register" term here is specific to energy meters. Essentially, this board is a very basic version of a smart electric meter. The "register" term has been used for many years in Modbus (which is used for all sorts of devices, not just electric meters) and similar embedded/process control environments. There is a **lot** that goes on behind the scenes to populate the registers - these are not your standard 8/16/32/64-bit CPU registers. They may be implemented in RAM, but often (I don't know about this specific implementation) also in Flash or other non-volatile memory to allow for remembering data past a power cycle. The registers often have a quirky mix of: * Static data - e.g., METER_VERSION_ID - can't be changed by normal programs. * Status - e.g., METER_STATUS - typically a bunch of boolean bit fields thrown together, sometimes read-only, sometimes read-write * Instantaneous values - e.g., FREQUENCY - updated every 'n'th of a second. * Accumulated ("totalizer") values - not sure if there are any in the page shown in the question, but typically total kWh. * Configuration values - sometimes read-only, sometimes read-write * History - this is all over the place - some meters have a rolling block (register 0 = most recent, register 1 = 15 minutes prior, etc.) others have a 2-step process - write to one register to say "I want history 'x'" and then read another register to get the values, etc. And many other variants. Source: Personal experience with GE, ION and many other smart meters. Most with incomplete/inconsistent documentation.