When this idea of introducing AVR Microcontroller as a new course of Embedded Hardware Design was formulated by Prof RN Biswas based on my request that IIIT already has a legacy of AVR in robotics, so it was required to have a platform which which make this exercise of teaching and doing Lab Experiment on AVR a reality.
Prof RNB is very particular about courses and he takes care that they are structured properly and with indepth planning.
I was already involved in designing the AVR Kits for Robocamp at that time and after seeing its design, he wanted a new design in which only PORTs interconnections and USB link to Laptop is present, so that the breadboarding part is done hands on by the students.
Finally after making lots of layouts of a kit wired around ATMega16 and after taking care o lot of issues, this was the final design of AVR USB Bootloader Kit.
1. USB Bootloader enabled, directly dump your hex file into the controller.
2. LCD(removable) connections through Burg Strip.
3. Connections to all PORT pins.
4. ISP connector
5. Powered through USB cable or external power supply.
6. LCD can be powered independently.
7. Slide Switch for enabling Bootloader.
8. LEDs for power & bootloader condition.
9. On Board 12MHz crystal.
The USB Bootloader firmware was avliable at Thomas Fischl(of the USBasp fame) and from Objective Development.
The Bootloader is the USP of this kit.
This kit was designed keeping in mind the experiments that the Students of Embedded Hardware Design, Microprocessor Based System Design and Embedded Systems-1 for UG2, UG3 and PG1-VLSI respectively needs to perform using Atmega16 microcontroller.
The Silkscreen of the circuit is shown
and also the kit in being use during a stepper motor experiment
Back Side of PCB
The Resolution is pretty bad for want of a better Camera, anyways the size of PCB is 10*6 cm.
The base circuit of USB Bootloader Kit for ATmega8 is
For making the kit with ATmega16 , the following changes need to be done in the firmware:
1. Change the D+ & D- pins to what is convenient to your design , though keep D+ to INT0 to avoid major changes in firmware.
2. Change the Bootloader address in the firmware, the compiled code that comes is according to ATmega8 whose memory size is 8KB , so the starting address of the Bootloader program(size 2KB) is 6KB. In case of Atmega16 whose memory size is 16KB , the starting address of Bootloader code 14KB (16KB-2KB).
3. Compile the changed code.
4. Before dumping the Bootloader code into the controller, have a 12MHz crystal connected in circuit and do all three steps together ie setting Fuse bits(High and Low) and writting the Bootloader code.
5. We are using HIDBoot Utility to dump the code into the controller using ISP.
6. In case the procedure is not successful, you can try that again , since the controller does not get bricked.
The Pdf of Layout of USB Bootloader Kit
USB Bootloader Kit User Manual
- Any Queries are most welcome !!! :)