MC56F8366 JTAG chain

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC56F8366 JTAG chain

857 Views
guide19
Contributor II

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

Labels (1)
0 Kudos
1 Reply

645 Views
johnlwinters
NXP Employee
NXP Employee

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.


0 Kudos