Difference between revisions of "AVR Embedded Tutorial - Set up Lazarus for ATmega and ATTiny/de"

From Lazarus wiki
Jump to navigationJump to search
Line 11: Line 11:
  
 
Die Arduino-IDE muss zuerst für nackte ATmega328 vorbereitet werden. Dazu die Arduino-IDE öffnen und folgendes einstellen:
 
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''.
 
* ''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.
 
* 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.
 
* Zeile https://raw.githubusercontent.com/carlosefr/atmega/master/package_carlosefr_atmega_index.json einfügen/ergänzen.
Boardverwaltung öffnen: ''Werkzeuge/Board: xxx/Boardverwalter'', dort sucht man Barebones ATmega Chips.... und installiert dort die neuste Version.
+
ATmega328p Bibiothek installieren:
Dann kann man unter ''Werkzeuge'' die richtigen Parameter einstelln und den Bootloader brennen.
+
* ''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.
 
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 auch bei Lazarus braucht.
+
Bei dieser Zeile kann man gucken welche Parameter man dann bei Lazarus braucht.
 
Bei mir sieht sieh so aus: <code>/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</code>
 
Bei mir sieht sieh so aus: <code>/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</code>
  

Revision as of 18:38, 24 October 2017

Generelles zu den nackte 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: Hier wird beschrieben, wie es bei einem Atmga328p geht.

Die Arduino-IDE muss zuerst für nackte ATmega328 vorbereitet werden. Dazu die Arduino-IDE öffnen und folgendes einstellen: ATmega328p Bibiothek laden:

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 ATmega328. Die Unterschiede:

Ansonsten ist es das selbe wie bei dem ATmega328p.

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

Folgende Werte sind geeignet für

  • 25 : ATTiny13, ATTinyx313, ATTinyx4, ATTiny5.
  • 5 : ATmega128, ATmega328 (Ardunio Uno/Nano).

Hier eine Liste mit weitern Parametern für andere AVRs: http://www.atmel.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html

Leider hat das Ganze ein Manko, man muss für jede AVR-Familie, den Cross-Compiler umkompilieren ! Ein Lazarus für alle geht nicht.