I'm currently having a strange problem with the MPC5775K.
I'm trying to create my own flash programming tool following AN4365 (https://www.nxp.com/docs/en/application-note/AN4365.pdf ) and this Example JTAG access – Addendum to application notes AN3283 and AN4365.
The external tool is another µC which is bit banging the JTAG messages over GPIO. I am able to enter Debug Mode, but every ~300ms there is an reset on TRST and the communication is also reseted, but I never pull the reset pin down except for the enter debug mode routine. So the MPC5775K must try to reset the JTAGC. When I'm using the Lauterbach Debugger it seems to work. I attached the screenshot from the JTAG communication to show the problem.
The first one is without anything connected, the second one with the lauterbach debugger and the last one with my external tool. In the first screenshot you can clearly see that the MPC5775K is causing the resets. In the last one you can see that the verifying of the Status Register works until the reset occurs. Can anyone explain me why this is happening and how I can solve the problem?
Thanks in advance and regards
I read the RGM registers and got the following:
DES (FFFA8000): 0x00000001 -> POR
FES (FFFA8300): 0x00000005 first -> external Reset (after my Debug Reset) and then 0x00000004 after the 300ms reset. Here is a picture for better understanding:
So what can I conclude of the values: I think DES is normal, because I didn't cleared the register after last Power on.
The first FES shows the external reset which i did for entering debug mode and the second one shows, that the 300ms reset is internal? Am I missing something?
I have another question since I found some more odd things:
Is it possible that my µC which is bitbanging the JTAG commands has an too small pull-up resistor and can not "win" against the internal pull-down? This would explain the voltage value of 1.6V as it is an voltage divider. Furthermore the problem is gone, when I just connect the Lauterbach cable at the same time, but use my own software and µC to send the commands. Is there any documentation which value the pull-down resistor has?
I expect that this is cause by SWT which is not disabled by your debug tool when it enter the debug mode.
Lauterbach by default disable SWT when the debugger is connected (up/attach). Therefore you are not seeing periodic resets with Lauterbach.
thanks for your reply. I already tried to disable the SWT (0x0000C520 + 0x0000D928 in SWT_SR and 0xFF00010A in SWT_CR). I think this should disable the watchdog, but the resets are still there. If I just connect the Lauterbach JTAG cable without opening TRACE32 (so SWT is not disabled by Lauterbach) , the resets are gone. So i don't think that the SWT is the problem?