Mikrocontroller
Da dies ebenfalls eine meiner Lieblingsbeschäftigungen ist, gibt es in dieser Rubrik sehr viele Sachen als Angebot. Wir arbeiten in der Schule mit dem 80C535-Controller (8 Bit, Firma Siemens - Infineon) und verwenden zur Programmierung die wohl weltweit beste Software (jetzt: "µvision3") der Firma KEIL in München. Für fast alle Anwendungsfälle reicht dazu die kostenlose Testversion (mit maximal 2 Kilobyte Quellcode) aus, denn der C-Compiler optimiert fantastisch und sein Optimierungslevel kann jederzeit umgestellt werden. Hier in dieser Homepage steht nicht nur mein komplettes Mikrocontroller-Unterrichtsmanuskript zur Verfügung, sondern es finden sich auch eine große Menge an Beispielprogrammen in C und Assembler sowie etliche Projekte bis hin zur DCF77-Funkuhr und zur Real Time Clock. Und noch vieles andere dazu. Nacheinander werden nun die verschiedenen Sachen aufgelistet und immer ein Link für den Download zur Verfügung gestellt.Für viele Leute vielleicht interessant:
Am Montag, den 31. Juli 2006, habe ich für interessierte Kollegen einen Workshop zum Umgang mit dem Compuboard, der Keil-Software und den Zusatzplatinen in der EST abgehalten. Dazu gibt es ein hübsches 15-seitiges Manuskript mit einer Kurzbeschreibung jeder Platine sowie einem passenden kleinen Anwendungsprojekt (incl. PAP und C-Programm-Listing). Dieses Manuskript steht hier sowohl als eingescanntes WORD-Dokument wie auch als pdf-File zur Verfügung.Neu zum Thema "Display-Ansteuerung:
Wer schon mit dem LCD-Display gearbeitet hat, kennt die Datei "LCD_CTRL_new.c", mit der die ganze Übertragungsarbeit erledigt wird und die in das Projekt eingebunden werden muss. Für die Übertragung und Kommunikation selbst werden aber nur 7 der 8 Pins von Port P5 benötigt. Diese neue Datei "LCD_CTRL_aux.c" gestattet nun die völlig unabhängige Benutzung des übriggebliebenen Portpins P5^7 für beliebige Zwecke, ohne dass er durch den Displaybetrieb gestört wird.Neues Projekt: Sensor-Fernmessung über RS232
Als Abschluss des Schuljahres entstand noch ein interessantes Projekt zur Abrundung: der A-D-Wandler eines Microcontrollers mißt 5x pro Sekunde die Spannung an einem Sensor (...hier natürlich -- mit Hilfe unserer "Poti-Zusatzplatine" -- als Gleichspannung zwischen 0 und +5V einstellbar..) und sendet den Meßwert als Hexzahl zwischen 0x00 und 0xFF über die Serielle Schnittstelle zu einem zweiten Controller, an den ein LCD-Display an Port P5 angeschlossen ist. Der zweite Controller rechnet den empfangenen Hexwert wieder in eine Spannung im Bereich 0...+5V um und zeigt das Ergebnis auf dem Display an.µvision3.
Deshalb kann diese Software hier heruntergeladen werden und dazu gehört mein neues Tutorial (Genaue Beschreibung mit Inhaltsverzeichnis des µvision3-Tutorials siehe weiter unten auf dieser Seite).Ärger beim Betrieb des Compuboards mit Keil-µvision am USB-Port des PCs oder des Notebooks
Dieses Problem ist zum Glück -- nun auch für USB2.0 --- komplett gelöst. Lesen Sie hier nach, auf welche Weise.Meine Microcontroller-CD
Alle in dieser Rubrik angebotenen Unterlagen, Tutorials, Programme, Application Notes, Bestückungs-Unterlagen etc. habe ich auf eine "Microcontroller-CD" gepackt und in gezippter Form bereitgestellt.Unser Compuboard 80C535
Das verwendete Controllerboard (stammte ursprünglich von Elektor ("Compuboard 80C535"). Da es erstens die Platine nicht mehr gibt, zweitens das Board Fehler enthielt und drittens seinerzeit keine EMV- und Übersprech-Vorsorgen getroffen wurden, habe ich dieses Board im Rahmen einer Technikerarbeit völlig neu designen lassen und auf einen aktuellen Stand gebracht.Zusatzplatinen
Für die praktische Arbeit habe ich eine Reihe von Zusatzplatinen entwickelt, die dieselben Abmessungen wie das Controllerboard aufweisen. Damit können z. B. alle Pins eines Ports auf einzelne Telefonbuchsen geführt werden oder 8 kleine Potis zur Bereitstellung von Gleichspannungen zwischen 0 und +5V verwendet oder ein LCD-Display angeschlossen werden... und vieles mehr. Von jeder Platine wurde der Stromlaufplan, der Bestückungsplan und die Stückliste eingescannt -- sehen Sie sich die einzelnen Sachen ruhig durch.Es ist soweit:
Die alten Handskizzen bei den Unterlagen der Zusatzplatinen sind alle durch moderne CAD-pdf-Dokumente ersetzt (Danke, lieber Kollege Martin Merkel...). Folgende Dokumentationen sind verfügbar:Achtung, Achtung, Achtung!
Bei etlichen aufgebauten neuen D-A-Wandler-Platinen wurden die verwendeten SMD-ICs plötzlich sehr heiß und dadurch sogar zum Teil zerstört. Eine genaue Analyse zeigte, dass hierbei die Schaltung ins Schwingen kommt und so dieser unliebsame Effekt ausgelöst wird. Abhilfe bringen zwei zusätzliche Massebrücken (in Form von zwei kurzen Schaltdrahtstücken), mit denen die Platine nachgerüstet werden muss.NEU: Ein Digitalvoltmeter mit LCD-Display-Anzeige
In Teil 1 wird mit dem A-D-Wandler auf dem Controllerchip ein Digitalvoltmeter für den Gleichspannungs-Messbereich "0.....+5V" verwirklicht. Die gemessene Spannung wird in form eines leuchtenden Balkens aus einer LED-Kette anzeigt. In Teil zwei dient zur Anzeige des Ergebnisses ein LCD-Display, aber dazwischen liegt ein interessanter Weg von der Kalibrierung des Messbereiches bis hin zur Umcodierung des Messergebnisses (hexadezimal) nach BCD und anschließender ASCII-Ablage im Anzeige-Array (denn nur das wird vom Display verstanden).Ein Sinus-Rechteck-Generator mit Drucktastensteuerung und LCD-Display-Anzeige
Als Vorarbeit zu unserem gleich folgenden DSP-Projekt haben wir mit dem Controllerboard und der D-A-Wandlerplatine zunächst nur einen Sinus mit der Frequenz 50 Hz erzeugt. Weil das so schön lief, kam erst eine Drucktastensteuerung und anschließend noch eine Display-Anzeige dazu. Es gab immer mehr Ideen und deshalb geht das so weiter bis zur letzten Ausbaustufe (Sinus 50 Hz / 100 Hz / 200 Hz, dazu Rechteck 50 Hz / 100 Hz / 200 Hz und eine AUS-Taste .Einführung in die Digitale Signalverarbeitung über ein Microcontroller-Projekt
Nach einer (hoffentlich) leicht verständlichen Einführung in das DSP-Prinzip und die zu beachtenden Effekte oder Probleme gehen wir auf ein Beispiel los, das jeder Elektroniker verstehen sollte: Wir realisieren das bekannte Verhalten eines RC-Tiefpasses an einer Rechteckspannung mit dem entsprechenden digitalen Gegenstück (= IIR-Filter), sehen uns die Zusammenhänge an und bauen schließlich alles in Form eines Laborversuches auf. Ein Controllerboard werkelt als umschaltbarer Sinus-Rechteck-Generator, ein zweites als Digitales Filter. Und dann sehen wir mal nach, ob diese Maschine dasselbe tut wie die analoge RC-Schaltung. Den Abschluss bilden Informationen über FIR- und IIR-Filter. Man kann sich auch alle C-Programm-Files holen, die dabei so im Laufe der Entwicklung entstanden sind. Nicht nur das Filterprogramm, sondern auch vom einfachen Sinusgenerator mit nur einer Frequenz bis zur Nobelversion mit 7 Drucktasten und LCD-Display ist alles dabei.Etwas für Modelleisenbahn- und Microcontroller-Fans:
Es folgt die komplette Projektbeschreibung eines PWM-Fahrtreglers samt neuer, selbstentwickelter H-Brücken-Motortreiber-Platine für Elektrische Modelleisenbahnen (eigentlich für meine Lieblingsspur "Märklin Miniclub" entwickelt, läuft aber mit allem, bis herauf zu Spur 1 und LGB). Natürlich in C programmiert, Optokoppler zur galvanischen Trennung von Controller- und Eisenbahnschaltkreis, Steuerung über 5 Drucktasten (Vorwärts / Rückwärts / gesteuertes Anhalten / Schneller / Langsamer) mit 7 LEDs zur Anzeige und genauer Beschreibung der physikalischen Vorgänge in der Schaltung bei PWM-Steuerung eines DC-Motors! Es kann die komplette 12-seitige Dokumentation samt Programmlisting und Schaltplan der Zusatzplatine heruntergeladen werden.Mini-Mäuse-Orgel
Für den Unterricht entstand eine kleine Orgel, die 8 Töne der C-Dur-Tonleiter spielen kann. Natürlich in "C" programmiert und als Projekt hier herunterzuladen. Und etwas Musik-Grundlagen sind auch noch dabei.Vom Blinker zur Sekunden-Stoppuhr
Es geht um den richtigen Umgang mit dem Timer 2 und da steigert sich der Schwierigkeitsgrad vom simplen Blinker bis hin zu einer kompletten Stoppuhr mit LCD-Display (Anzeige von Zehntelsekunden, Sekunden, Minuten, Stunden) sowie Start-, Stopp- und Löschtaste.Testprogramm zur Ausgabe des Zeichensatzes bei einem LCD-Display
Und wieder ist ein kleines Projekt neu dazugekommen. Wir arbeiten (Siehe Unterrichtsmanuskript!) sehr viel mit dem bekannten LCD-Display ("HD44780-kompatibel"), aber die Dinger werden überall auf dem Globus produziert und weisen deshalb Unterschiede in den Zeichensätzen auf. Deshalb gibt es hier zwei Programme, mit denen man sich diesen Zeichensatz ansehen kann.Mein µvision 3 - Tutorial
Dieses Tutorial dient zur kompletten Einarbeitung in µvision 3, sowohl in die Assembler- wie auch in die C-Programmierung. Und natürlich auch in die Simulation.Achtung: das letzte Update des µvision3-Tutorials erfolgte am 14. Januar 2006.
Bitte kontrollieren Sie nach, ob Sie noch mit einer bereits veralteten Version arbeiten.
Serielle Kommunikation mit "Hyperterminal"
Wollen Sie unter WINDOWS mit dem Controllerboard kommunizieren und dazu das schon bei Ihnen vorhandene WINDOWS-Dienstprogramm "Hyperterminal" einsetzen? Lesen Sie die kurze Anleitung zur Einrichtung einer solchen Kommunikation mit dem Hyperterminal.Fundamentals of RS232 - Communication
Benötigen Sie eine kurze und präzise Application Note (leider in Englisch..), um sich in die Grundlagen einer seriellen RS232-Verbindung und die wichtigsten Fachbegriffe einschließlich Pin-Bezeichnungen einzulesen? Hier ist etwas von der Firma DALLAS.Neunpoliges Nullmodem-Kabel
Hier kann man kurz nachsehen, wenn man die Verdrahtung eines Nullmodem-Kabels nicht mehr zusammenkriegt (das Bild wurde im Internet bei der "University of Guelph" in Kanada gefunden)."C" für Microcontroller
Wer sich schnell in die Mikrocontroller-Programmierung unter "C" einarbeiten möchte, hat sicher Freude an meinem kleinen Unterrichtsmanuskript (12 Seiten).Mein komplettes Unterrichtsmanuskript
Nun aber zum größten Brocken: meinem Unterrichtsmanuskript für das Fach "Microcontrollertechnik". Es ist im Augenblick in 7 Teile aufgeteilt, die dauernd überarbeitet und als pdf-Files zur Verfügung gestellt werden.Beispielprogramme
Nun eine kleine Sammlung an Assembler-Beispielprogrammen.Real Time Clock
Eine interessante und öfters gefragte Anwendung ist die Integration einer Echtzeituhr DS1216C (Firma Dallas / Maxim), die im XRAM-Sockel enthalten ist und das Controllerboard in keiner Weise stört.Achtung:
Die Uhr läuft nicht mit unserem neuen 80C535-Compuboard, da sie eine echte Harvard-Architektur bei den Speichern voraussetzt. Wir haben aber bei unserem Compuboard "von Neumann" und deshalb muss man auf ein anderes Board ausweichen. Dazu wurde schnell ein einfaches 8031-Board entwickelt (Unterlagen folgen gleich...). Mit dem Prototyp dieses 8051-Boards läuft die Uhr bereits seit Jahren problemlos....LCD-Display
Wer mit dem LCD-Display experimentieren will, kann sich hier eine 35 Seiten starke Application Note incl. Manual der Firma Seiko ansehen und herunterladen. Sie steht in eingescannter Form als Word-Dokument zur Verfügung.I2C-Bus
Wollen Sie sich in die Technik des I2C-Busses und seiner Realisierung auf 8051-Controllern einlesen? Dazu gibt es die hübsche Application Note Nr. 476 der Firma INTEL, die das sehr gut darstellt.HEX-Editor
Ganz neu: aus dem Internet stammt dieser nette, kleine HEX-Editor, mit dem man z. B. fertige Programmfiles oder unser Monitorprogramm in HEX-Form etwas genauer analysieren kann.Final World of the 8051
Vor Jahren hat die Firma Keil auf der Test-CD für µvision1 ein 255 Seiten starkes Lehrbuch zur C- und Assemblerprogrammierung des 8051 (mit dem Schwerpunkt auf "C") gratis mitgeliefert. Es verschwand plötzlich wieder, aber es ist doch so interessant und voller Informationen, dass ich es zum Download reinstelle.