[WIP] System Monitoring MCU

We have reserved several pins for the system monitoring MCU on the panel, including 1x RS232, 1x isolated CAN, 1x isolated DO, and 1x ignition input. Please refer to the pinout details on this page [link].

The purpose of each I/O is as follows:

  • MCU_RS232 – An interactive interface for sending commands and querying results once the MCU is powered up.

  • MCU_STATUS – Indicates the CPU status based on heartbeat checks and continuous handshakes.

  • MCU_CAN – A one-way interface that continuously sends onboard voltage, current, and thermal sensor information. This CAN bus is only functional after the sustain power is ready.

  • MCU_IGNITION – The ignition input for ignition power control.


Installation

We have prepared a sample program to demonstrate the system monitoring MCU on Ubuntu 24.04. Please use the following commands to download and install the sample code.

git clone https://github.com/qshiwu/RGS-9805GC-Functional-Safety.git

Remote Control via MCU RS232

The RGS-9805GC uses an MCU-based approach to provide a remote control feature. You can send the following command to the MCU via RS232 for power management. The RS232 settings are 115200 8E1 (please double-check the even parity setting).

Remote Control Command

Boot Log

Check MCU Version

Check Current Power status

Check Sensor Info

The example sensor log shows timestamps in milliseconds after the onboard MCU powers on, with updates every second.

The COM port outputs raw sensor data. You can use the attached Excel file ADC_Cal to convert the data into a readable format.

file-download
57KB

Sensor Monitoring Port vis MCU Isolated CAN 2.0

The MCU will send the sensor information (as shown in the MCU RS232 section) every second after decoding.

CAN Bus demo code

You can download the demo code from githubarrow-up-right


System Status via MCU Isolated DO

SYSTEM_STATUS reflects the host computer’s proper operation within 10 ms, based on one CPU heartbeat and two MCU-to-CPU handshakes.

SYSTEM_STATUS remains high if:

  • The MCU receives at least 95% of CPU heartbeats within an 8 ms window. (app)

  • The OS-level handshake service (e.g., acpid) responds to the MCU’s rising edge within 6ms. The MCU sends a handshake every 2 ms.

  • The app-level handshake service responds to the MCU’s rising edge within 6ms. The MCU sends a handshake every 2 ms.

Otherwise, SYSTEM_STATUS becomes low.

Handshake & Heartbeat demo code

You can download the demo code from githubarrow-up-right

Last updated