2019-05-08 09:16 AM
We have some older chips that are trying to program on board via another processor. I have been using AN3155 and can read from the processor and can write areas in memory that are set to 0xFF. I have verified by snooping on the UART that the correct data is being sent, but the data doesnt store correctly when the data slot I am writing to isn't the same or 0xFF. I can program the chip fine with STLink, but I need to be able to do this in field without opening the box on our existing equipment. I don't understand why I would get an ACK back on a write if it isn't storing properly. Any ideas? Do I need to do an erase before writing? On that note, I can't send an erase command, I have tried to Write unprotect and readout unprotect, but still get a NACK when sending 0x43BC to erase areas of memory. I can erase areas of memory with stlink, and they will program fine over uart. Why can't I erase? I would get a NACK back on erase if RPD is active, but I can read memory, no problem.
Thanks,
Dirk
2019-05-09 08:53 AM
Finally determined that I was using the wrong erase command, my version didn't know 0x43, had to use 0x44. I should have checked the return from my "get command" query. Why do you have to erase the flash before you write to it?