Veranstaltungsreihe/Mikrocontroller Workshop
Dieses Projekt wird fortgeführt in der Bastelecke. Dort findet ihr auch Codebeispiele und anderes.
Facts
- Was: Microcontroller Workshop
- Wann: Dienstag, 14.11.2006 19:00 und Donnerstag, 16.11.2006 19:00
- Wo: Im Labor
- Wer: Peter Fuhrmann
Sammelbestellung
Ich mache eine Sammelbestellung für die benötigten Bauteile. Wer daran teilnehmen möchte, der überweist mir bitte so schnell wie möglich 15 Euro für das Material, und schreibt mir eine Email. Ich werde am Mittwoch, den 8.11. die Bestellung vornehmen, es eilt also. Das Material bringe ich dann zum Workshop mit.
Konto:
Peter Fuhrmann SEB Bank Gelsenkirchen BLZ: 42010111 KTO: 2800304800
Anmeldung
Bitte schickt mir eine email, wenn ihr teilnehmen wollt, damit ich die Teilnehmerzahl abschätzen kann.
email: tixiv (ät) das-labor.org
Trailer
In diesem Workshop werden wir zuerst ein minimales Microcontrollersystem mit einem Atmel AVR Controller auf einer Lochrasterplatine aufbauen, und dann in die Programmierung des Controllers mit dem AVR-gcc einsteigen.
Das [Laborboard] verwendet den ATmega32 Controller von Atmel. Der hat 32kByte Flash für das Programm und 2kByte RAM, und einen 1kByte EEPROM Speicher. Getaktet wird er mit 16MHz. Er hat 32 frei programmierbare I/O Pins, A/D wandler, und manch anderes nettes Feature. Man kann den Controller mit dem avr-gcc in C programmieren, wobei das aber auch noch ein bisschen was anderes ist, als wenn man für einen PC in C programmiert.
Der Workshop ist dieses mal auf 2 Tage aufgeteilt. Bei dem ersten Termin werde ich den Zusammenbau des Boards kurz erkären, und dann fangen wir damit an. Wir werden den Controller erstmal mit einem Spannungsregler und ein paar Leuchtdioden und Tastern auf eine Platine löten. Das ergibt dann die Basis des ausbaubaren Microcontrollersystems. Das System kann man dann später, je nach Verwendung, mit der nötigen Peripherie ergänzen. Da ist sehr viel machbar, und ich kann dabei auch gerne Hilfestellung geben.
Bei dem zweiten Termin werden wir dann den Aufbau des Boards zu Ende führen, und uns dann die avr-gcc toolchain ansehen. Wir werden damit ein kleines Testprogramm in C für das Microcontrollersystem schreiben und compilieren, und das dann auf den Controller laden.
Der Workshop ist also sozusagen ein "getting started with microcontrollers workshop". Er soll einen schnellen Einstieg in die Welt der Microcontroller ermöglichen.
Jeder Teilnehmer sollte selber sein Werkzeug mitbringen. Wir brauchen die üblichen Sachen zum Platinen löten:
- Lötkolben
- Lötzinn
- Seitenschneider
- Spitzzange
- Schaltdraht
- Bohrer
- Messer
- Multimeter
Wenn ihr was davon nicht habt, ist das nicht so schlimm. Man kann sich ja zur Not mit dem Werkzeug abwechseln.
Benötigte Bauteile
Die Bauteilliste für das Board findet ihr jetzt auf einer eigenen Wiki-Seite.
Zusätzlich könnte man an das System noch ein LCD mit HD44780 Controller beliebiger Grösse, und/oder ein Tastenfeld anschliessen. Tastenfelder habe ich bei Reichelt leider nicht gefunden, und bei Displays ist die Auswahl ziemlich gross. Desswegen hier keine Bestellnummern. Eine günstige Art, an ein Display zukommen ist es, ein altes Faxgerät zu schlachten. Die haben eigentlich immer solche Displays. (und Tasten sind auch noch jede menge drinn...) In anderen Geräten findet man auch schonmal solche Displays.
Die Bauteile könnt ihr bei Reichelt Elektronik bestellen. Ich mache auch eine Sammelbestellung (siehe oben)
Links
Wer mit bastelt kann sich doch schonmal folgendes zu gemuete fuehren:
- Toolchain installieren (Jetzt der richtige Link): http://www.nongnu.org/avr-libc/user-manual/install_tools.html
- ATmega32 Data Sheet: http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf
- Manual der avr-libc: http://www.nongnu.org/avr-libc/user-manual/index.html
Toolchain-bauen
Was ist eine Toolchain?
Als Toolchain bezeichnet man eine Sammlung an Programmen (Tools) mit denen man für einen bestimmten Prozessor Software übersetzen kann. Normalerweise umfasst die Toolchain einen Compiler (gcc), Assembler (gas) und Linker (ld) dazu kommen meist noch die Standard-Librarys (libc).
Toolchain bauen für Gentoo-Linux
Es wird im folgenden davon ausgegangen, dass du bereits root bist
emerge crossdev
Evtl. müsst ihr in die /etc/make.conf noch die Zeile PORTDIR_OVERLAY="/usr/local/portage" einfügen und das entsprechende Verzeichnis anlegen (mkdir -p /usr/local/portage)
crossdev -t avr
und zurücklehnen, denn das dauert ein bischen.
Du solltest nun einen Compiler für den avr haben (avr-gcc).
Programm in den Controller laden
Um ein Programm in den Controller zu laden, brauchst Du ein .hex File, dass Dir der Compiler erzeugt. Wie das genau geht, steht in der avr-libc Dokumentation(siehe Link). Das HEX File ist der Maschinencode, der in das Flash des Controller geladen werden kann. Um das file hoch zu laden benutze:
parallel
uisp -dprog=bsd --erase uisp -dprog=bsd --upload if=file.hex oder uisp -dprog=bsd --erase --upload if=file.hex
Wenn die mittleren 4 LED's nicht gehen, dann liegt das wahrscheinlich daran, dass das jtag debugging aktiv ist, was diese 4 Pins benutzt. Um das aus zu schalten kann man uisp den Parameter --wr_fuse_h=0xD9 geben. Achtung! Setzten der Fuses auf dumme Werte kann den Controller unbrauchbar machen - also nur verstellen, wenn ihr wisst, was ihr tut!!!
Demo Programme
Diverse kleine Demoprogramme (z.B. LED-Test) gibt es im Subversion unter http://roulette.das-labor.org/svnview/microcontroller/src-atmel/tests