Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
programmer [2014/01/24 15:31] wolfgangprogrammer [2016/07/05 10:52] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Direkte Programmierung mit Programmer ====== ====== Direkte Programmierung mit Programmer ======
  
-Mikrocontroller (u.a. auch die auf vielen Baugruppen verwendeten Atmel-Prozessoren) müssen vor der Benutzung mit einem Programmcode (Firmware) versehen werden. Es gibt verschiedene Methoden, eine Firmware in einen Mikrocontroller hineinzubringen, nachfolgend ist der Weg über die ISP-Schnittstelle beschrieben. Benötigt wird hierzu ein Gerät, welches diese Schnittstelle bedienen kann. Am unkompliziertesten für Atmel-Prozessoren hat sich der [[http://www.atmel.com/tools/avrispmkii.aspx|AVRISP MKII]] erwiesen. +Mikrocontroller (u.a. auch die auf vielen Baugruppen verwendeten Atmel-Prozessoren) müssen vor der Benutzung mit einem Programmcode (Firmware) versehen werden. Es gibt verschiedene Methoden, eine Firmware erstmals in einen Mikrocontroller hineinzubringen, nachfolgend ist der Weg über die ISP-Schnittstelle beschrieben. Benötigt wird hierzu ein Gerät, welches diese Schnittstelle bedienen kann. Am unkompliziertesten für Atmel-Prozessoren hat sich der [[http://www.atmel.com/tools/avrispmkii.aspx|AVRISP MKII]] erwiesen. 
  
-{{::pdi-kabel_am_gbmboost.jpg?200|}} +{{:avrisp_mkii.jpg?200|}} 
 + 
 +Da ich beim Programmieren der LightControl ein Problem damit hatte, den Pfostenstecker des Programmers in die PDI-Buchse der LightControl zu stecken - da war ein Wannenstecker im Weg - habe ich mir eine kleine "Verlängerung" gelötet, die aus einem 6-poligen Pfostenstecker und einer daran angelöteten 6-poligen Pfostenleiste besteht. Auf dem Bild kann man die Verlängerung sehen. 
 + 
 +Die Methode der direkten Programmierung kann man selbstverständlich auch bei der Aktualsierung der Baugruppe verwenden, die meisten Baugruppen unterstützen aber die [[update|Aktualisierung über die BiDiB-Tools]].
  
 ===== Anschluß Programmiergerät ===== ===== Anschluß Programmiergerät =====
  
-Um eine Firmware in einen AVR-Mikroprozessor zu laden, der bereits auf einer Platine verbaut ist, benutzt man die ISP-Schnittstelle. Das ist eine 6-polige Schnittstelle, die meistens in Form einer 2x3-poligen Stiftleiste auf der Platine vorhanden ist. Diese ISP-Schnittstelle verbindet man mit einem Programmiergerät. Das Programmiergerät hat außerdem einen USB-Anschluß, den man mit dem PC verbindet. Als letztes sollte man die Platine mit dem zu programmierenden Mikroprozessor mit Spannung versorgen.+Um eine Firmware in einen AVR-Mikroprozessor zu laden, der bereits auf einer Platine verbaut ist, benutzt man die ISP-Schnittstelle. Das ist eine 6-polige Schnittstelle, die meistens in Form einer 2x3-poligen Stiftleiste auf der Platine vorhanden ist. Diese ISP-Schnittstelle verbindet man mit einem Programmiergerät. Das Programmiergerät hat außerdem einen USB-Anschluß, den man mit dem PC verbindet. Als letztes sollte man die Platine mit dem zu programmierenden Mikroprozessor mit Spannung versorgen.\\ 
 + 
 +Hier zwei Beispiele für den Anschluss des ISP-Steckers:\\  
 +{{:mk_ii.jpg?400  |}}ISP am GBMBoost\\   
 +\\  
 +Wichtig ist, das die, hier rot eingekreiste LED, grün leuchtet. Wenn sie gelb leuchtet, steckt der Stecker falsch herum.\\  
 +{{:monitor:dcc-pola-isp.png|}}\\  Hier ist die ISP-Schnittstelle auf dem DCC-Pola rot markiert.
  
 ===== Programmiersoftware ===== ===== Programmiersoftware =====
  
-Nun braucht man noch Software, um die Firmware vom PC in den Mikroprozessor zu laden. Von Atmel gibt es dazu das [[http://www.atmel.com/microsite/atmel_studio6/|Atmel Studio]]. Das ist ein umfangreiches Entwicklungswerkzeug mit grafischer BenutzeroberflächeAndere bevorzugen jedoch [[http://www.nongnu.org/avrdude/|avrdude]], dass es für Linux und Windows gibt+Nun braucht man noch Software, um die Firmware vom PC in den Mikroprozessor zu laden. 
 + 
 +Dazu stehen mittlerweile einige gute Werkzeuge zur Verfügung. Es gibt umfangreiche Entwicklungswerkzeuge mit grafischer Benutzeroberfläche, aber auch schlanke Werkzeuge ohne unnötigen Ballast, die für verschiedene Betriebsysteme wie Linux, Windows und MacOS X geeignet sind. 
 + 
 +==== Atmel Studio 6 ==== 
 +Die neueste grafische Entwicklungsumgebung von Atmel ist das [[http://www.atmel.com/microsite/atmel_studio6/|Atmel Studio 6]]. Sie baut auf Microsofts Visual Studio auf und ist nur für Windows-Systeme geeignet. 
 + 
 +Eine ausführliche Beschreibung zur Einrichtung findet sich hier im Kapitel [[bidiboneentwicklungsumgebung|Entwicklungsumgebung BiDiBone Programmierung]] sowie eine Beschreibung für das Aufspielen der [[programmer:programmer_avrstudio|Firmware auf eine BiDiBOne-Baugruppe]]. 
 + 
 +==== AVR Studio 4 ====
  
-==== Programmierung mit avrstudio ====+Atmels ursprüngliche und sehr erfolgreiche Entwicklungswerkzeug ist AVR Studio 4.
  
 +Eine ausführliche Beschreibung findet sich auf den Seiten von Mikrocontroller.net
 +   *[[http://www.mikrocontroller.net/topic/316052#3420336|AVR Studio 4]]
 +   *[[http://www.mikrocontroller.net/articles/Atmel_Studio|Download]]
 Hier fehlt noch Text. Hier fehlt noch Text.
  
-==== Programmierung mit avrdude ====+==== Eclipse C/C++ ==== 
 + 
 +Auch die Integrierte Entwicklungsumgebung: [[http://www.eclipse.org/downloads/|Eclipse C/C++]] kann man in Zusammenarbeit mit avrdude (siehe unten [[programmer#AVRDUDE|AVRDUDE]]) zur Programmierung der Mikroprozessoren verwenden. 
 + 
 +Auf der Eclipse-Site stehen neben dem Grundpaket verschiedene Paket-Lösungen bereit. Für uns ist Eclipse C/C++ relevant, das wir von einem nahen Server herunterladen. Eclipse ist eine Java-Anwendung und wird in ein passendes Verzeichnis extrahiert, z.B. /library/eclipse4.3.2_cpp_64Bit oder C:\Programme\eclipse4.3.2_cpp_64Bit. Gestartet wird das Programm mit den üblichen Mitteln des verwendeten Betriebssystems (eclipse.exe, eclipse.app, ...). 
 + 
 +Eclipse ist u.A. für die Betriebsysteme Linux, Windows und MacOS X geeignet und benötigt Java als Unterbau. Für unseren Fall reicht eine so genannte "Standard Edition Runtime Environment (JRE)" ab Version 7 also [[http://www.oracle.com/technetwork/java/javase/downloads/index.html|JRE 7]], wie sie auf vielen Rechnern vorhanden sein dürfte. 
 + 
 +Ab Eclipse 4.3 (Kepler) benötigen wir nur noch ein Pug-In für den Zugriff auf unsere Hardware, z.B. [[http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin|AVR Eclipse Plugin]]. Darin sind alle benötigten Werkzeuge, wie [[programmer#AVRDUDE|AVRDUDE]] und die AVR-Toolchain enthalten. 
 + 
 +<WRAP center round box 80%> 
 +Für Windows-Systeme muss man die GNU-Werkzeuge separat laden, z.B. mit [[http://winavr.sourceforge.net/index.html|WinAVR]]. Zur Ansteuerung eines Programmers ist zusätzlich die [[http://sourceforge.net/apps/trac/libusb-win32/wiki|libusb]] notwendig (mit Filter bei gleichzeitiger Verwendung von Atmel AVR/Studio). 
 +</WRAP> 
 + 
 +Eine ausführliche Beschreibung für die weitere Einrichtung der IDE Eclipse findet sich hier im Kapitel [[bidiboneentwicklungsumgebung|Entwicklungsumgebung BiDiBone Programmierung]] bzw. [[bidiboneentwicklungsumgebung:eclipse_c_cpp|Eclipse C/C++]]. 
 + 
 + 
 +Weitere interessante Links: 
 +  * [[http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial|AVR-GCC-Tutorial (mikrocontroller.net)]] 
 +  * [[http://www.mikrocontroller.net/articles/AVR_Eclipse|AVR Eclipse (mikrocontroller.net)]] 
 +  * [[http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin|AVR eclipse Plugin]] 
 +  * [[http://avrhelp.mcselec.com/libusb.htm|libusb für AVR ISP mk II unter Windows]] 
 + 
 +==== AVRDUDE ==== 
 + 
 +Es ist jedoch auch möglich [[http://www.nongnu.org/avrdude/|avrdude]], dass es für Linux und Windows gibt, als schlankes Tool alleine zu nutzen.
  
 Meine Beispiele unten beziehen sich auf Linux. Für Windows läßt man einfach "sudo" am Anfang der Zeile weg und ersetzt den Namen des USB-Ports (Option -P) durch den entsprechenden COM-Port. Meine Beispiele unten beziehen sich auf Linux. Für Windows läßt man einfach "sudo" am Anfang der Zeile weg und ersetzt den Namen des USB-Ports (Option -P) durch den entsprechenden COM-Port.
Zeile 28: Zeile 75:
 === GBM16T === === GBM16T ===
  
-''sudo avrdude -v -P usb -c avrisp2 -p x128a1 -B10 -e -U flash:w:gbm16t.hex -U eeprom:w:gbm16t.eep''+{{:pdi-kabel_am_gbm16t.jpg?200|}} 
 + 
 +''sudo avrdude -v -P usb -c avrisp2 -p x128a1 -B10 -e -U flash:w:gbm16t.hex -U eeprom:w:gbm16t.eep -U fuse0:w:0xff:m -U fuse1:w:0xaa:m -U fuse2:w:0xba:m -U fuse4:w:0xff:m -U fuse5:w:0xeb:m''
  
 === GBMBoost === === GBMBoost ===
  
-''sudo avrdude -v -P usb -c avrisp2 -p x128a1 -B10 -e -U flash:w:gbmboost_master.hex -U eeprom:w:gbmboost_master.eep''+{{::pdi-kabel_am_gbmboost.jpg?200|}}  
 + 
 +''sudo avrdude -v -P usb -c avrisp2 -p x128a1 -B10 -e -U flash:w:gbmboost_master.hex -U eeprom:w:gbmboost_master.eep -U fuse0:w:0xff:m -U fuse1:w:0xaa:m -U fuse2:w:0xba:m -U fuse4:w:0xff:m -U fuse5:w:0xeb:m'' 
 === LightControl === === LightControl ===
  
-''sudo avrdude -v -P usb -c avrisp2 -p x128a1 -B10 -e -U flash:w:LightControl.hex -U eeprom:w:LightControl.eep''+{{:pdi-kabel_am_lightcontrol.jpg?200|}} 
 + 
 +''sudo avrdude -v -P usb -c avrisp2 -p x128a1 -B10 -e -U flash:w:LightControl.hex -U eeprom:w:LightControl.eep -U fuse0:w:0xff:m -U fuse1:w:0xaa:m -U fuse2:w:0xba:m -U fuse4:w:0xff:m -U fuse5:w:0xeb:m'' 
 === MoBaLiSt === === MoBaLiSt ===
 +
 +{{:isp-kabel_am_mobalist.jpg?200|}}
  
 ''sudo avrdude -v -P usb -c avrisp2 -p m32 -B10 -e -U flash:w:mobalist.hex -U eeprom:w:mobalist.eep'' ''sudo avrdude -v -P usb -c avrisp2 -p m32 -B10 -e -U flash:w:mobalist.hex -U eeprom:w:mobalist.eep''
 +
 === OpenDCC Z1 mit Xpressnet === === OpenDCC Z1 mit Xpressnet ===
  
Zeile 47: Zeile 105:
  
 ''avrdude -v -c avr911 -p m644p -P /dev/opendcc_z1 -U flash:w:OpenDCC_XP.hex -U eeprom:w:OpenDCC_XP.eep -b 19200'' ''avrdude -v -c avr911 -p m644p -P /dev/opendcc_z1 -U flash:w:OpenDCC_XP.hex -U eeprom:w:OpenDCC_XP.eep -b 19200''
 +
 === OpenDCC-Dekoder Version 1 === === OpenDCC-Dekoder Version 1 ===
  
 ''sudo avrdude -v -P usb -c dragon_isp -p t2313 -e -B10 -U lfuse:w:0xee:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m -U flash:w:OpenDecoder.hex -U eeprom:w:OpenDecoder.eep'' ''sudo avrdude -v -P usb -c dragon_isp -p t2313 -e -B10 -U lfuse:w:0xee:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m -U flash:w:OpenDecoder.hex -U eeprom:w:OpenDecoder.eep''
programmer.1390573919.txt.gz · Zuletzt geändert: 2016/07/05 10:48 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki