CAN BUS errors when system shutdown executed

Dear NVidia Team

When doing a shutdown of our Jetson AGX Xavier System, the CAN Bus goes into an Error State (HEAVY BUS). We measured the signal CANx_dout an it seems that the 3.3V power of the signals is turned off first (Signal going down to 1.8V) and then when the Carrier Board is powered off, also the 1.8V of the module turns off. In our circuit, this 1.8V state results in a zero on the CAN_TX signal which then gives the CAN error. In the attached plot, the pink signal C2 is CAN0_DOUT, the yellow signal C1 is CARRIER_POWER_ON, the green signal C4 is the MODULE_POWER_ON and the turquoise signal C3 is the VIN_POWER_ON (goes down later).

According to the newest Design Guide, the MODULE_POWER_ON is de-asserted after the CARRIER_POWER_ON. We have the design without MCU and the MODULE_POWER_ON is first de-asserted as it was described in previous Design Guide Versions. Could you tell us if this is bad behavior or expected?

Is there anything we can control on the module that keeps the CAN signals on 3.3V until the carrier board is powered off? Or do you have other ideas how we can prevent a CAN Bus error?
Thank you.

Best regards

As additional info, the VDDIN_PWR_BAD_N Signal gets asserted during shutdown by the module, before the CARRIER_POWER_ON is going low. This is a discrepancy to the Power Down Sequence Controlled Case Figure 5-3. from the OEM Design Guide. We have verified this behavior also on the Developer Kit of the Xavier AGX.
Could you please check this?

Thank you.

Hi, carrier board power rails should be OFF earlier than module. Please change your design to fix that first.

Hi Trumany

CARRIER_POWER_ON is controlled by the Jetson AGX, how should we change its behavior? The problem occurs because the Module pulls down VDDIN_PWR_BAD in the shutdown process and this turns off the module in the powerbutton circuit via PSHOLD pin. The Power Down Sequence Controlled case plot is wrong, VDDIN_PWR_BAD_N (turquoise) goes down in the shutdown process before the CARRIER_POWER_ON (yellow) signal (measured on the DevKit):

Hi, can the issue be repro on devkit? Did you probe the module_power_on comparing to carrier_power_on on devkit?

Hi Trumany

The last plot is from the DevKit. This means that the order of the CARRIER_PWR_ON and VDDIN_PWR_BAD is already not as described in the OEM design guide. The MODULE_POWER_ON signal is dependent on the VDDIN_PWR_BAD through the powerbutton circuit. That is probably not the case in the MCU power circuit on the devkit?

It is different since the button MCU exists on devkit. Let’s focus on your design without MCU. How do you run the shutdown, by button, by sw or others? How is the VDDIN_PWR_BAD designed on your board? It is an input to module and should be asserted only when VCC_SRC is out of limit. MODULE_POWER_ON is also an input to module that should be asserted after CARRIER_PWR_ON output from module during power off. As below described in DG:

The basic power off sequencing requirements is as follows:
 Early in the controlled power down sequence, SYS_RESET_N is asserted and the 3.3V always on regulator is powered off. This results in CARRIER_POWER_ON going lower soon after SYS_RESET_N is de-asserted. The carrier board is required to power off the supplies associated with the module.
 Once the carrier board power supplies are adequately powered off, the MODULE_POWER_ON signal can be de-asserted which starts the module power down.
 If the main power rails (SYS_VIN_HV/MV) are to be powered off, the VIN_PWR_ON (if implemented), can be de-asserted, disabling the main power rails or if VIN_PWR_ON is not implemented, the rails can just be powered off.
 VDDIN_PWR_BAD_N should go active (low) once either of the main power rails go below an acceptable level.

The shutdown is run via Software by the command “shutdown now” in Ubuntu.

VDDIN_PWR_BAD is designed as suggested in the OEM Design guide, with the “VIN Loss Detection Circuit”, the “DV/Dt Circuit” and the “Simplified DC Jack Power Connections Circuit”. The 12V voltage is stable during shutdown, the VDDIN_PWR_BAD gets pulled down by the Xavier AGX Module itself.

Anyway, as the module powers off the 3.3V always on regulator before the CARRIER_POWER_ON, the CAN signals are not 3.3V anymore before the Carrier Powers are turned off, right?

With SW shutdown, VDDIN_PWR_BAD is asserted by SW shutdown signal in module and so to trigger the SYS_RESET_N and then is the CARRIER_POWER_ON, so VDDIN_PWR_BAD has nothing to do with the power off sequence in this situation. Your design should control MODULE_POWER_ON to be de-asserted after CARRIER_POWER_ON. Otherwise the CAN is not 3.3V anymore before carrier power off as you said.

Hi Trumany
Thank you for the answer.

In the given circuit from NVidia, the VDDIN_PWR_BAD signal directly influences the MODULE_POWER_ON through the PSHOLD signal.

So is there an error in this circuit?

Hi Trumany

Any update here?
Thank you.

We are checking internally, will update once available.

The sequence shown in the DG wasn’t specific to SW shutdown. The reason VDDIN_PWR_BAD_N is shown going low was due to the input rails going low in which case, the power would be seen as too low and VDDIN_PWR_BAD_N would go low. We are checking if need to add other sequence to cover various cases.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.