Difference between revisions of "AVR Embedded Tutorial - Set up Lazarus for ATmega and ATTiny/de"
Line 68: | Line 68: | ||
* 6 : ATmega2560 ( Arduino Mega ) | * 6 : ATmega2560 ( Arduino Mega ) | ||
− | Hier eine Liste mit | + | Hier eine Liste mit weiteren Parametern für andere AVRs: |
http://www.atmel.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html .<br> | http://www.atmel.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html .<br> | ||
Wen 2 Werte angegeben sind, zB. ''avr2/avr25[1]'' hat die Erfahrung gezeigt, das man den höheren Wert nehmen muss, in diesem Beispiel ist dies '''25'''. | Wen 2 Werte angegeben sind, zB. ''avr2/avr25[1]'' hat die Erfahrung gezeigt, das man den höheren Wert nehmen muss, in diesem Beispiel ist dies '''25'''. |
Revision as of 18:23, 16 December 2017
Lazarus für ATmega und ATTiny einrichten
Generelles zu den nackten AVRs
Voraussetzung ist, das man Einstieg Lazarus und Arduino durchgelesen hat. http://wiki.freepascal.org/Einstieg_Lazarus_und_Arduino.
Da diese AVRs einen Bootloader brauchen, nimmt man dazu am besten die Arduino-IDE um diesen zu brennen. Gleichzeitig sieht man dort auch welche Parameter es braucht für den AVRDude-Aufruf.
ATmega328p
Die Vorgehensweise ist fast gleich wie bei dem Arduino due/nano. Hier die Unterschiede:
Die Arduino-IDE muss zuerst für nackte ATmega328 vorbereitet werden. Dazu die Arduino-IDE öffnen und folgendes einstellen: ATmega328p Bibiothek laden:
- Datei/Voreinstellungen/Einstellungen/Ausführliche Ausgabe während: Setzt dort den Haken bei Hochladen.
- Gleichzeitig unter Zusätliche Boardverwalter-URLs: auf den kleinen Button mit 2 Fenstern klicken.
- Zeile https://raw.githubusercontent.com/carlosefr/atmega/master/package_carlosefr_atmega_index.json einfügen/ergänzen.
ATmega328p Bibiothek installieren:
- Werkzeuge/Board: xxx/Boardverwalter, Barebones ATmega Chips... suchen
- Die neuste Version installieren.
ATmega328p vorbereiten:
- Werkzeuge/Board:/ATmega328/328p
- Werkzeuge/Processor/ATmega328p
- Werkzeuge/Clock der passende Takt. ( Beachten, ob man einen exteren Quarz hat. )
- Werkzeuge/Port USB wählen.
- Werkzeuge/Programmer/Ardunino as ISP Bei folgendem Programmer https://flazer.de/blog/14/arduino-atmel-flash-station , ansonsten anpassen.
- Werkzeuge/Bootloader brennen
Somit ist der ATmega328p für Lazarus vorbereitet.
Wen man dann den Sketch mit dem grünen Pfeil hoch lädt, bekommt man eine ausführliche Ausgabe. Ca. bei der 4. Zeile sieht man wie AVRDude aufgerufen wird. Bei dieser Zeile kann man gucken welche Parameter man dann bei Lazarus braucht.
Bei mir sieht sieh so aus:
/home/tux/Programme/arduino-1.8.5/hardware/tools/avr/bin/avrdude -C/home/tux/Programme/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/ttyUSB0 -b19200 -Uflash:w:Project1.hex:i
Diese AVRDude-Zeile ist auch das einzige was man bei Lazarus anpassen muss. Siehe auch http://wiki.freepascal.org/Einstieg_Lazarus_und_Arduino.
Andere ATmega
Die Vorgehensweise ist fast gleich wie bei dem ATmega328p. Die Unterschiede:
- Hier die passende json suchen: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls und bei Boardverwaltungergänzen.
- Bei Lazarus die AVRDude-Zeile bei Compiler-Kommandos anpassen.
- Unter Project/Projecteinstellungen.../Benutzerdefinierten Einstellungen/Benutzerdefinierten Einstellungen/Alle Einstellungen/-Wp<x>, den passenden ATmega auswählen. ( -Wp<x> ist ziemlich weit unten ).
- Projekt/Projekteinstellungen.../Konfiguration und Ziele/Zielprozessor (-Cp): AVR5
Ansonsten ist es das selbe wie bei dem ATmega328p.
ATmega2560 ( Arduino Mega )
Obwohl dies auch ein ATmega ist, hat er Unterschiede gegenüber des ATmega328. Die Vorgehensweise ist fast gleich wie bei dem ATmega328. Die Unterschiede:
Wen man den ATmega2560 mit Lazarus programmieren will, muss man den Cross-Compiler anders einstellen. Dazu muss man bei fpcupdelux und [Setup+] diese Parameter abändern:
- Cross Build Options Overide: -Cpavr6
- Cross SubArch Overide: avr6
Siehe auch nächsten Abschnitt.
ATtinys
Die Vorgehensweise ist fast gleich wie bei dem ATmega. Die Unterschiede:
Wen man ATtiny mit Lazarus programmieren will, muss man den Cross-Compiler anders einstellen. Dazu muss man bei fpcupdelux und [Setup+] diese Parameter abändern:
- Cross Build Options Overide: -Cpavr25
- Cross SubArch Overide: avr25
Siehe auch nächsten Abschnitt.
Andere AVR
Folgende Werte sind geeignet bei [Setup+] für:
- 25 : ATtiny13, ATtinyx313, ATtinyx4, ATtinyx5.
- 5 : ATmega128, ATmega328 ( Ardunio Uno/Nano ).
- 6 : ATmega2560 ( Arduino Mega )
Hier eine Liste mit weiteren Parametern für andere AVRs:
http://www.atmel.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html .
Wen 2 Werte angegeben sind, zB. avr2/avr25[1] hat die Erfahrung gezeigt, das man den höheren Wert nehmen muss, in diesem Beispiel ist dies 25.
Schlusswort
Folgendes nicht vergessen:
- Projekt/Projekteinstellungen.../Konfiguration und Ziele/Zielprozessor (-Cp): ???
Hinweis: Leider hat das Ganze ein Manko, man muss für jede AVR-Familie, den Cross-Compiler umkompilieren !
Ein Lazarus für alle geht nicht. !Siehe auch
- Übersichtseite AVR Embedded Tutorial/de