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

From Free Pascal wiki
Jump to navigationJump to search
m (→‎ATmega328p: Schreibfehler korrigieren)
 
(43 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Translate}}
+
{{Set up Lazarus for ATmega and ATTiny}}
 +
 
 
=Lazarus für ATmega und ATTiny einrichten=
 
=Lazarus für ATmega und ATTiny einrichten=
  
 
==Generelles zu den nackten AVRs==
 
==Generelles zu den nackten AVRs==
Voraussetzung ist, das man '''Einstieg Lazarus und Arduino''' durchgelesen hat.  http://wiki.freepascal.org/Einstieg_Lazarus_und_Arduino.
+
Voraussetzung ist, das man '''Einstieg Lazarus und Arduino''' durchgelesen hat:  
 +
* [[AVR Embedded Tutorial - Entry Lazarus and Arduino/de|Einstieg Lazarus und Arduino]] - Wie richte ich Lazarus für den Arduino ein..
  
 
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.
 
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.
Line 10: Line 12:
 
Die Vorgehensweise ist fast gleich wie bei dem Arduino due/nano. Hier die Unterschiede:
 
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:
+
Die Arduino-IDE muss zuerst für nackte ATmega328 vorbereitet werden. Dazu die Arduino-IDE öffnen und folgendes einstellen:<br><br>'''ATmega328p Bibliothek laden:'''
ATmega328p Bibiothek laden:
+
* ''"Datei --> Voreinstellungen --> Einstellungen --> Ausführliche Ausgabe während:"'' - Setzte Haken bei ''Hochladen''.
* ''Datei/Voreinstellungen/Einstellungen/Ausführliche Ausgabe während:'' Setzt dort den Haken bei ''Hochladen''.
+
* ''"Datei --> Voreinstellungen --> Einstellungen --> Zusätzliche Boardverwalter-URLs:"'' - Auf den kleinen Button mit 2 Fenstern klicken.<br>Zeile einfügen / ergänzen:
* Gleichzeitig unter ''Zusätliche Boardverwalter-URLs:'' auf den kleinen Button mit 2 Fenstern klicken.
+
** https://raw.githubusercontent.com/carlosefr/atmega/master/package_carlosefr_atmega_index.json
* Zeile https://raw.githubusercontent.com/carlosefr/atmega/master/package_carlosefr_atmega_index.json einfügen/ergänzen.
+
'''ATmega328p Bibliothek installieren:'''
ATmega328p Bibiothek installieren:
+
* ''"Werkzeuge --> Board: xxx/Boardverwalter"'' - ''Barebones ATmega Chips...'' suchen
* ''Werkzeuge/Board: xxx/Boardverwalter'', ''Barebones ATmega Chips...'' suchen
 
 
* Die neuste Version installieren.
 
* Die neuste Version installieren.
ATmega328p vorbereiten:
+
'''ATmega328p vorbereiten:'''
* ''Werkzeuge/Board:/ATmega328/328p''
+
* ''"Werkzeuge --> Board: --> ATmega328/328p"''
* ''Werkzeuge/Processor/ATmega328p''
+
* ''"Werkzeuge --> Processor --> ATmega328p"''
* ''Werkzeuge/Clock'' der passende Takt. ( Beachten, ob man einen exteren Quarz hat. )
+
* ''"Werkzeuge --> Clock"'' - den passenden Takt. ( Beachten, ob man einen externen Quarz hat. )
* ''Werkzeuge/Port'' USB wählen.
+
* ''"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 --> Programmer --> Ardunino as ISP"'' oder ''"Werkzeuge --> Programmer --> aspUSB"'' - Genaueres hier:
* ''Werkzeuge/Bootloader brennen''
+
** [[AVR Embedded Tutorial - Various programmers/de#Programmieren über ISP|AVR ISP-Programmer]]
 +
* ''"Werkzeuge --> Bootloader brennen"''
 
Somit ist der ATmega328p für Lazarus vorbereitet.
 
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 bei Lazarus braucht.
 
Bei dieser Zeile kann man gucken welche Parameter man dann bei Lazarus braucht.
Bei mir sieht sieh so aus: <pre>/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</pre>
+
Bei mir sieht sie so aus: <pre>/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</pre>
  
Diese AVRDude-Zeile ist auch das einzige was man bei Lazarus anpassen muss. Siehe auch http://wiki.freepascal.org/Einstieg_Lazarus_und_Arduino.
+
Diese AVRDude-Zeile ist auch das einzige was man bei Lazarus anpassen muss. Siehe auch:
 +
* [[AVR Embedded Tutorial - Entry Lazarus and Arduino/de|Einstieg Lazarus und Arduino]].
  
==Andere ATmega==
+
==Weitere ATmega AVR==
Die Vorgehensweise ist fast gleich wie bei dem ATmega328p.
+
Die Vorgehensweise ist fast gleich wie bei dem ATmega328p.<br>
 
Die Unterschiede:
 
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.
+
* Passende '''json''' suchen und in der Boardverwaltung ergänzen:  
 +
** https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls
 
* Bei Lazarus die AVRDude-Zeile bei Compiler-Kommandos anpassen.
 
* 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... --> 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 identisch wie bei dem ATmega328p.<br>
 +
Es gibt ATmega welche zu einer anderen Familie gehören, so wie der ATmega2560, da muss man aber auch Lazarus mit FPCUdeluxe anpassen.
 +
 
 +
==ATmega2560 ( Arduino Mega )==
 +
Obwohl dies auch ein ATmega ist, hat er Unterschiede gegenüber des ATmega328.
 +
Die Vorgehensweise ist fast das selbe wie bei dem ATmega328.<br>Die Unterschiede:
  
Ansonsten ist es das selbe wie bei dem ATmega328p.
+
Wen man den ATmega2560  mit Lazarus programmieren will, muss man den Cross-Compiler anders einstellen.
 +
Dazu muss man bei fpcupdeluxe und {{keypress|Setup+}} diese Parameter abändern:
 +
* Cross Build Options Overide: '''-Cpavr6'''
 +
* Cross SubArch Overide: '''avr6'''
 +
Siehe auch nächsten Abschnitt.
  
==ATtinys==
+
==ATtiny==
Die Vorgehensweise ist fast gleich wie bei dem ATmega. Die Unterschiede:
+
Die Vorgehensweise ist fast gleich wie bei dem ATmega.<br>
 +
Die Unterschiede:
  
 
Wen man ATtiny mit Lazarus programmieren will, muss man den Cross-Compiler anders einstellen.
 
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:
+
Dazu muss man bei fpcupdeluxe und {{keypress|Setup+}} diese Parameter abändern:
 
* Cross Build Options Overide: '''-Cpavr25'''
 
* Cross Build Options Overide: '''-Cpavr25'''
 
* Cross SubArch Overide: '''avr25'''
 
* Cross SubArch Overide: '''avr25'''
 
Siehe auch nächsten Abschnitt.
 
Siehe auch nächsten Abschnitt.
  
==andere AVR==
+
==Andere AVR==
Folgende Werte sind geeignet bei '''[Setup+]''' für:
+
Folgende Werte sind geeignet bei {{keypress|Setup+}} für:
 
* 25 : ATtiny13, ATtinyx313, ATtinyx4, ATtinyx5.
 
* 25 : ATtiny13, ATtinyx313, ATtinyx4, ATtinyx5.
 
*  5 : ATmega128, ATmega328 ( Ardunio Uno/Nano ).
 
*  5 : ATmega128, ATmega328 ( Ardunio Uno/Nano ).
 
*  6 : ATmega2560 ( Arduino Mega )
 
*  6 : ATmega2560 ( Arduino Mega )
  
Hier eine Liste mit weitern Parametern für andere AVRs:
+
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>
+
* https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.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'''.
+
Dabei ist zu beachten, das nicht alle AVRs von FPC unterstützt werden.
 +
 
 +
==Arduino Due==
 +
Da der Due einen '''ARM''' und keinen '''AVR''' besitzt, muss dieser ähnlich wie ein STM32 eingerichtet werden.
 +
Siehe:
 +
*[[ARM Embedded Tutorial - Entry FPC and STM32/de|Einstieg STM32]] - Wie richte ich FPC / IDE (MSEide) ein um einen STM32F103C zu programmieren.
 +
Es kann der gleiche Crosscompiler wie für den '''STM32F103X8''' verwendet werden.
 +
Einzig im Project weicht dies ab:
 +
"Projekt --> Projekteinstellungen... --> Benutzerdefinierten Einstellungen --> Benutzerdefinierten Einstellungen noch '''-WpATSAM3X8E''' eintragen.
 +
Nur das Hochladen mit '''bossac''' hat bei mir nicht geklappt.
  
 
==Schlusswort==
 
==Schlusswort==
{{Note|'''Leider hat das Ganze ein Manko''', man muss für jede AVR-Familie, den Cross-Compiler umkompilieren !
+
Folgendes nicht vergessen:
Ein Lazarus für alle geht nicht. !}}
+
* ''"Projekt --> Projekteinstellungen... --> Konfiguration und Ziele --> Zielprozessor (-Cp):"'' ???
 +
 
 +
{{Note|'''Leider hat das Ganze ein Manko''':<br>Man muss für jede AVR-Familie, den Cross-Compiler um kompilieren !<br>
 +
Ein Lazarus für alle geht nicht !}}
 +
 
 +
== Siehe auch ==
 +
* Übersichtseite [[AVR Embedded Tutorial/de|AVR Embedded Tutorial]]
  
[[Category:AVR]] {{AutoCategory}}
+
Autor: [[User:Mathias|Mathias]]

Latest revision as of 19:44, 16 October 2021

Deutsch (de) English (en)

Lazarus für ATmega und ATTiny einrichten

Generelles zu den nackten AVRs

Voraussetzung ist, das man Einstieg Lazarus und Arduino durchgelesen hat:

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 Bibliothek laden:

ATmega328p Bibliothek installieren:

  • "Werkzeuge --> Board: xxx/Boardverwalter" - Barebones ATmega Chips... suchen
  • Die neuste Version installieren.

ATmega328p vorbereiten:

  • "Werkzeuge --> Board: --> ATmega328/328p"
  • "Werkzeuge --> Processor --> ATmega328p"
  • "Werkzeuge --> Clock" - den passenden Takt. ( Beachten, ob man einen externen Quarz hat. )
  • "Werkzeuge --> Port" - USB wählen.
  • "Werkzeuge --> Programmer --> Ardunino as ISP" oder "Werkzeuge --> Programmer --> aspUSB" - Genaueres hier:
  • "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 sie 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:

Weitere ATmega AVR

Die Vorgehensweise ist fast gleich wie bei dem ATmega328p.
Die Unterschiede:

  • Passende json suchen und in der Boardverwaltung ergänzen:
  • Bei Lazarus die AVRDude-Zeile bei Compiler-Kommandos anpassen.
  • "Projekt --> Projekteinstellungen... --> 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 identisch wie bei dem ATmega328p.
Es gibt ATmega welche zu einer anderen Familie gehören, so wie der ATmega2560, da muss man aber auch Lazarus mit FPCUdeluxe anpassen.

ATmega2560 ( Arduino Mega )

Obwohl dies auch ein ATmega ist, hat er Unterschiede gegenüber des ATmega328. Die Vorgehensweise ist fast das selbe 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 fpcupdeluxe und Setup+ diese Parameter abändern:

  • Cross Build Options Overide: -Cpavr6
  • Cross SubArch Overide: avr6

Siehe auch nächsten Abschnitt.

ATtiny

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 fpcupdeluxe 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:

Dabei ist zu beachten, das nicht alle AVRs von FPC unterstützt werden.

Arduino Due

Da der Due einen ARM und keinen AVR besitzt, muss dieser ähnlich wie ein STM32 eingerichtet werden. Siehe:

  • Einstieg STM32 - Wie richte ich FPC / IDE (MSEide) ein um einen STM32F103C zu programmieren.

Es kann der gleiche Crosscompiler wie für den STM32F103X8 verwendet werden. Einzig im Project weicht dies ab: "Projekt --> Projekteinstellungen... --> Benutzerdefinierten Einstellungen --> Benutzerdefinierten Einstellungen noch -WpATSAM3X8E eintragen. Nur das Hochladen mit bossac hat bei mir nicht geklappt.

Schlusswort

Folgendes nicht vergessen:

  • "Projekt --> Projekteinstellungen... --> Konfiguration und Ziele --> Zielprozessor (-Cp):" ???

Light bulb  Hinweis: Leider hat das Ganze ein Manko:
Man muss für jede AVR-Familie, den Cross-Compiler um kompilieren !

Ein Lazarus für alle geht nicht !

Siehe auch

Autor: Mathias