Homepage von Peter Rachow Startseite - Home
Der Selbstbau-Tauchcomputer
Allgemeines
Forschung und Entwicklung: LCD-Anzeige
| Mikrocontroller | Software
| Sensoren | Gehäuse
| Erfahrungsberichte
Geräte: SBTC3
| SBTC4 | Datenmodem zum PC
| Simulator für Drucksensor

Der Mikrocontroller
ATMega32
1. Systembeschreibung
2.
Die Systemplatine
3.
Die ISP-Schnittstelle
Nachdem das
Display
ausführlich getestet und verstanden wurde, kann man sich
näher
mit dem Mikrocontroller selbst beschäftigen, der die Rechen-,
Mess-
und Steuerbefehle abarbeiten soll und das "Zentralorgan" des SBTC
darstellt.
Wir münden dann ein in die Platine des SBTC um ein
funktionsfähiges
Testgerät zu erarbeiten.
1.
Systembeschreibung
Der AVR-ATMega32-Controller
(MUC = micro controller unit, kurz uC) der Firma
ATMEL
,
der das Herzstück unseres Tauchcomputers bildet, besitzt u. a.
folgende
Eigenschaften:
- 32kByte
internes Flash-Memory
als Programm- und Datenspeicher, mehr als ausreichend für ein
umfangreiches
Dekompressionsprogramm.
- 1024
Byte EEPROM,
z. B. für Tauchgangsdaten wie das Tauchprofil,
Benutzereinstellungen
etc.
- 4 Ein-
und Ausgangsports
(8 Bit breit, Bezeichnungen A, B, C und D), die teilweise noch
fakultativ
für andere Aufgaben genutzt werden.
- integierte
serielle
Schnittstelle, RS-232 kompatibel, 0..5V-Pegel.
- integerierter
mehrkanaliger
AD-Wandler (10 Bit).
- ISP-programmierbar
("in-system-programming") über den Parallelport des PC, d. h. der
Controller kann auf der Systemplatine des Tauchcomputers verbleiben,
während
die Software aufgespielt wird
- Ca.
10.000 Schreibzyklen
auf dem Flashspeicher (lt. Datenblatt ),
100.000 EEPROM-Zyklen.
Der Atmel-AVR-Kontroller
benötigt sehr wenig externe Bauelemente, um ein funktionierendes
uC-System
bereit zu stellen: Eine Spannungsregelung (i. d. R. 5 V, "L"-Typen 3V),
evtl. einen Uhrenquarz (32.767 kHz) wenn man mit einem seiner 3 Timer
arbeiten
will (Timer2 für einen evtl. anzuwenden Powersave-Modus wie im
SBTC)
bzw. einen externen Quarzoszillator. Der uC arbeitet aber auch ohne
externen
Takt, da der uC einen recht präzisen internen Taktgenerator
besitzt.
Abschließend benötigt man einige Widerstände,
Kondensatoren
etc.
Ein weiterer
Vorteil
ist, dass diese Kontrollerfamilie (AVR- ATMega...) im Internet sehr gut
beschrieben wird, so dass an Informationen kein Mangel besteht. Google
hilft weiter.
Um sich etwas in
die Hardware einzuarbeiten, empfehle ich daher wärmstens z. B. das
hervorragend gemachte Tutorial auf
mikrocontroller.net
.
Dort gibt es weiterführende Links zu Hardware, Software und
Entwicklungsumgebungen
für die ATMEL-Kontroller, u. a. das
Datenblatt
das ATmega32
, die Dokumentation und den kostenlosen
GNU
AVR C-Compiler
etc. Eigentlich findet man dort alles, was man als
Hobbyelektroniker
über Mikrocontroller wissen muss.
2.
Die Systemplatine
Die Systemplatine
unseres SBTC ist im Prinzip ein einfaches Mikrocontroller-Testboard,
das
allerdings um verschiedene tauchcomputerspezifische Baugruppen
erweitert
wird.
Der Kern des
Systems
besteht wie beschrieben aus dem Mikrocontroller ATMega32. Der
Mikrocontroller
benötigt eine stabilisierte Speisespannung (VDD) von 5V, VDD an
PIN
10 (Reset) und ist dann einsatzbereit. Ergänzt wird er durch das
LCD-Display
,
die
Programmierschnittstelle
, den
Drucksensor
mit seinem Messverstärker, dem
Temperatursensor
,
einer Stromversorgung aus einem 9V-Nickel-Metallhydridakku und 2
Spannungsreglern.
Zusätzlich gibt es für die Bedienersteuerung 3 Taster, um die
Einstellung verschiedener Parameter vor und während des
Tauchganges
durchzuführen.
Hier nun die Gesamtschaltung
des SBTC:
Bild 1: Systemplatine
des SBTC in der Version für analogen Drucksensor
(Grafik ist verkleinert,
Schaltplan
in voller Größe
)
Anmerkungen
zur Schaltung:
Aktiviert
wird
der SBTC durch einen Reedkontakt mit einem von außen an das
Gehäuse
angelegten Dauermagneten. Hier benutze ich einen kleinen
stabförmigen
Magneten von Mükra-Elektronik, der seitlich am Gehäuse sitzt
und mit einem Gummiband verschiebbar ist, das um das gesamte
Gehäuse
herum liegt. Eine einfache und trotzdem praktikable Lösung, gut
bedienbar
auch mit Handschuhen. |
|
- Integriert
in die
Platine ist des Weiteren eine Ladebuchse, die an eine 12-V-Stromquelle
angeschlossen werden kann. Die Erzeugung des zur Ladung von NiCd- oder
NiMH-Akkus benötigten konstanten Ladestromes erfolgt durch die in
Serie geschaltete Lampe 12V/0,05A, die aufgrund ihrer
Kaltleitereigenschaften
eine hinreichend gleichbleibende Ladestromstärke ergibt.
- Der
ATmega32 ist
u. a. erhältlich im 40-poligen DIL-Gehäuse. Die Pinbelegung
des
Mikrocontrollers ist für diese Gehäusebauform wie folgt:
- Aufbauhinweis:
Am
praktibalsten erschien es mir, das Display über die Platine zu
setzen,
da hier der flächenbezogene Platzbedarf am geringsten war, d. h.
die
später druckbeaufschlagte Gehäusefläche wird minimiert.
- Es
empfiehlt sich,
das Display mit einer Mehrfachsteckerverbindung mit der Hauptplatine zu
verbinden, um beide Ebenen für Tests und Wartung trennen zu
können.
3.
Die ISP-Schnittstelle
Das, was man selbst
an Software erzeugt hat, muss in den Controller hineingeladen werden.
Dazu
wird der Mikrocontroller wird über die parallele Schnittstelle
(Druckerport)
eines PC programmiert. Ich verwende dazu das Programm
yaap
,
mit dem sich auch die sog. "Fusebits" des uC setzen lassen, also
insbesondere
die Taktrate des uC auf wahlweise 1,2, 4 oder 8 MHz einstellen
lässt.
Davon später mehr.
Die
ISP-Schnittstelle
benötigt zur Datenübertragung (Schreiben und Lesen des
Mikrocontroller)
lediglich 5 Leitungen vom Druckerport zum Mikrocontroller. Diese 5
Anschlüsse
haben folgende Bezeichnungen:
- SCK
(System Clock,
der Taktgeber, der vom PC bzw. der Übertragersoftware generiert
wird
und den Datenstrom synchronisiert)
- RESET
(Wird dieser
Pin 1 des Mikrocontroller auf Masse gelegt, so wird die
Übertragungsroutine
aktiv)
- MISO
(Master in, Slave
out, die Datenleitung vom Mikrocontroller zum PC)
- MOSI
(Master out,
Slave in, Daten vom PC zum Mikrocontroller)
- GND
(Ground, die Masseleitung)
Zur Informationsübertragung
verwendet man unter yaap am besten das einfache Interface, das der
Programmautor
Jesper Hansen vorschlägt. Es handelt sich um 4 Widerstände
(100
),
über die die Signale für die 4 oben bezeichneten Leitungen
SCK,
MOSI, MISO, und RESET geführt werden. Ein Schaltplan befindet sich
im Softwarepaket von Herrn Hansen als GIF-Datei.
Weiter zu
Teil
III
(Die Software)

Die SBTC-Seiten
Konzeption
|
LCD-Anzeige
|
Mikrocontroller
|
Software
|
Sensoren
|
Gehäuse
|
Erfahrungsberichte