pmazolo wrote:
Hi,
I am new to this FLASH thing and would like some help with basic questions:
1. How do we best get the very first code into the AT91SAM7A3 in our produced units? Does the chip have some kind of built-in support for downloading code in an "empty" chip? JTAG? Other?
2. How do we download new firmware into existing products, in-field?
The DBGU serial port will let you (re)load the Flash. It has a protocol where you have to first load the boot loader into the Flash by raising several pins to a one (TST, PA0, PA1, PA2) and asserting reset (or cycling power). You then set TST to zero and reset again to run the boot loader. This will communicate with a PC application, SAM-BA, to load your program into the flash.
Quote:
Our product will have a serial port (RS-232 via the USART), so could we use that for both #1 and #2 in some way? We would like to avoid having a JTAG connector on every unit produced....
That's the sticky wicket. Can you use the same serial port for loading code into the SAM7 that you want to use in the application? The DBGU serial port is not as programmable as the other serial ports. For example, I don't think you can use any word size other than 8 bits. But more importantly, the DBGU is used for several other debug features. I am currently trying to determine if using this port in your application interferes in any way with using all of these debug features.
Quote:
Ie: Is there any way to get the "empty" chip to download firmware via the serial port? Or, if that is not possible, we could perhaps download the first code via JTAG pads in production, but then we would like to be able to use RS-232 after that, in-field.... is there a bootocode available that can handle that? At least one that we could port to the A3....
(The at91sam7A3 we use has 32K ram and 256 FLASH, but no ROM/bootrom)
/PM
I missed the fact that you are working with the SAM7A3 rather than the SAM7S parts. I am trying to find out how usable the DBGU port is in an application.