Labortagebuch Dezember 2012

 Elektronik-Labor  Notizen  Projekte  Labortagebuch

21.12.12: Treppenlicht-Automat


Jahrelang hat alles funktioniert, aber jetzt ist unser Treppenlichtautomat ausgefallen. Der Elektriker hat's in Ordnung gebracht. Der neue Automat macht nun ein Motorgeräusch, das es beim alten nicht gab. Messerscharfer Schluss: Der alte war elektronisch, der neue mechanisch, ein technischer Rückschritt. Da muss ich mal reinschauen! Und dann die Überraschung: Der alte Automat war auch mechanisch, und zwar noch trickreicher als ich es mir vorstellen konnte. Da gibt es einen kleinen Kolben mit einer gefetteten Lederdichtung, genau wie bei einer Fahrrad-Luftpumpe. Ein Zugmagnet zieht den Kolben etwas aus einem Zylinder. Nur langsam wird er mit einer Feder zurück gedrückt. Die Einstellschraube für die Leuchtdauer steuert die Luftzufuhr zum Zylinder. Unglaublich, dass sowas präzise funktioniert hat. Den Fehler habe ich übrigens auch gefunden, ein Drähtchen von der Magnetspule war an der Lötstelle gebrochen. "Hättest du doch selbst löten können" meinte meine Frau. Das ja, aber ich bekomme dieses mechanische Kunstwerk nicht mehr zusammen.


21.12.12: Lithium-LED-Blinkstecker



Vor vier Jahren habe ich im Labortagebuch (16.2.08: 4,5 V aus zwei Zellen) von einem ähnlichen LED-Anstecker berichtet, der mit unterschiedlichen Batterien bestückt war. Jetzt gab es anlässlich der der Fußballmeisterschaft wieder solche Anstecker mit blinkenden blauen und roten LEDs. Aber diesmal waren jeweils zwei 3-V-Lithium-Batterien eingelegt. Dazu auch noch Ersatzbatterien. Viel zu schade für den Fußball! Man kann damit z.B. den TPS-Controller betreiben, der im Ruhezustand bei 3 V unter 1 mA braucht.

11.12 12: COM-Einstellungen



Erweiterte Einstellungen für den FT232

Die serielle Schnittstelle hält immer wieder Überraschungen bereit. Z.B. geschehen mitunter merkwürdige Dinge, wenn ein USB/Seriell-Adapter angeschlossen wird oder wenn der PC hochfährt. Windows testet dann nämlich, ob eine bestimmte Art von Gerät angeschlossen ist, z.B. ein Modem oder eine Maus. Im Gerätemager findet man z.B. unter den erweiterten Einstellungen zur entsprechenden COM-Schnittstelle eine Option "Abschalten der Modemsteuerung beim Hochfahren des Geräts". Da habe ich jetzt mal ein Häkchen getestet, um solche Eigenmächtigkeiten zu unterbinden.

Ganz anders sieht dieses Fenster jedoch aus, wenn Sie eine normale RS232 oder einen anderen USB/Seriell-Wandler verwenden. Dass dieses Fenster mit den erweiterten Einstellungen sich je nach Hardware unterscheidet ist mir erst jetzt bewusst geworden. FTDI kümmert sich anscheinend besonders rege um die tatsächlich auftretenden Probleme, was man auch daran sieht, wie effektiv Treiber für neue Betriebssysteme entwickelt werden.



Erweiterte Einstellungen für eine Hardware-RS232


11.12 12: Installation eines FT232 unter Windows7, 64 Bit

Mein eigener PC hat noch ein 32-Bit-Betriebssystem, daher gibt es noch Überraschungen für mich, wenn ich auf die 64 Bit stoße, die heute bei den meisten neuen Rechnern üblich sind.. Kürzlich habe ich bei jemand ein ES-M32 an einem relativ neuen Rechner mit 64-Bit-Systgem installiert. Ich hatte zwar einen Treiber dabei, den ich auch in meinem Franzis-Lernpaket  Mikrocontroller-Programmierung in Bascom und C verwende. Aber damit hatte ich keinen Erfolg. Also ins Internet, auf der Seite von FDTI, dort fand sich der passende Treiber. Laden, Installieren, alles ohne Probleme. Nun wurde eine virtuelle COM-Schnittstelle gebildet, alles prima.

Jetzt fiel mir ein, das hatten wir doch schon mal. Zur  Vorbereitung auf die Elektor Live und einen Vortrag zum Elektor Strahlenmesser hat mir mein Sohn  geholfen, einen Laptop vorzubereiten, auch mit Windows7, 64 Bit. Elektor hat bei dem Projekt ebenfalls einen FT232R im Einsatz. Und das ging völlig glatt. Wie hast du das damals gemacht, habe ich ihn jetzt gefragt. Einfach Windows machen lassen, hat er gesagt. der Rechner geht dann selbst ins Internet, findet den Treiber auf der FTDI-Seite und installiert ihn. Das Treiber-Management ist in Windows7 stark verbessert worden. Das klappt bei vielen Geräten so. Einfach anschließen, und automatisch installieren lassen. 

In dem Zusammenhang möchte ich mal ein großes Lob an die Leute von FTDI loswerden. Wenn man einen Chip dieser Firma einsetzt, ist man Treiber-mäßig immer auf der richtigen Seite. Ich höre das auch von anderen. Manch ein Konkurrenzprodukt ist billiger und taucht deshalb hier und da in preiswerten USB/Seriell-Wandlern auf. Aber vielfach gibt es dann Treiber-Probleme, die kaum zu lösen sind. FTDI scheint derzeit die einzige Firma zu sein, die sich wirklich um die Treiber kümmert.

Und es geht auch unter Linux. Thorsten Staerk hat dazu interesante Details:
http://www.staerk.de/thorsten/Ftdi

6.12.12: ATmega32-Frequenzteiler

Das Ziel war es, den Timer 2 des Mega32 im ES-M32 dazu zu bewegen, ein Frequenzteiler zu werden und ein Rechtecksignal möglichst hoher Freqeunz am Pin PD7 (OC2) auszugeben. Das Datenblatt sagt viel darüber, aber genau die richtige Lösung habe ich nicht gefunden. Die Suche im Internet hat eigentlich auch nur erbracht, dass andere Leute ebenfalls auf der Suche danach waren. Also Datenblatt lesen, Registereinstellungen ändern, Bascom-Programm kompilieren, Programm laden , Testen. Und das immer wieder, ohne irgendeinen Erfolg. So dreht man sich im Kreis!



Dann kam mir die Idee: Soll der Mega32 sich doch selbst programmieren! Eigentlich ging es nur um die richtige Einstellung im Register TCC2, wobei die unteren drei Bits schon klar waren und zum Vorteiler gehören. Also soll der Controller bitteschön alle anderen Bits der Reihe nach durchprobieren. Jeder Versuch dauert zwei Sekunden, die ganze Versuchsreihe eine Minute. Ich schaue einfach nur auf den Oszi und warte, dass die höchste Frequenz am Pin OC2 erscheint. Dann drücke auf den Taster S1 des ES-M32 und kann in aller Ruhe am LCD die passende Registereinstellung ablesen. 

Dim I As Byte
Dim R As Byte
Do
For I = 1 To 31
R = I * 8 'Bits 3...7 durchtesten
R = R + 3 'Vorteiler /32
Tccr2 = R 'neuer Registerinhalt
Ocr2 = 3
Cls
Locate 1 , 1
Lcd R 'LCD-Ausgabe Tccr2
Waitms 2000
If S1 = 0 Then 'Anhalten per Tastendruck
Do
Waitms 50
Loop Until S1 = 1
End If
Next I
Loop

Ergebnis: Entweder 27 oder 155 ist die richte Lösung! Dass das höchste Bit7 egal ist, ging schon aus dem Datenblatt hervor, man soll es aber bitte setzen. Also sehen die gesuchten Einstellungen jetzt so aus:

 Tccr2 = &B10011001     'Vorteiler 1                                   
 Ocr2 = 1                         ' 11 MHz / 4 = 2,7 Mhz!  

Der OCR2-Wert bestimmt das Teilerverhältnis nach dem Muster f = Xtal / (OCR2+1). Ob es wohl auch mit OCR2=0 geht?

 Tccr2 = &B10011001     'Vorteiler 1                                   
 Ocr2 = 0                         ' 11 MHz / 2 = 5,5 Mhz!  

Heureka! Die Quarzfrequenz wird durch 2 geteilt! Das ist sogar noch besser als ich gedacht hätte.  Mit diesem Ergebnis kann man das Datenblatt ja noch mal genauer lesen. Und jetzt macht es Sinn! Aber selbst wäre ich nie darauf gekommen. Diese Lösung hat der Mega32 selbst gefunden:

FOC2=1                             Force Output Compare
WGM21=1, WGM20=0     Waveform Generation Mode: CTC
COM21=0, COM20=0       Compare Output Mode: Toggle OC2 on compare match


 Elektronik-Labor  Notizen  Projekte  Labortagebuch