Hi,
I am wondering if the MC56F8366 is able to debug in JTAG chain. I found a lot of post that it it not working properly, even in Errata sheet there is note that the EOnCE
OPDBR is not working properly, but there is also a note:
2. If there is only one 56800E device on a scan chain, then the EOnCE OPDRB register will work properly as long as the 56800E device is the first device on the scan chain
So I have made my connection that MC56F8366 is the first device of the JTAG chain. But I can not make it work.
I can debug the MC56F8366 when it is only single device in the JTAG chain. When I connect the other device I can only read the ID of my MC56F8366 and I can also enter debug mode according to the procedure
from manual. But when I try to read for example the OSCTL register at the 0xF2D5 address, the communication is wrong.
Here you can find my single JTAG chain commands and received data which are OK:
Shift-DR (Send 8 bits) =00100000, [L=04h, M=20h, Time = 2120ns] //DR-SCAN data on TDI, select OPDBR
Shift-DR (Read 8 bits) =10001100, [L=31h, M=8Ch, Time = 2120ns] //DR-SCAN data on TDO
Shift-DR (Send 16 bits) =1001001011100001, [L=8749h, M=92E1h, Time = 13730ns] //moveu.w #$F2D5,R1
Shift-DR (Read 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 13730ns]
Shift-DR (Send 8 bits) =00100010, [L=44h, M=22h, Time = 34120ns]
Shift-DR (Read 8 bits) =00001100, [L=30h, M=0Ch, Time = 34120ns]
Shift-DR (Send 16 bits) =1010101101001111, [L=F2D5h, M=AB4Fh, Time = 45730ns]
Shift-DR (Read 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 45730ns]
Shift-DR (Send 8 bits) =00100010, [L=44h, M=22h, Time = 66110ns]
Shift-DR (Read 8 bits) =00001100, [L=30h, M=0Ch, Time = 66110ns]
Shift-DR (Send 16 bits) =1000000011101111, [L=F701h, M=80EFh, Time = 77720ns] //move.w X:(R1)+,Y1
Shift-DR (Read 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 77720ns]
Shift-DR (Send 8 bits) =00100000, [L=04h, M=20h, Time = 98100ns] //move.w Y1,X:0xFFFFFFFF
Shift-DR (Read 8 bits) =00001100, [L=30h, M=0Ch, Time = 98100ns]
Shift-DR (Send 16 bits) =1111111011100111, [L=E77Fh, M=FEE7h, Time = 109710ns]
Shift-DR (Read 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 109710ns]
Shift-DR (Send 8 bits) =00100000, [L=04h, M=20h, Time = 130080ns]
Shift-DR (Read 8 bits) =10001100, [L=31h, M=8Ch, Time = 130080ns]
Shift-DR (Send 16 bits) =0011111011101011, [L=D77Ch, M=3EEBh, Time = 141680ns]
Shift-DR (Read 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 141680ns]
Shift-DR (Send 8 bits) =00100010, [L=44h, M=22h, Time = 162110ns]
Shift-DR (Read 8 bits) =00001100, [L=30h, M=0Ch, Time = 162110ns]
Shift-DR (Send 16 bits) =1111111111111111, [L=FFFFh, M=FFFFh, Time = 173710ns]
Shift-DR (Read 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 173710ns]
Shift-DR (Send 8 bits) =10010001, [L=89h, M=91h, Time = 194100ns] //EOnCE read
Shift-DR (Read 8 bits) =00001100, [L=30h, M=0Ch, Time = 194100ns]
Shift-DR (Send 16 bits) =0000000000000000, [L=0000h, M=0000h, Time = 205710ns]
Shift-DR (Read 16 bits) =0000000001001000, [L=1200h, M=0048h, Time = 205710ns] //OK data read back
and here is the JTAG chain command set which is not working.(2 devices in the chain first is the MC56F8366)
there is only a one difference, that in DR-SCAN SEND data one bit of data is added, value 0 for the second device
Shift-DR (Send 9 bits) =000100000, [L=008h, M=020h, Time = 2130ns]
Shift-DR (Read 9 bits) =100011000, [L=031h, M=118h, Time = 2130ns]
Shift-DR (Send 17 bits) =01001001011100001, [L=10E92h, M=092E1h, Time = 14640ns]
Shift-DR (Read 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 14640ns]
Shift-DR (Send 9 bits) =000100010, [L=088h, M=022h, Time = 35960ns]
Shift-DR (Read 9 bits) =000011000, [L=030h, M=018h, Time = 35960ns]
Shift-DR (Send 17 bits) =01010101101001111, [L=1E5AAh, M=0AB4Fh, Time = 48470ns]
Shift-DR (Read 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 48470ns]
Shift-DR (Send 9 bits) =000100010, [L=088h, M=022h, Time = 69790ns]
Shift-DR (Read 9 bits) =000011000, [L=030h, M=018h, Time = 69790ns]
Shift-DR (Send 17 bits) =01000000011101111, [L=1EE02h, M=080EFh, Time = 82320ns]
Shift-DR (Read 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 82320ns]
Shift-DR (Send 9 bits) =000100000, [L=008h, M=020h, Time = 103610ns]
Shift-DR (Read 9 bits) =000011000, [L=030h, M=018h, Time = 103610ns]
Shift-DR (Send 17 bits) =01111111011100111, [L=1CEFEh, M=0FEE7h, Time = 116120ns]
Shift-DR (Read 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 116120ns]
Shift-DR (Send 9 bits) =000100000, [L=008h, M=020h, Time = 137410ns]
Shift-DR (Read 9 bits) =100011000, [L=031h, M=118h, Time = 137410ns]
Shift-DR (Send 17 bits) =00011111011101011, [L=1AEF8h, M=03EEBh, Time = 149930ns]
Shift-DR (Read 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 149930ns]
Shift-DR (Send 9 bits) =000100010, [L=088h, M=022h, Time = 171220ns]
Shift-DR (Read 9 bits) =000011000, [L=030h, M=018h, Time = 171220ns]
Shift-DR (Send 17 bits) =01111111111111111, [L=1FFFEh, M=0FFFFh, Time = 183720ns]
Shift-DR (Read 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 183720ns]
Shift-DR (Send 9 bits) =010010001, [L=112h, M=091h, Time = 204980ns]
Shift-DR (Read 9 bits) =100011000, [L=031h, M=118h, Time = 204980ns]
Shift-DR (Send 17 bits) =00000000000000000, [L=00000h, M=00000h, Time = 217540ns]
Shift-DR (Read 17 bits) =00010010100000100, [L=04148h, M=02504h, Time = 217540ns] // here is the data which are read back, and they are Not OK.
Could you please advise me how to fix it? Is it OK to send the additional bit like that?
Jozef
WHere as the device may be capable, the IDE of Code Warrior has never been upgraded to match that capability.
Any debugger that did this would have to be generated by a third part, and I am not aware of any at this time.