AnsweredAssumed Answered

ISP Command manual bugs

Question asked by Mark Stokes on Mar 1, 2017
Latest reply on Mar 3, 2017 by ben schoeler

I've written a Windows program that will download firmware code from .hex (converted to bin) and into our device.  In doing this project, I noticed these errors? in the manual.  Not sure they are errors, but wanted to put them down to see what the experts think.


Writing to RAM w/ ISP/IAP command ('W')

1. When using the “Write to RAM” Command, the datasheet (UM10800.pdf) shows on page 372 under section that the proper sequence is:

1. Write command to uC ("W [Address] [length]")

2. uC replies with result of command request (CMD_SUCCESS hopefully)

3. Write the data to be written to the RAM

4. When complete, the uC will reply with “OK\r\n”.  <-- This does not happen.


When using this command, it is fairly clear that I’m using the command correctly (by not waiting for “OK” since it never happens) because when I issue the next command it works just fine.  Indicating to me that the internal state machine is in the proper state.  Namely, the ready_to_receive_command or whatever and not in the still_accepting_RAM_data state, etc.


When restarting after the code is completely copied and CRC checked (yes, including FLASH from 0x00 to 0x01FF), I issue the Go command.  The datasheet says I can't use an address lower than 0x0200.  This is incorrect as I am issuing the command "GO 0 T" and it's working just fine.  Is this ok?  Do I need to write a little booter program to put in flash that loads the stack pointer and then updates the PC to the value at 0x0004?  Seems like a lot of work if the actual command seems to work.  I have read in other places on this forum where this seems to work for some uC's and not for others.  Was there an update?