Fan Control and Monitoring

Fan-control functionality is provided as a reference software to demonstrate the control of Fan speed based on the temperature of Orin SoC. Measured Orin temperature values are sent to MCU over Ethernet. The Fan Control reference SW component on MCU computes the PWM dutycycle required to drive the Fan, based on the temperature data using a characteristic curve. In addition, the Fan-Tach sensor signal from the Fan is read by MCU software periodically and fan speed is monitored against the requested RPM to detect faults in Fan.

Figure 1. Fan Control Overview

The following functionalities are provided by the Fan-Control reference SW component -

  • Receives the Ethernet frames with Orin temperature data and selects the temperature for controlling Fan speed. The reference design chooses the maximum of the 3 values received over Ethernet. The Customer can extend this feature in the function MCU_SWC_ForFanControl_ChooseTemperature().

  • When the data is not available over Ethernet, or if the data is corrupted, another application on MCU can set the temperature over an AUTOSAR interface. If the temperature is provided by the SW component on MCU, this value will be used to control the Fan PWM for the rest of the power-cycle.

  • The temperature value is converted into the desired PWM dutycycle using the characteristic curve and sent to the HW.

Note: When the FanCtl software functionality is disabled or not yet integrated, there is a shell command set_fanpwm which directly sets the PWM duty-cycle value on the Fan PWM hardware. The shell command show_fanrpm is provided to readout the Fan speed and the duty-cycle from MCU serial console.
  • During initialization, the Fan is operated at full speed, by applying 100% PWM signal (MCU_SWC_FANCTRL_MAX_PWM) and maximum possible Fan speed is measured. It is compared with the rated speed of Fan as per the Manufacturer’s specifications and large deviations are considered as permanent degradation of Fan.

  • During normal operation, the actual speed of Fan measured from the Tach sensor is compared with the desired speed. Large deviations are considered as failures and reported on the MCU console. Since the desired speed of operation depends on a lot of external parameters like ambient temperature, altitude etc, it cannot be computed precisely. For monitoring, an approximated value calculated based on the maximum speed of operation measured during that power-on cycle, is used.

Receiving Temperature Values from NVIDIA Orin

A sample application on Orin CCPLEX sends the Temperature values periodically (1 second) to MCU over Ethernet VLAN200. This application is packaged in On Standard build only safety build will operate Fan from MCU side software

The temperature data received over Ethernet will have the following structure.

  • The temperature values have a resolution of millidegree Celsius. For example, a 78.527 degree Celsius is sent as 78,527 decimals, which is 0x000132BF (hex). The receiving module shall convert the data into actual temperature by dividing the data by 1000U.

  • After power-on, the FanControl software waits for Orin temperature data over ethernet for a configurable time duration. If Ethernet packets are not received, a safe PWM dutycycle is applied to prevent the board from overheating.
  • The communication over Ethernet is protected by a checksum. During runtime, if Ethernet frames are not received or a received with invalid data, the fan control switches to a safe PWM dutycycle.