This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCAN1145-Q1: wake up logic confirm

Part Number: TCAN1145-Q1

HI team:

  i would like to confirm with you that after entering sleep mode and turning off vcc and vio,  tcan1145 wakes up by specifying the id. In addition to configuring id filtering, what else do I need to configure?

  my customer phenomenon is that when a message is received under sleep, only the INH pin is pulled high, and there is no level change on Rx, so that the MCU cannot be woken up.

 We also configured the 0x12 register, which does not work.

 can you help to support this? tks in advance.

  • Hi Allen,

    TCAN1145 requireds Vio to be active in order to drive the RXD signal high. If Vio is not present in Standby mode, there can be no falling edge on RXD because it cannot be driven high initially. Is the Vio supply for TCAN1145 the same as the supply to the MCU?

    Alternative sources of wake indicators can be a level shifted version of INH going to the MCU, or the nINT pin can be configured as an open-drain output (need external pull-up to MCU supply) to indicate wake events. 

    Let me know if this information helps and if you have any more questions.

    Regards,
    Eric Schott

  • hi Eric :

     Do you mean that the TCAN1145 must have VIO to wake up with a fixed message? Can the VCC power be turned off?

     As you said ,we can't detect a high level on the RX pin after turning off vio. However, we try to pull up the RX pin internally on the MCU side. After turning off the vio, the RX pin can be kept at a high level. When the tcan1145 switches from sleep to standby, the RX pin is pulled low to wake up the MCU.
    If configured in this way, the current phenomenon is that any WUF can wake up the MCU even when the specified  WUF wakeup is configured. I am not sure whether it is because of the RX pin configuration or the reason why the wake-up by the specified message ID does not take effect, so please provide us with the configuration steps for the wake-up by the specified message ID.
    My current configuration steps are as follows (standard frame):
    1. Configure the id of the message I want to wake up through the SW_ID register, and configure the corresponding SW_ID_MASK register to be all 0.
    2. Configure the RXD pin behavior from a wake event to toggle through the RXD_WK_CONFIG bit of the PIN_CONFIG register.
    3. The CAN baud rate is configured to correspond to the MCU baud rate through the SW_CONFIG_1 register.
    4. Configure the SWCFG bit to 1 through the SW_CONFIG_4 register to enable the wake-up configuration.
    5. Configure tcan1145 to sleep mode through MODE_CNTRL.

  • Hi Allen,

    It sounds like the RXD functionality is working in your application since the transceiver is able to wake the MCU. I'll try to help debug the current situation where the transceiver wakes for any CAN frame instead of only the correct WUF. If the RXD function does not seem to be working as expected, please let me know. 

    When the transceiver indicates the wake event to the MCU and drives the INH signal high, what are the values of the interrupt registers? Primarily, I am lookin for the reported reason for the wakeup being a CANINT, LWU, or FRAME_OVF (all in INT_1). 

    If the case is a CANINT, this is because the device recognized a valid wake event on the CAN bus. If the wake occured when the propper WUF was not driven on the bus, this is likely because SW was not properly enabled. Please review the configuration procedure outline in Section 10.4.5.2 of the datasheet and compare it to your current sequence. Your description seems to follow this closely, but I would like to ensure the following:
    A) During step 5. writing to the MODE_CNTRL register, ensure the SW_EN bit is also being set to 1 to enable frame detection. 
    B) After wakeup, check the status of the SWERR flag (INT_3). If this flag is 1, then there is a problem with the current SW configuration. 

    If the case is a FRAME_OVF, then the transceiver has recognized a number of errors on the CAN bus and has woken up so that the MCU can handle the errors. This can occur when invalid CAN frames appear on the CAN bus, or the transceiver is not properly configured to recognize bus communication. Ensure the correct CAN data rate is selected using the CAN_DR field in the SW_CONFIG_1 register. If CAN FD frames appear on the bus, the SW_FD_PASSIVE field must be set to 1 to ignore CAN frames and the FD_DR should be configured appropriately for the FD data rate. Lastly, ensure that CAN communication on the bus is valid while TCAN1145 is in frame detection mode. If a larger tolerance for CAN errors is required, the FRAME_CNT_THRESHOLD field in SW_CONFIG_3 can be changed to increase or decrease the threshold of CAN error before the device wakes up due to a FRAME_OVF. 

    Lastly, if the case is a LWU, this is caused by a wake event on the WAKE pin. Check that this pin is not transitioning while the transceiver is in Sleep mode. If this is caused by noise in the system, the WAKE pin can be configured for certain requirements using the WAKE_PIN_CONFIG register. 

    Let me know the results of your testing and if you have any more questions in the meantime. 

    Regards,
    Eric Schott

  • hi Eric : 

    Many tks with your details comments! i will double check with the customer and get their feedback.