TJA1120 INT_N pin strange behavior Hi all, I have a question about the state of TJA1120 INT_N pin. During my test, I found the state of the pin was not as expected. Here is my operation: After the initializtion of TJA1120, I read the state of INT_N pin which was low. Afterwards I overrode the register TOP_EPHY_IRQ_ENABLES to enable the WAKE_SLEEP_EVENT interrupt and put TJA1120 to sleep. Then the INT_N pin was high. However, my expectation is INT_N pin shoule be high at the begining and when an interrupt event occurs, it will go to low. Apparently, the test result is completely opposite. Since our custom borad is using another PHY - TJA1103, I checked its INT_N pin in the same way. The result was in normal situate, INT_N was high, after an interrupt the pin became low. Besides, in TJA1103 datasheet, there's a paragraph describing the behavior of TJA1103 INT_N pin: Now I am very confused. TJA1120 and TJA1103 are quite similar and both the INT_N pins have a weak pull-up internally (in our board, they also both have an external pull-up)which indicates INT_N's normal state should be high. Is there any extra config needed for TJA1120 or its INT_N is designed to be low in a normal situation? There's no much info about the INT_N pin in its datasheet or application note, so I post out my confusion looking for some help. Thanks. BR, Yang Re: TJA1120 INT_N pin strange behavior Hello @Yang_C ,
Thank you for all provided data.
First of all, please avoid sharing screenshots from confidential materials. Just mentioning the document name, version, and the specific chapter, figure, or table you're referring to is sufficient for me.
As an additional suggestion, you may consider enabling autonomous mode on TJA1103 by pin strapping.
Thank you.
Best regards,
Pavel Re: TJA1120 INT_N pin strange behavior Hi PaveIL, I figured out what's happening. First of all, I didn't start TJA1103 by setting DEVICE_CONTROL.START_OPERATION during initialization, so the self-test didn't run. After I set this bit, ALWAYS_ACCESIBLE.FUSA_PASS_IRQ will be asserted and INT_N was low. By clearing FUSA_PASS_IRQ bit, INT_N can be released. Secondly, I have to put TJA1103 to standby before entering sleep by setting DEVICE_CONTROL.GOTO_STANDBY bit. If I didn't do so, INT_N can not behave as expected. Just one more question: I didn't start TJA1120 neither, why TJA1120 can run self-test? I indeed have some extra config for TJA1120 based on the Errata sheet, below is what I have done. Is it possible above configs have an impact on TJA1120 self-test behavior? Re: TJA1120 INT_N pin strange behavior Hi PaveIL, I am afraid I cannot share my schematic, but I can tell you the pin strap and register settings, hopefully it can help. Pin strap: Resigter settings: Since currently I am only investigating the sleep-wake functionality of TJA1103, all the registers I configured is related to this feature. 1. Initialization phase after power on DEVICE_CONTROL -> 0x2000 WISE_CONFIG -> 0xA400 WAKE_SLEEP_CONFIG -> 0x4700 PORT_IRQ_ENABLE- > 0x1 GLOBAL_CAT_IRQ_ENABLE -< 0x10 TOP_EPHY_IRQ_ENABLE -> 0x2 After running above config, I checked the state of INT_N pin, it was already high without clearing the self_test IRQ, then I read back all self-test relevant registers, no error happened. For TJA1120, it is a must to clear the self-test IRQ to release INT_N based on my test, but for TJA1103, is it still a necessary step? 2. Sleep-wake phase WAKE_SLEEP_CONTROL -> 0x1: put TJA1103 to sleep, then INT_N is low TOP_EPHY_IRQ_SOURCE -> 0x2: clear the inerrupt flag triggered by sleep event, then INT_N is high ALWAYS_ACCESSIBLE -> 0x8000: wake up TJA1103, then INT_N is low again TOP_EPHY_IRQ_SOURCE -> 0x2: clear the interrupt flag triggered by wake event, INT_N is stuck in low read TOP_EPHY_IRQ_SOURCE -> get 0x0 read GLOBAL_CAT_IRQ_STATUS -> get 0x0 read PORT_IRQ_STATUS -> get 0x0 I have to reset the whole TJA1103 by RST_N pin and the INT_N pin returned back to high in the end. Looking forward to your result, thank you very much. BR, Yang Re: TJA1120 INT_N pin strange behavior Hello @Yang_C ,
I will check that behavior on my boards within next week.
Could you share your pin strapping, schematic and other register settings (if applicable) ?
Thank you.
Best regards,
Pavel Re: TJA1120 INT_N pin strange behavior Hi PaveIL, When TJA1103 INT_N was stuck in low (after I woke up TJA1103 and cleared the register TOP_EPHY_IRQ_SOURCE). I indeed suspected there might be another interrupt occurred, so I read the register values of TOP_EPHY_IRQ_SOURCE, GLOBAL_CAT_IRQ_STATUS and PORT_IRQ_STATUS. All indicated none other interrupt happened. Besides, after power on, the state of TJA1103 INT_N already high, I didn't override ALWAYS_ACCESSIBLE to release this pin. The only way INT_T pin can return back to high was reseting TJA1103 by its RST_N pin. Re: TJA1120 INT_N pin strange behavior Hello @Yang_C ,
Thank you for your detailed testing. Your TJA1120 sequence looks correct, and the behavior you observed matches the expected operation.
Regarding TJA1103, the situation indeed appears more complex. Based on your description, the INT_N pin remains low even after clearing the WAKE_SLEEP_EVENT flag, which is unexpected.
Please verify that no other interrupt flags are active. INT_N is driven low if any enabled interrupt is asserted. You may try to read also GLOBAL_CAT_IRQ_STATUS.
Best regards,
Pavel Re: TJA1120 INT_N pin strange behavior Supplementary info: When TJA1103 INT_N was stuck in low (after I woke up TJA1103 and cleared the register TOP_EPHY_IRQ_SOURCE). I guess there may be other interrupt occurred, so I read the register values of TOP_EPHY_IRQ_SOURCE, GLOBAL_CAT_IRQ_STATUS and PORT_IRQ_STATUS. All indicated none other interrupt happened. Re: TJA1120 INT_N pin strange behavior Hi PaveIL, Thank you for your reply. It is very much helpful indeed. Based on your explanation, I did following check: For TJA1120, you are right. I should clear GLOBAL_INFRA_IRQ_ENABLES.DEV_BOOT_DONE and GLOBAL_INFRA_IRQ_SOURCES.DEV_BOOT_DONE to release INT_N pin. Afterward when I put TJA1120 to sleep, INT_N stayed high, when I woke it up, INT_N went low. Then I cleared the interrupt flag by writing register TOP_EPHY_IRQ_SOURCES, jus as expected INT_N went back to high again. Here's how I managed the sleep-wake process: enabled wake-sleep IRQ first, write 0x1 to register WAKE_SLEEP_CONTROL for sleep, write 0x8000 to register ALWAYS_ACCESSIBLE for wake. If any of my TJA1120 operation is wrong, please correct me. For TJA1103(its situation is more complex), Step1, after power on, I only read FUSA_PASS_IRQ bit in register ALWAYS_ACCESSIBLE, it was already 0 and INT_N pin was already high. Step2, I checked all the register status mentioned in TJA1103 datasheet Figure 5 and Figure 6 to check if any of the self-test failed so that FUSA_PASS_IRQ couldn't be asserted. However, the result was all good, no error happened. Step3, I enabled wake-sleep IRQ, put TJA1103 to sleep, INT_N became low accordingly. You said TJA1120 will release INT_N when it's in sleep mode, but for TJA1103, it didn't release INT_N, the pin behaved more like an interrupt occured. In order to confirm my guess, I read the register TOP_EPHY_IRQ_SOURCE and its WAKE_SLEEP_EVENT bit is asserted. Then I cleared the flag, INT_N became high. Then I woke up TJA1103, INT_N became low again, by reading TOP_EPHY_IRQ_SOURCE, I confirmed another wake interrupt was triggered. Then I tried to clear this interrupt flag, interesting thing happened, INT_N pin didn't return back to high this time, but in register TOP_EPHY_IRQ_SOURCE, it showed this flag is cleared. I reckon TJA1120 and TJA1103 may behave differently in an interrupt event, but why INT_N pin cannot return back to high after I clear the interrupt flag for TJA1103? Any suggestions? Looking forward to you reply. BR, Yang Re: TJA1120 INT_N pin strange behavior Hello @Yang_C ,
Thank you for your detailed description.
Yes, you are right – both devices behave the same in this regard. Let me clarify your observations.
As noted in the datasheets, both TJA1120 and TJA1103 drive the INT_N pin low after power-up, which indicates a successful internal self-test. This behavior is by design and does not indicate a malfunction.
To release the INT_N pin after startup:
For TJA1120:
Disable the interrupt by clearing GLOBAL_INFRA_IRQ_ENABLES.DEV_BOOT_DONE (MMD30 address 0x2C0A = 0)
Clear the interrupt flag by writing to GLOBAL_INFRA_IRQ_SOURCES.DEV_BOOT_DONE (MMD30 address 0x2C08 = 2)
For TJA1103:
Clear the FUSA_PASS_IRQ bit in the ALWAYS_ACCESSIBLE register by writing CL22 address 0x801F.4 = 1
If the INT_N pin remains low after clearing the above bits, you should read the relevant IRQ registers to identify the source of the interrupt.
Also, could you please clarify how you put the TJA1120 into sleep mode? If the device is put into deep sleep, the INT_N pin is released automatically.
Best regards,
Pavel
View full article