Herzlich Willkommen auf Alwin Lencks Homepage
...
AVR-ALE-Testboard in THT-Version
Die Schaltung - Ursprung, Abwandlungen, Ergänzungen
Da ich wegen fehlender praktischer Erfahrung mit Mikrocontrollern unschlüssig war, welche Testbestandteile sinnvollerweise einzusetzen wären und darüber hinaus die Lieferung von Elektor extrem lange auf sich warten ließ, habe ich mich entschlossen, das ATM18-Projekt zu adaptieren und mich zunächst auf die Mikrocontroller ATmega8 bis ATmega328 zu beschränken.
Der Ursprung
Also schaute ich, was es schon Fertiges in dem Projekt gab: Zunächst die Beschreibungen für das "ATM18 Testboard" und das "LCD-Interface". Darüber hinaus die von "felac" entwickelte Lochstreifenplatine und im Hinterkopf das Starterkit STK500 der Firma ATMEL. Vom Aufbau des ATM18-Projekt-Equipments wollte ich aus Kompatibilitätsgründen nicht grundlegend abweichen, so dass nur eine Adaption der ATM18-Platinen in Frage kam: Umwandlung der SMD-Technik nach THT (Through Hole Technology). Die getestete Version kann mit den Links weiter unten herunter geladen werden. Eine zusammenfassende Beschreibung kann der PDF-Datei entnommen werden.
Die Abwandlungen
Nachdem die Entscheidung zugunsten der herkömmlichen Platinen-Technologie gefallen war, ergab sich die Größe fast von allein: Eine Europlatine - 4x so groß wie das Original. Es sollte nämlich ein Null-Kraft-Sockel für die zu testenden Mikrocontroller in Dual-In-Line-Ausführung (DIL) verwendet werden. Das LCD-Interface sollte ebenfalls noch Platz finden und darüber hinaus brauche ich gelegentlich "echte Relais" zur galvanischen Trennung von Schaltkreisen. Damit bin ich aber schon bei den Ergänzungen.
Die Ergänzungen
Alle bisher verwendeten Chips sind zum Glück auch noch als Dual In-Line (DIL) zu bekommen, so dass keine Schwierigkeiten auftauchten. Auch für die übrigen Bauteile ergaben sich keine Adaptionsschwierigkeiten. Äquivalenztypen lassen sich fast immer finden.
Die Stromversorgung
Für die Stromversorgung habe ich mich in Erwartung größerer "Stromverbraucher" für eine leistungsfähigere Version mit einem L78S05 entschieden. Und um die Verlustleistung nicht zu hoch werden zu lassen, benutze ich ein Steckernetzteil mit einer Vorregelung auf 7,5 Volt.
Anzahl LED's und Tasten
Wenn man eine leere Europlatine in den Abmessungen 160 x 100 mm vor sich hat, wachsen die Begehrlichkeiten: Also habe ich einen 2. Treiber ULN2003 mit weiteren 7 LED's und 2 weitere Tasten vorgesehen.
ISP-Schnittstelle
Was mir aber grundsätzlich fehlte, war die ISP10PIN-Schnittstelle zu meinem vorhandenen USB-ISP-Programmer ISPAVRU1. Der war so teuer (wegen der Einfuhr-Mehrwertsteuer) und ist so "schön", dass ich ihn nicht missen wollte.
Bild 1: Adapter ISP10 auf ISP6 und umgekehrt
Ein Adapter von ISP10PIN auf ISP6PIN wäre also auf jedem Fall fällig gewesen. (Anmerkung: Später hat sich herausgestellt, dass für den ISPAVRU1 keine geeigneten Treiber zu erhalten waren und das "Ding" zum Elektronik-Schrott degradiert werden musste!)
LCD-Backlight
Das Thema der Strombegrenzung für das LCD-Backlight ließ mir keine Ruhe, so dass ich die Lösung mit der für LED's notwendigen Konstant-Stromquelle (einstellbar auf den gewünschten Bereich) mittels LM317T fand. Den Vorschlag, die Steuerung auch dem Mikrocontroller anzuvertrauen, finde ich reizvoll aber ob meiner mangelnden Praxiserfahrung mit Mikrocontrollern für zu gewagt. Im Übrigen ist m.E. hierfür auch eine "Hardware-Lösung" besser geeignet:
Der steuerbare Spannungsregler LM317T läßt sich auch als Stromregler benutzen. Seine Regelung beruht auf eine rückgekoppelte Referenzspannung von genau 1,25 V. Ein Widerstand im Ausgangszweig, an dem bei dem gewünschten Treiberstrom (zwischen 80 und ca. 220 mA) genau 1,25 V abfallen, stellt die Lösung dar. Da die Spannungsdifferenz zwischen den vorhandenen +5 V und der Regelspannung von +1,25 V zu knapp ist, habe ich Jumper und Buchsen BL+ vorgesehen, um über K2 (+6 bis +9 V) eine getrennte Spannungsversorgung des Backlights vornehmen zu können.
Für 80 mA ergibt sich ein Widerstand R1 zu 1,25 V x 0,08 A gleich 15,625 Ohm (rechnerisch!)
Für 220 mA ergibt sich ein Widerstand R2 zu 1,25 V x 0,22 A gleich 5,68 Ohm (rechnerisch!)
Gewählt wurde ein Festwiderstand von 5,6 Ohm / 0,6 W und ein Einstellregler von 10 Ohm / 0,5 W, ergibt zusammen einen Widerstandsbereich zwischen 5,6 und 15,6 Ohm. Damit dürfte der Bereich für den Backlight-Strom von ca. 80 bis 220 mA ohne Änderung (!) des LCD-Moduls erfüllt werden können.
Wenn eine herkömmliche Lösung bevorzugt wird, kann der Regler LM317T auch entfallen. Die für Uin und Uout vorgesehenen Bohrungen erhalten dann eine Brücke, der Widerstand 5,6 Ohm wird ggf. erhöht (10 Ohm) und es wird der Jumper auf 5 V gesetzt.
Bild 2: LCD-Interface mit Backlight-Steuerung
Erzeugung des Enable-Signals für das LCD
Eine Besonderheit der Schaltung ist die rechtzeitige Erzeugung des Enable-Signals für das LCD. Damit die Übertragung zum LCD erst nach dem vollständigen Anliegen eines Nibbels an den Pins Q2 bis Q5 (Pin 5, Pin 6, Pin 7 und Pin 14) passiert, wird erst zu dem Zeitpunkt, an dem alle Bits im Shift-Register ihre korrekte Position erreicht haben, das Enable-Signal E aus dem in Q7 (Pin 12) erzeugten HIGH und einem gesonderten DATEN-Impuls durch ein logisches UND gebildet und an Pin 06 des LCD gesendet.
Dieses UND hat es offensichtlich "in sich". Denn wenn man die vielen Beiträge im ATM18-Forum zum Selbstbau des 2-Draht-LCD verfolgt, so wird man feststellen, dass immer wieder eine kryptische Anzeige bemängelt wird! Auch ich bin diesem Phänomen aufgesessen und habe das arme LCD beschimpft und als defekt verworfen. Erst eine neu aufgebaute Schaltung und die Original-Version von LCD und LCD-Modul von Elektor brachte die "Erleuchtung":
Das LCD mit dem Original-LCD-Modul lief sowohl am Original-Testboard als auch an dem von mir nachgebauten AVR-ALE-Testboard in THT-Version mit herkömmlichen Bauteilen einwandfrei! Aber: Das Original-LCD zeigte an den gesondert aufgebauten Schieberegister-Schaltungen ebenfalls nur durchlaufende Hieroglyphen und keine Zeilenumschaltung!
Das ließ mir keine Ruhe und so erinnerte ich mich, dass ich bereits vor über 4 Jahrzehnten mit logischen Gattern experimentiert hatte - zu einer Zeit also, als es noch keine TTL's gab - und man solche Schaltungen noch mit Dioden und Transistoren aufbauen musste. Und das typische UND-Gatter bestand da für jeden Eingang aus einer Diode und einem gemeinsamen Widerstand zwischen Ausgang und Spannungsversorgung, so dass ich die UND-Schaltung mit 2 Schottky-Dioden (BAT48) und einem Widerstand (8k2) gegen + 5 Volt realisiert habe und es funktionierte auf Anhieb!!! Wenn man sich die Ersatz-Schaltungen der TTL's anschaut, wird man auch feststellen, dass die Gatter aus einer entsprechenden Anzahl integrierter (Schottky-)Dioden oder äquivalenter Transistoren mit mehreren Emitter-Eingängen bestehen.
Dass die zweifelsfrei funktionierende Original-Schaltung auch ohne die 2. Diode läuft, ist vermutlich - aus meiner Sicht - nur so zu erklären, dass der 4k7-Widerstand und der Durchlass- und Sperrwiderstand der Schottky-Diode BAS70 sowie die Inpedanz des LCD optimal aufeinander abgestimmt sind, was mit "Bordmitteln" wohl nicht ohne Weiteres erreicht werden kann. Im Nachhinein ist meine Annahme dankenswerter Weise von dem Mitglied franky69 des ATM18-Projektes auch messtechnisch bestätigt worden (vielen Dank an Frank auch von dieser Stelle):
Hallo Alwin,
habe mich jetzt auch mit dem Thema beschäftigt und hatte die gleichen Probleme mit der Ansteuerung eines LCD-Modules. Nachdem ich die Erzeugung des Enable Signales nach deinen Vorgaben mit zwei Dioden realisiert habe, war der Fehler weg. Habe mir das ganze nochmals mit dem Oszi angesehen. Die abfallende Flanke am Enable Signal löst ja die Datenübernahme am LCD aus. Hierzu wird in einigen Datenblättern eine max. Abfallzeit von 25ns definiert. Diese wird mit der "Zwei-Dioden-Lösung" leicht erreicht. Mit der "Ein-Dioden-Lösung" liegt diese jedoch um ein vielfaches über diesen Grenzwerten. Ich denke hierdurch treten je nach Display bzw. Controller Funktionsprobleme auf.
Gruß Frank
Ansteuerung von Relais
Die beiden zusätzlich aufgenommenen Relais werden extern über Klemmen mit Spannung versorgt, um Print-Relais unterschiedlicher Spannung einsetzen zu können. Natürlich können auch passende Print-Relais mit den +5 V der Platine versorgt werden (z.B. TAKAMISAWA-Relais NA-5 W-K ). Aber Vorsicht: Wegen der Polarisierung dieses Relais musste das Layout der Platine extra angepasst werden!
Die Ansteuerung eines Relais erfolgt über Pin 2 von K16 bzw. K17 und einem Ausgang von einem der beiden Treiber ULN2003, der im Aktionsfall das Beinchen auf Low zieht und damit das Relais betätigt (vergl. Ansteuerung der LED's).
Bild 3: Ansteuerung von 2 Relais
RS-232-Schnittstelle
Im Bereich der elektronischen Übertragungstechnik trifft man für die serielle asynchrone Datenübertragung immer noch sehr häufig auf die sog. RS-232-Schnittstelle (im Volksmund auch V.24-Schnittstelle genannt). Diese arbeitet mit einem Pegel zwischen +3 Volt und +15 Volt für die logische Null (SPACE) und mit einem Pegel zwischen -3 Volt und -15 Volt für die logische Eins (MARK).
Wegen der unterschiedlichen Pegelstruktur der RS-232-Schnittstelle und dem AVR-System mit seinen +5 Volt ist eine Pegelanpassung notwendig, die auf einfache Weise mit dem Baustein MAX232A erreicht werden kann. Das A in der Chip-Bezeichnung bedeutet, dass die Spannungsverdoppelung (Voltage Doubler) und die Spannungsinvertierung (Voltage Inverter) des Bausteins mit 4 Kondensatoren von nur 100 nF erreicht werden kann (ohne das A werden Elkos von mindestens 1 µF benötigt).
Bild 4: Schaltbild für die RS-232-Schnittstelle
Die Anbindung an den Mikrocontroller erfolgt über Pin TXD und Pin RXD von K23 mit den entsprechenden Pins von K5 USART. Empfehlenswert ist es, Pin 1und Pin 6 von K20 am Jumper JP7 zu überbrücken und über K22 mit dem Treiberausgang von MAX232A Pin 14 zu verbinden und dessen Eingang Max232A Pin 11 auf Masse zu legen.
Pin 7 und Pin 8 von K20 sollten noch am Jumper JP6 überbrückt werden, so dass sich der PC selbst von RTS (Request to Send) auf CTS (Clear to Send) rückkoppelt.
AVR-ALE-Testboard - Das Schaltbild
Bild 5: Schaltung des AVR-ALE-Testboards
AVR-ALE-Testboard - Das Platinenlayout
Das Layout ist fertig für die Belichtung des fotobeschichteten Basismaterials. Die hier herunterladbare PDF-Datei ist ggf. nicht genau genug, um davon eine Folien-Vorlage zu erstellen. Besser ist es, die Original-CorelDRAW-Datei zu verwenden. Gegen Erstattung der Auslagen, wäre ich auch bereit, eine Folie mit dem Aussehen der folgenden Seite zu ertsellen:
Bild 6: Layout des AVR-ALE-Testboards
AVR-ALE-Testboard - Die Bestückungsseite
Bild 7: Bestückung des AVR-ALE-Testboards
AVR-ALE-Testboard - Beschaltung und Teileliste
Ggf. können Teile bei anderen Lieferanten preiswerter eingekauft werden!
Bild 8: Beschaltung des AVR-ALE-Testboards und Testboard-Teileliste als PDF-Datei (23 kB)