Veranstaltungsreihe/Mikrocontroller Workshop: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''Dieses Projekt wird fortgef�hrt in der [[Atmel-Laborboard | Bastelecke]]. Dort findet ihr auch Codebeispiele und anderes.'''
'''Dieses Projekt wird fortgeführt in der [[Atmel-Laborboard | Bastelecke]]. Dort findet ihr auch Codebeispiele und anderes.'''


==Facts==
==Facts==
Zeile 22: Zeile 22:




Das System 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.
Das System 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.


Bei dem Workshop werden wir den Controller erstmal mit einem Spannungsregler und ein paar Leuchtdioden auf eine Platine l�ten. Das ist dann zum experimentieren erstmal ausreichend, und ihr k�nnt das System 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 Workshop werden wir den Controller erstmal mit einem Spannungsregler und ein paar Leuchtdioden auf eine Platine löten. Das ist dann zum experimentieren erstmal ausreichend, und ihr könnt das System 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.


Nach dem Zusammenbau werden wir uns die avr-gcc toolchain ansehen, und damit ein kleines Testprogramm f�r das Microcontrollersystem compilieren, und das dann auf den Controller laden.
Nach dem Zusammenbau werden wir uns die avr-gcc toolchain ansehen, und damit ein kleines Testprogramm für das Microcontrollersystem 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.
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:
Jeder Teilnehmer sollte selber sein Werkzeug mitbringen. Wir brauchen die üblichen Sachen zum Platinen löten:
- L�tkolben
- Lötkolben
- L�tzinn
- Lötzinn
- Seitenschneider
- Seitenschneider
- Spitzzange
- Spitzzange
Zeile 39: Zeile 39:
- Messer
- Messer
- Multimeter
- Multimeter
Es schadet auch nicht, wenn ihr mal 2 L�tkolben oder Zangen mitbringt, f�r den Fall, das jemand anders irgendetwas nicht hat.
Es schadet auch nicht, wenn ihr mal 2 L�tkolben oder Zangen mitbringt, für den Fall, das jemand anders irgendetwas nicht hat.


==Ben�tigte Bauteile==
==Benötigte Bauteile==


Die [[LaborBoardTeile|Bauteilliste]] f�r das Board findet ihr jetzt auf einer eigenen Wiki-Seite.
Die [[LaborBoardTeile|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, in Druckern z.B.. Also wer sowas hat: Bitte mitbringen!
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, in Druckern z.B.. Also wer sowas hat: Bitte mitbringen!


Ich werde bei Reichelt Elektronik eine Sammelbestellung starten. Damit das alles auf jeden Fall rechtzeitig zum Workshop da ist, geht die Bestellung am Mitwoch Abend(8.6.) raus. Wer mitbestellen m�chte muss es mir also bis Mitwoch per mail (tixiv at gmxdotnet) mitteilen.
Ich werde bei Reichelt Elektronik eine Sammelbestellung starten. Damit das alles auf jeden Fall rechtzeitig zum Workshop da ist, geht die Bestellung am Mitwoch Abend(8.6.) raus. Wer mitbestellen m�chte muss es mir also bis Mitwoch per mail (tixiv at gmxdotnet) mitteilen.


==Toolchain-bauen==
==Toolchain-bauen==
===Was ist eine Toolchain?===
===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 (glibc).
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 (glibc).


===Toolchain bauen f�r Gentoo-Linux===
===Toolchain bauen für Gentoo-Linux===
Es wird im folgenden davon ausgegangen, dass du bereits ''root'' bist
Es wird im folgenden davon ausgegangen, dass du bereits ''root'' bist
#'''emerge crossdev'''
#'''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''')
##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.
#'''crossdev -t avr''' und zur�cklehnen, denn das dauert ein bischen.
Du solltest nun einen Compiler f�r den avr haben ('''avr-gcc''').
Du solltest nun einen Compiler f�r den avr haben ('''avr-gcc''').


==Programm in den Controller laden==
==Programm in den Controller laden==
Zeile 64: Zeile 64:
Um das file hoch zu laden benutze:
Um das file hoch zu laden benutze:


f�r seriell:
für seriell:


  uisp -dprog=dasa2 -dserial=/dev/dein/serial/port --erase
  uisp -dprog=dasa2 -dserial=/dev/dein/serial/port --erase
Zeile 75: Zeile 75:
----
----


f�r parallel:
für parallel:


  uisp -dprog=bsd --erase
  uisp -dprog=bsd --erase

Version vom 28. September 2005, 18:53 Uhr

Dieses Projekt wird fortgeführt in der Bastelecke. Dort findet ihr auch Codebeispiele und anderes.

Facts

  • Was: Microcontroller Workshop
  • Wann: Dienstag, 14.6.2005
  • Wo: Im Labor


Links

Wer mit bastelt moege sich doch schonmal folgendes zu gemuete fuehren:

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 System 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.

Bei dem Workshop werden wir den Controller erstmal mit einem Spannungsregler und ein paar Leuchtdioden auf eine Platine löten. Das ist dann zum experimentieren erstmal ausreichend, und ihr könnt das System 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.

Nach dem Zusammenbau werden wir uns die avr-gcc toolchain ansehen, und damit ein kleines Testprogramm für das Microcontrollersystem 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 Es schadet auch nicht, wenn ihr mal 2 L�tkolben oder Zangen mitbringt, für den Fall, das jemand anders irgendetwas nicht hat.

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, in Druckern z.B.. Also wer sowas hat: Bitte mitbringen!

Ich werde bei Reichelt Elektronik eine Sammelbestellung starten. Damit das alles auf jeden Fall rechtzeitig zum Workshop da ist, geht die Bestellung am Mitwoch Abend(8.6.) raus. Wer mitbestellen m�chte muss es mir also bis Mitwoch per mail (tixiv at gmxdotnet) mitteilen.

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 (glibc).

Toolchain bauen für Gentoo-Linux

Es wird im folgenden davon ausgegangen, dass du bereits root bist

  1. emerge crossdev
    1. 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)
  2. 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:

für seriell:

uisp -dprog=dasa2 -dserial=/dev/dein/serial/port --erase
uisp -dprog=dasa2 -dserial=/dev/dein/serial/port --upload if=file.hex

oder

uisp -dprog=dasa2 -dserial=/dev/dein/serial/port --erase --upload if=file.hex

für 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 Programm

Ein kleines Demoprogramm (inkl. Kurzanleitung)das kleine MUster mit den LEDs erzeugt gibt es im Subversion unter microcontroller/src/tests.