Using openocd JTAG on the AT91SAM9G20
By user12611170 on Nov 01, 2009
I've been working to bring up prototype of a SPOT board based on the Atmel AT91SAM9G20 processor. This is an ARM9 (ARM 926) that is several generations past the SPOT's AT91RM9200. I've used openocd JTAG to bring up the board and wanted to post the script. My previous post, "Unbricking a SPOT" covers the particulars and pointers about openocd.
It was the intention that SPOTs live in the community, so we post not only design data about the manufactured SPOT but also prototypes we are working on. The SPOT design for manufactured SPOTs are posted on the https://spots-hardware.dev.java.net/ subversion trunk and prototype designs are posted in the branch. The eSPOT is becoming a mature product and we are faced with part obsolescence and higher cost for older parts. We have made prototypes that never made it to manufacture and designs on the branch have not yet been qualified to be manufactured. As you can imagine, things are very uncertain, but as long as we can, we are moving forward on bringing up new updated SPOTs.
For this prototype, I modified the power controller to sequence power to the processor. Once the switchers checked out (no smoke), we use openocd JTAG to talk with the ARM. This series of ARM9 does not come up without a lot of initialization. The CPU phaselock loops, clock paths, Flash/SRAM memory timing and CACHE control all have to be setup by both startup code and the JTAG initialization script. Once we write to flash with JTAG, we download short C programs using the gnu tool chain to test UARTS, SPI, I2C and so on. The openocd board initialization script is here.
There were issues with one of the Absolute Maximum ratings "Voltage on Input Pins with Respect to Ground" .... -0.3V to VDDIO+0.3V. If we drop power from the ARM during deep sleep. VDDIO is 0V and we cannot have any parts with a voltage higher than 0.3V on the ARM. Turns out, TI makes some great LVC parts which "disappear" when power is turn off and solved one of our problems. TI has an application note which goes into detail about Ioff called "Logic in Live-Insertion Applications With a Focus on GTLP"
Short blog today - our rock band neighbors are too noisy to concentrate.