-
Notifications
You must be signed in to change notification settings - Fork 1
TinyG Boot Loader
Huge thanks to Kevin Osborn who got this working
You will find the boot
The following instructions explain how to flash the boot loader using Atmel Studio6. AVRStudio4 is similar, as would be command-line.
Step 1. Get the right programmer. The xmega requires PDI programming. Use the Atmel AVRISP mkii or some other programmer that supports PDI programming. Plug the programmer into TinyG and apply power to TinyG.
Step 2. Bring up Studio6 and the device programming panel. Look under Tools/Device Programming
- In the programming panel verify Tool is AVRISP mkii, the device is ATxmega192A3 and the interface is PDI. Hit Apply. You should see the Device signature and voltage field populate. Voltage should be 3.2v or thereabouts.
Step 3. Set the fuses. Go to Fuses and set the following
- set BOOTRST to BOOTLDR
Other values should be left alone. These are:
- JTAGUSERID = 0xFF
- WDWP = 8clk
- WDP = 8clk
- DVSDON = (unchecked)
- BODPD = disabled
- RSTDISBL = (unchecked) Don't check this - you will brick the board
- SUT = 0ms
- WDLOCK = (unchecked)
- JTAGEN = (CHECKED) Don't uncheck this, you will brick the board
- BODACT = disabled
- EESAVE = (unchecked)
- BODLVL = 1v6
- Leave the lock bits alone for now
Step 4. Use xboot-boot.hex for programming. Do not use xboot.hex as it's org'ed in the wrong place (0 instead of 0x30000)
THe boot loader is Alex Forencich's xboot which can be found in the xboot directory in the main TinyG git tree. This xboot has the settings and modifications for use on TinyG. (You can safely ignore the xmega_boot directory.)
The xboot project has been set up under both AVRStudio4 and Atmel Studio6 (Windows only). Project files are the xboot.* files in the github TinyG/support dir. Move these to your project directory then click on xboot.aps to invoke 4, xboot.atsln for 6. Note that both of these projects use an external Makefile and therefore have makefile generation disabled. You do not want to turn in internal makefile or you will clobber the real Makefile.
The makefile can also be compiled from the command line but Kevin got an infinite loop in Linux. It worked under Windows.