TCAN4551-Q1: TCAN4550 nWkrq Pin not configuring properly

Part Number: TCAN4551-Q1
Other Parts Discussed in Thread: TCAN4550

Tool/software:

HI team,

I have small query regarding Pin configuration on TCAN4550,

as per my product requirement I need to wake up my controller by CAN (which can be achived by nWKRQ pin) , but when i set nWKRQ_CONFIG = 1 , I am not receiving any interrupt , I am using nWKRQ_VOLTAGE = 0 (internal).

but if i configure 

nWKRQ_CONFIG = 0 

 INH_DIS = 1 

I am able to receive the interrupt but I am receiving it twice one at wakeUp and one at sleep ,

can you please explain this behaviour?

Thaks in Advance

Virat

  • Hi Virat,

    The nWKRQ pin by default will mirror the INH pin's function which simply an indication the device has entered or exited Sleep Mode.

    The nWKRQ pin can also be configured to work the the device's interrupt and the nWKRQ pin is the logical OR of the CANINT, LWU and WKERR registers bits (0x0820) that are not masked in the Interrupt Enables register (0x0830).  By default the CANINT and LWU Interrupt bits should be enabled in register 0x0830, but can you verify that each of these has a 1'b1 value?  The WKERR interrupt cannot be masked.

    How are you handling the Interrupt Register?  Are you automatically reading and clearing this register, or are you monitoring for these specific bits to be set?  Can you share the values you are reading?

    Can you share any scope plots for your observations?

    Regards,

    Jonathan

  • Hi Jonathan,

    Thanks for the response , just to brief on my application,  I am putting CAN in sleep every 2 Sec and also stoping the clock once its in sleep to save the Power, once there is new msg by another node it will put TCAN in to stand by mode and also send the nWKRQ pin interrupt (thats what i want but currently not hapning) and controller will configure it to normal mode.  

    for

    registers bits (0x0820)  I am clearing it with 0x00000000 every time before putting it to Normal from Standby

    for Interrupt Enables register (0x0830) i set the CANINT = 1 rest are 0  every time before putting it to Normal from Standby

    but unfortunately I am not getting interrupt on CAN BUS Wakeup

    for pin configuration I have disable the INH and nWkrq_config = 1

  • Hi Virat,

    Thank you for the additional information, it really helps me understand what you are trying to accomplish and put context to the questions you are asking.

    Can I ask an additional question on why the Interrupt Mode (nWKRQ_CONFIG = 1) is better for your application than the Mirrors INH function (nWKRQ_CONFIG = 0)? 

    The Interrupt mode requires a clock to run the digital core.  If you are stopping the clock in sleep mode, then I believe you would need to first start the clock in order for the nWKRQ pin to reflect the status of the interrupt bits that have been set.  If you are waiting for the interrupt to arrive on the nWKRQ pin before starting the clock, then I don't think this will work.

    What are you connecting the nWKRQ pin to?  Is it to some sort of power regulator, or is it connected to an MCU interrupt input pin?

    The INH pin does not require a clock to be present because it usually is connected to the enable pin of the local regulator which would also source the clock.  Therefore it will transition when the device exits Sleep Mode, and by default the nWKRQ pin will as well. 

    The VIO supply sources the clock circuit in the TCAN4551, so if the VIO supply is not present, the TCAN4551 will not have a functional clock to run the digital core.  So if you want to use the nWKRQ pin in Interrupt Mode, you will need both the VSUP and VIO supply rails as well as a functional clock in order for the digital core to send an "Interrupt".

    Regards,

    Jonathan

  • HI Jonathan,

    Thank you for the clerification,  

    Can I ask an additional question on why the Interrupt Mode (nWKRQ_CONFIG = 1) is better for your application than the Mirrors INH function (nWKRQ_CONFIG = 0)? 

    --> I was using  nWKRQ_CONFIG = 0 in my application, but I am getting it twice once on wakeup and once per sleep, I can also manage the same by software but I had fear that what if new wake up interrupt will arrive before I clear the seep interrupt. I thought if I can only configure CANINT so It will be more easy to handle this sleep-wakeup process specially when clock is not there. but as you mentioned with nWKRQ_CONFIG = 1 There has to be clock to generate interrupt on nWKRQ pin . 

    What are you connecting the nWKRQ pin to?  Is it to some sort of power regulator, or is it connected to an MCU interrupt input pin?

    --> It is connected to MCU interrupt input pin.also as per our design INH pin is not connected.

    but I understand well that either I have to keep the clock or either I can keep configuration nWKRQ_CONFIG = 0 and nWKRQ will mirror the INH functionality.

    Regards,

    Virat

  • HI Virat,

    I'm not certain about the second nWKRQ interrupt you are receiving when nWKRQ_CONFIG = 0 when you enter Sleep mode.  Because nWKRQ is low when the device is in Normal or Standby modes, and high in Sleep mode, are you saying that the nWKRQ pin is transitioning High and then Low and then High again as it enters Sleep mode?  Or is your interrupt detecting the rising nWKRQ edge as the "second" interrupt?

    Regards,

    Jonathan

  • Hi Jonathan,

    you are right

    its more like "interrupt detecting the rising nWKRQ edge as the "second" interrupt" since i configure WAKE_CONFIG = 3 (bi directional).

  • Hi Virat,

    Thanks for confirming.  Please let us know if you have any additional questions.

    Regards,

    Jonathan