Arduino Atmega328p bootloader tutorial

14
Jonas Verstraete Arduino Atmega328p-pu bootloader. 1)Benodigdheden: -16Mhz kristal -22μF condensator -USB MINI-B socket -pin headers -3.3V, 150mA LDO voltage regulator SOT-23 -ftdi232rl chip of um232r om niet te moeten solderen. (usb converter naar rs232) -ftdi printplaat (ftdi232rl.tar.gz) -mini usb naar usb kabel -atmega328p-pu chip 2)solderen & verbinding. Als alles goed gesoldeerd is en de usb is verbonden met de computer zal de computer zien dat er een nieuw device verbonden is. Indien dit niet het geval is zal je nog eens moeten controleren of alle verbinden goed verbonden zijn of niet kortgesloten zijn. Als er kortsluiting is zal de LDO voltage regulator zeer warm worden. Indien dit het geval is het beter om een um232r te kopen. Dan ben je zeker van je verbindingen. Als de computer de ftdi232rl device herkent dan moet je hem nog configureren. Om dit te doen ga je naar deze website: http://www.ftdichip.com/Drivers/VCP.htm. Download 2.08.14 (32-bit indien je op een 32-bit system werkt) Unzip het bestand met vb. winrar.

description

een bootloader in een atmega328p werkend op 16 MHz steken met behulp van een ftdi-chip

Transcript of Arduino Atmega328p bootloader tutorial

Page 1: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Arduino Atmega328p-pu bootloader.

1)Benodigdheden:

-16Mhz kristal -22µF condensator -USB MINI-B socket -pin headers -3.3V, 150mA LDO voltage regulator SOT-23 -ftdi232rl chip of um232r om niet te moeten solderen. (usb converter naar rs232) -ftdi printplaat (ftdi232rl.tar.gz) -mini usb naar usb kabel -atmega328p-pu chip 2)solderen & verbinding. Als alles goed gesoldeerd is en de usb is verbonden met de computer zal de computer zien dat er een nieuw device verbonden is. Indien dit niet het geval is zal je nog eens moeten controleren of alle verbinden goed verbonden zijn of niet kortgesloten zijn. Als er kortsluiting is zal de LDO voltage regulator zeer warm worden. Indien dit het geval is het beter om een um232r te kopen. Dan ben je zeker van je verbindingen. Als de computer de ftdi232rl device herkent dan moet je hem nog configureren. Om dit te doen ga je naar deze website: http://www.ftdichip.com/Drivers/VCP.htm. Download 2.08.14 (32-bit indien je op een 32-bit system werkt)

Unzip het bestand met vb. winrar.

Page 2: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Ga dan naar start => controlpanel => system and security => device manager.

Klik dan op Universal Serial Bus Controllers=> rechtermuisknop update driver software..

Klik dan op “browse my computer for driver software”. Daarna klik je op browse en zoek je de map

waar je de drivers hebt ingeplaatst. Klik daarna op next.

Page 3: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Als alles goed gegaan is zal er op het scherm komen: The software for this device has been

succesfully installed. Ga daarna terug naar device manager. Klik op Port(COM&LPT) rechter muisknop

op de compoort=> update driver.

Klik dan op “browse my computer for driver software”. Daarna klik je op browse en zoek je de map

waar je de drivers hebt ingeplaatst. Klik daarna op next.

Page 4: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Als alles goed gegaan is zal er op het scherm komen: The software for this device has been

succesfully installed. Klik dan op properties in je device manager.

Klik dan op het tabblad: port settings. Check als de bauterate op 9600 staat. Klik dan op advanded.

Kies een compoort ene die nog niet in gebruik is vb COM9.

Page 5: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Klik daarna op Ok.

3)Hardware matige verbinding.

1)GND 20)CBUS3 2)3V3 19)CBUS2 3)GND 18)CBUS4 4)VCC 17)CTS 5)CBUS1 16)DCD 6)CBUS0 15)DSR 7)OSCO 14)GND 8)RTS 13)RI 9)DTR 12)RXD 10)TXD 11)VCCIO

Verbind de volgende I/O met elkaar.

-miso = 18 met CTS 17 -sck = 19 met DSR 15 -mosi = 17 met DCD 16 -reset = 1 met RI 13 -GND =22 met GND 1 -VCC en AVCC = 7;20 met VCC en VCCIO 4,14

4) De software

Download “avrdude-serjtag” FTDI bitbang AVR-Writer van deze website: http://o28.sischa.net/fanilcd/trac/browser/trunk/Material/FT232%20ISP/Tools%20und%20Treiber/serjtag-0.3.zip?rev=36&order=name

Page 6: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Sla dit bestand op onder C:\program files. Verwijder de screen folder onder de naam c:\program files\serjtag-0.3\avrdude-serjtag

Ga dan naar c:\program files\serjtag-0.3\avrdude-serjtag\binary en open het bestand avrdude.conf met wordpad.

Als avrdude.conf geopend is in wordpad zoek dan naar ft232r dit kan je het gemakkelijkste doen met

Ctrl f de drukken.

Page 7: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Vervang deze code(ft232rl) door de code hieronder. Deze code zijn de verbindingen die je maakt

tussen je FTDI232rl en de Atmega328p.

#arduino diecimila

programmer

id = "diecimila";

desc = "FT232R Synchronous BitBang";

type = ft245r;

miso = 3; # CTS X3(1)

sck = 5; # DSR X3(2)

mosi = 6; # DCD X3(3)

reset = 7; # RI X3(4)

;

programmer

id = "ft232r";

desc = "FT232R Synchronous BitBang";

type = ft245r;

miso = 1; # RxD

sck = 0; # RTS

mosi = 2; # TxD

reset = 4; # DTR

;

Sla dit bestand op onder de zelfde naam zodat de computer vraagt of u het bestand wil overschrijven

klik dan op ja.

5) De verbinding testen.

Check alle draad verbindingen nog eens vergeet de usb kabel niet aan te sluiten. Ga dan naar start en

typ bij zoeken cmd commant prompt.

Page 8: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Typ: cd c:\program files\serjtag-0.3\avrdude-serjtag\binary.

Typ daarna avrdude –c diecimila –P ft0 –p m328p –t –B 4800. Dit is om de verbinding testen tussen

de computer=>ftdi232rl=>atmega328p. Als alles goed verbonden is zou je dit op het scherm moeten

verkrijgen.

Indien dit niet het geval is zal je dit op het scherm verkrijgen de oorzaken kunnen zijn dat de

atmega328p verkeerd verbonden is. Of dat de atmega328p kapot is. Probeer de vorige stap opnieuw.

Typ daarna quit in.

Page 9: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

6)Schrijven van de fuse bits.

De fuses van de Atmega328p chip worden gebruikt om de microcontroller te configuren. Dit is nodig

om de chip te programmeren.

Eigenschappen van de chip

-hfuse = DA

-lfuse = FF

-efuse = 05

-unlock = 3F (stadaard van de fabrieks instellingen.)

-lock = 0F

Ga terug naar commant prompt. Typ de volgende instructie : avrdude –c diecimila –P ft0 –p m328p –t –B 4800. Tik daarna erase.

Het schrijven van de fuse bits.

Typ : w efuse 0 0x05

w hfuse 0 0xDA

w lfuse 0 0xFF

quit

Page 10: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

7) Burn de bootloader.

Download van de website http://arduino.cc/en/Main/Software de arduino software.

Installeer ook de drivers voor de arduino om dit te doen zie tutorial op deze website: http://arduino.cc/en/Guide/Windows. Ga naar deze computer en open de map waar je de arduino software hebt gedownload ga dan naar: arduino-1.0\hardware\arduino\bootloaders\atmega. Kopieer de bootloader met de naam: ATmegaBOOT_168_atmega328 en plak dit bestand in map: C:\Program Files\serjtag-0.3\avrdude-serjtag\binary.

Page 11: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Ga nu terug naar commant prompt en typ het volgende: avrdude -c diecimila -P ft0 -p m168 -U

flash:w:ATmegaBOOT_168_atmega328.hex.Dit krijg je dan op het scherm.

Page 12: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

8) Het schrijven van een lock bit.

Dit is om te voorkomen dat de bootloader zou overschreven worden.

Ga terug naar commant prompt. Typ avrdude -c diecimila -P ft0 -p m168 –t.

Daarna typ je w lock 0 0x0f

En dan op quit

9)Test van de atmega328p chip.

Haal nu de atmega uit je breadboard en steek hem in je arduino uno (let er op dat je hem niet

verkeerd steekt een uno is anders dan een diecimila). Verbind hem met je computer en start een

arduino sketch op.

Page 13: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Als de arduino verbonden is met de computer en led 13 pinkt kan je zien dat de bootloader goed

geconfigureerd is.

In de sketch klik je of file=>examples=>basics=>blink.

Ga dan naar tools=> serial port=> en kies je de juiste Com poort.

Klik dan bij tools=>board=>arduino duemilanove w/ATmega328

Page 14: Arduino Atmega328p bootloader tutorial

Jonas Verstraete

Upload dan het programma en het icon hieronder indien dit goed is werkt de bootloader.