I'm sure I'm missing something simple here but I am having a problem using Flasher 5 to read ST92F120 MCU's. I can however read a ST92F250 without a problem. I know I have the connections OK and I have scoped the waveforms to make sure nothing is wrong there. No matter what I try I always get 'Ramcode does not work' with the ST92F120's (I have tried with a couple of ST92F120V1Q7's and a ST92F120V9Q7 with the same result). I have also had a logic analyser connected to view the data being transmitted and received:
After reset (with the flasher holding SOut low), the ST92F120/250 sends 25 on SOut. The flasher responds with 23 on SIn and the ST replies with the ready to receive 21 (as it does from now on after each byte is received). The flasher then sends the 008E (number of bytes to be sent to the ST). The flasher sends the 4 SCI interupt vectors 0008, FFFF, FFFF and FFFF. This is followed by the rest of the 8E bytes:
FE C7 00 C7 62 F5 FC 00 F5 FD 0A C7 DE F5 F6 01
BF DE 03 D0 FF FF FF FF FF FF C6 DE F7 F5 F2 09
C7 62 F5 F6 92 00 F5 F8 02 EF 01 08 F8 F5 F8 04
EF 01 18 F8 F5 F8 08 EF 01 C8 F8 F5 F8 10 EF 01
B8 F8 F5 F8 20 EF 01 D8 F8 C7 62 F5 F8 22 EF 01
D8 F8 C7 56 C9 F0 C7 62 B5 80 97 D1 3F FF 6B 04
DF D0 8B 14 BF D0 00 00 50 DC C7 56 C9 F0 C7 02
F5 F9 AA F5 F9 55 C7 62 C7 62 89 F8 EF 01 D8 F8
8B D6 FF BF 01 FF
These bytes are the same for both ST92F120 and ST92F250. The final 21 is sent from the ST asking for the end of transmission byte. The flasher replies with 55. Following on from the above (including the 01 and FF from the end of the 8E bytes) the following are the bytes sent and received to read 0x2000 bytes from 0x00:
From a ST92F250...
SOut: 21 21 21 02 04 08 10 20 22 01 00 00 5A 01 00 01...
SIn : 01 FF 55 00 00 00 00 00 55 55 55 55 55 55 55 55...
where 01 00 00 5A 01 00 01 are the first 6 bytes from the ST @ 0x00
From a ST92F120...
SOut: 21 21 21 02
SIn : 01 FF 55 00
as you can see the last bytes sent/received are the 02 from the ST and the 00 from the flasher. Thats it, the ST then does not do anything.
Am I wrong in thinking the ST has accepted the code sent to it and has actually executed a few instructions? Is there anything I am missing? Any ideas greatly appreciated.
Thanks in advance...
After reset (with the flasher holding SOut low), the ST92F120/250 sends 25 on SOut. The flasher responds with 23 on SIn and the ST replies with the ready to receive 21 (as it does from now on after each byte is received). The flasher then sends the 008E (number of bytes to be sent to the ST). The flasher sends the 4 SCI interupt vectors 0008, FFFF, FFFF and FFFF. This is followed by the rest of the 8E bytes:
FE C7 00 C7 62 F5 FC 00 F5 FD 0A C7 DE F5 F6 01
BF DE 03 D0 FF FF FF FF FF FF C6 DE F7 F5 F2 09
C7 62 F5 F6 92 00 F5 F8 02 EF 01 08 F8 F5 F8 04
EF 01 18 F8 F5 F8 08 EF 01 C8 F8 F5 F8 10 EF 01
B8 F8 F5 F8 20 EF 01 D8 F8 C7 62 F5 F8 22 EF 01
D8 F8 C7 56 C9 F0 C7 62 B5 80 97 D1 3F FF 6B 04
DF D0 8B 14 BF D0 00 00 50 DC C7 56 C9 F0 C7 02
F5 F9 AA F5 F9 55 C7 62 C7 62 89 F8 EF 01 D8 F8
8B D6 FF BF 01 FF
These bytes are the same for both ST92F120 and ST92F250. The final 21 is sent from the ST asking for the end of transmission byte. The flasher replies with 55. Following on from the above (including the 01 and FF from the end of the 8E bytes) the following are the bytes sent and received to read 0x2000 bytes from 0x00:
From a ST92F250...
SOut: 21 21 21 02 04 08 10 20 22 01 00 00 5A 01 00 01...
SIn : 01 FF 55 00 00 00 00 00 55 55 55 55 55 55 55 55...
where 01 00 00 5A 01 00 01 are the first 6 bytes from the ST @ 0x00
From a ST92F120...
SOut: 21 21 21 02
SIn : 01 FF 55 00
as you can see the last bytes sent/received are the 02 from the ST and the 00 from the flasher. Thats it, the ST then does not do anything.
Am I wrong in thinking the ST has accepted the code sent to it and has actually executed a few instructions? Is there anything I am missing? Any ideas greatly appreciated.
Thanks in advance...