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.

TCAN1146-Q1: Save the Registers value to EEPROM

Expert 2350 points
Part Number: TCAN1146-Q1

When set the TCAN1146-Q1 CAN_WAKEUP_ID as 0x500.

One question, when change the mode from normal to sleep. Will the setted CAN_WAKEUP_ID to  SW_ID3 Register and SW_ID4 Register save in some EEPROM?

I did not find the related information in the datasheet.

Could TI expert help mark the related information?

       

  • I am following this question. Could TI expert help?

  • Hi WZ,

    Thanks for your patience over the US holiday this past weekend. 

    The selective wake registers for this device will maintain their values while the device is in sleep mode. The Vsup supply is used to maintain some memory values in this low power sleep state so this information will still be lost if the Vsup supply is cycled. There is no way to save these values to non-volatile memory space. The selective wake configure should be re-initialized by the MCU any time the transceiver is going to be put into its sleep state. 

    Let me know if you have any more questions. 

    Regards, 
    Eric Schott 

  • Thanks for your quick feedback.

    I tried that did not set the below SW_ID registers then switch to the normal mode,

    The default wake up can frame is the standard can with ID 0.  Am I right?

    I tried use the standard can with ID 0  to wake up my system, the result shows that Yes, it have power.

    But when I stopped to send the frame, it cannot perform sleep which is different with I setted the wake up frame as 0x500 's behavior.

  • WZ,

    We'll have a response for you tomorrow by end of business CST.

    Regards,

    Eric Hackett 

  • Hi WZ,

    I'm not sure I understand your description. Could you share at a high level what the SPI writes you are doing for this test? For example:

    • Write to SW_ID to configure wake ID
    • Set SWCFG to lock configuration 
    • Write to MODE_CNTRL so set SW_EN and MODE_SELto sleep mode 

    Please ensure that the last step includes the command to move to sleep mode and that selective wake is enabled for your test. If SW_EN is not set, the device will wake up to any CAN frame (WUP).

    Regards, 
    Eric Schott 

  • I had already successfully configured the all neccessary registers with selective CAN ID 0x500. And successfully tested  the wakeup and sleep fucntion.

    Then I just remove the selective CAN ID registers configurations in the init function.

    //  // id[5:0]   =>  [7:2]
    //  TCAN114X_write(0x33, (CAN_WAKEUP_ID & 0x3F) << 2);
    //  // id[10:6]  =>  [4:0]
    //  // bit5: 0: 11-bit ID   1: 29-bit ID
    //  TCAN114X_write(0x32, (CAN_WAKEUP_ID >> 6) & 0x1f);
    //
    //  // SW_ID_MASK4 mask[10:3]   =>  [7:0]
    //  TCAN114X_write(0x37, CAN_WAKEUP_ID_MASK >> 3);
    //  // SW_ID_MASK_DLC mask[2:0]  =>  [7:5]
    //  TCAN114X_write(0x38, (CAN_WAKEUP_ID_MASK & 0x07) << 5);

  • Hi WZ,

    The configuration here looks good. I think I am still not understanding the issue you are describing.

    But when I stopped to send the frame, it cannot perform sleep which is different with I setted the wake up frame as 0x500 's behavior.

    What do you mean here by "it cannot perform sleep"? The MCU is responsible for writing the device into sleep mode once CAN traffic is idle. Is this command still being sent? Do you intend to use the partial networking feature without configuring the SW_ID at any point?

    Regards,
    Eric Schott 

  • I will try to test more and if I have the question will creare a new ticket.

    Thanks a lot.