AVR Bootloader

Lite info om bootloader för AVR (Atmega 328p)

För att kompilera en bootloader behöver man ändra lite i Linkern för att det skall generera hex-filer med rätt adress. Default börjar programmet på adress 0x0, men bootloader ligger i slutet av minnet.
Atmel skriver minnes adresser i word inte byte, vilket kan göra detta lite krångligt.

Linkern behöver följande parameter:
-Wl,-section-start=.text=0x7c00
Där adressen är skriven i byte (tror jag)
För att översätta detta har jag gjort en liten lathund:


GCC använder Byte, medans Atmen använder Word.

Size WAddress WAddress dec WAdress B
512FE00650247F00
1024FC00645127E00
2048F800634887C00
4096F000614407800


-Wl,-section-start=.text=0x7E00 är ok för 256 bootloader

Debug av bootloader ser inte ut att fungera ?? kollar vidare.

Använd -g3 och (stabs + gdb extention), -O0 (no optimization).

H-Bridge calculations.

Bra länk för Gate resistor calc.

Bra länk för att minska turn-off time.

Switch time, 0,5 – 1% av cycle time.

För att kalkylera switchtiden kan man använda följande formel:
dt = (dVxC) /I
dt = switchtiden
dV = driver supply voltage
C = capacitance
I = Driver peak current

ex:
STP120NF10 (100V 110A) mosfet
C = 5200pF = 0,

IR2103:
I = 0,210A
dV = 12V