Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

programmer [2015/01/17 14:40]
Tilly [Anschluß Programmiergerät]
programmer [2016/07/05 10:52]
Zeile 1: Zeile 1:
-====== 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 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. ​ 
- 
-{{:​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 ===== 
- 
-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 ===== 
- 
-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 ==== 
- 
-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. 
- 
-==== 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. 
- 
-Für Linux-Benutzer muß ich wahrscheinlich nichts weiter erklären. Die Windows-Benutzer müssen nun ein cmd.exe starten und dort den Befehl (ohne sudo) eingeben. Die Firmwaredateien werden im aktuellen Verzeichnis erwartet, ansonsten muß man den vollständigen Pfad zu den Firmwaredateien angeben. 
-Tipp für Windowsanwender:​ Wenn man auf einen Ordner mit der rechten Maus klickt und dabei die Shifttaste gedrückt hält, erscheint im Kontextmenu die Auswahl '​Eingabeaufforderung im aktuellen Verzeichnis öffnen',​ das spart die lästige Pfadeingabe. 
- 
-Achtung: Auch wenn hier auf der Wikiseite der Befehl in mehreren Zeilen dargestellt wird, muß er immer in einer Zeile geschrieben werden! 
- 
-=== GBM16T === 
- 
-{{:​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''​ 
- 
-=== GBMBoost === 
- 
-{{::​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''​ 
- 
-=== LightControl === 
- 
-{{:​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''​ 
- 
-=== 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''​ 
- 
-=== OpenDCC Z1 mit Xpressnet === 
- 
-== udev-Regel == 
- 
-''​KERNEL=="​ttyUSB*",​ ATTRS{product}=="​USB-IF OpenDCC V1.2", SYMLINK+="​opendcc_z1"​ 
-''​ 
- 
-''​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 === 
- 
-''​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.txt · Zuletzt geändert: 2016/07/05 10:52 (Externe Bearbeitung)