chrysophylax
Geomaster
Nachdem hier gerade der Winter nochmal so richtig tobt hab ich die Gelegenheit genutzt, und ein schon länger vor sich hindümpelndes Projekt mal halbwegs gedeckelt. Ich hab ja bei den 16Segmenten schon verkündet, dass ich die irgendwie nicht ganz so erotisch finde - und wenn überhaupt dann als Luxus-Variante der LED-Koordinatenanzeige gleich 5x7 DotMatrix nehmen würde.
Nunja, das hab ich dann auch mal getan. Damit sich das Platinen-Machen auch lohnt hab ich dann mal Rücksicht auf die Atmel-Anhängerschaft genommen und auf Basis von Teilen, die bei Reichelt zusammen weniger als 5€ kosten eine Schaltung zusammengeworfen, einen Prototypen auf Lochraster aufgebaut, und schonmal probehalber ein Layout auf eine Platine geworfen um zu schauen, dass das Ganze auch in Standard-Gehäuse (sprich: 12cm Petlinge) passt.
Die Stückliste ist relativ übersichtlich und wird wohl in Kürze zusammen mit der Komplettdoku wie üblich auf meiner Heimatseite zu finden sein:
Im Prozessor ist jetzt auch endlich mal (durch das mit Punktmatrix-Werten für 128 Zeichen relativ groß geratene Character-ROM) ein bißchen Inhalt drin. Die Software ist eine Erweiterung meiner Magnetbaken-Software auf das nötige 5spaltige multiplexen, alle dort bekannten Features (per Jumper deaktivierbarer Lebenszeichen-Blitz, Ausgabe Auslösungszähler in Hex) sind dementsprechend drin geblieben. Zusätzlich sind noch ein paar neue Features dazugekommen:
- Die DotMatrix-Bake kann ihre Texte über ein Konfigurationsbit auch automatisch "auf dem Kopf stehend" ausgeben - irgendwie hat ja jeder Mensch andere Vorlieben, wie rum er einen Petling montiert. Die entsprechende Mathematik zum Bits-umsortieren ist im Programm schon drin, so dass da für den Anwender kein Aufwand entsteht.
- Die Ansteuerung der Zeilen- und Spalten kann über 2 Konfigurationsbits auf jede beliebige der 4 möglichen Konfigurationen von Low- oder High-aktiv gewählt werden, je nachdem ob und wieviele externe Treiberstufen vorhanden sind und ob Anzeigen mit gemeinsamer Anode oder gemeinsamer Kathode genutzt werden. "Ursprünglich" wollte ich das hardcodiert auf genau meine Schaltungsvariante machen, aber dann kam mir irgendwann letztes Wochenende die Idee, wie unglaublich retro-kultig so eine DotMatrix-Anzeige wohl aussehen würde, wenn man statt der LEDs richtige Glühbirnchen in Sockeln auf einem Brett nimmt. Und da man dafür dann definitiv sowohl Spalten- als auch Zeilentreiber braucht, um den Strom zusammenzubekommen, hab ich deren Polarität mal komplett konfigurierbar gemacht.
Alles Flash, das nicht für Character ROM und Programm benutzt wird, steht automatisch für Ausgabetext zur Verfügung. Meine Test-Nachricht hat im Moment 8 Byte Länge, der Assembler wirft nach endgültigem Zusammenbau dann folgende Statistik aus:
, d.h. im Moment ist die maximal unterstützte Textlänge beim Tiny261A 628 Bytes. (2048Bytes Gesamt - (1428 Bytes used - 8 Bytes Demotext) = 628 Zeichen. Sollte für die meisten Nachrichtenlängen ausreichen, wenn nicht ist die Software aufwärtskompatibel und mit Änderung einer einzelnen Zeile werden dann daraus 628+2048=2676 Zeichen für einen AtTiny461A oder gar 628+2048+4096=6772 Zeichen beim AtTiny861A. Aber ich glaube, so lange Romane möchte kein Dosensucher lesen und keine Batterie speisen.
Die Software wird es wie immer in Dot-Deeh-Double-Youh-Style Assembler unter CC-BY-NC-SA geben, d.h. wer möchte kann diese beliebig nichtkommerziell nutzen und sich eigene Texte zusammenkonfigurieren. So sieht dann der Teil aus, in dem der Anwender nach belieben rumkonfigurieren kann:
Vermutlich könnte man sogar noch 5 Widerstände und 5 Transistoren für die Spaltentreiber einsparen wenn man nicht die Standard-Reichelt-Variante der Anzeige nimmt, sondern die erheblich stromsparender gezüchteten Versionen in hyper-rot und hyper-orange - leider hat Reichelt diese nicht. Ich hab mir je eine Handvoll von den Teilen bei Händlern, die nur an Gewerbe liefern organisiert - die sind wirklich schweinshell. Bei 20-30mA Stromaufnahme je nach angezeigtem Zeichen während die Anzeige läuft denkt man mit denen es brennt einem gleich die Augen aus.... Bestimmt gibt es auch irgendwelche schwindligen Krauter, die die Teile haben und auch an Hobbyisten liefern. Nur für die Menschen, die dann ähnliches Ergebnis mit völlig minimalistischer Hardware selbst auf Lochraster aufbauen wollen. Ich rate eher davon ab, weil 5 Widerstände und 5 Transistoren wirklich nichts kosten, aber ich möchte auch außer meinem eigenen Prototypen glaub ich keine Exemplare dieser Schaltung mehr auf Lochraster aufbauen . Der Ruhestrom der Schaltung dürfte nur minimal größer sein als bei der klassischen 7Segment-Magnetbake, ich schätze mal ich komme ohne Lebenszeichen-Blitz unter 1µA und werde mit Lebenszeichen-Blitz immer noch einstellig im µA-Bereich bleiben. Werde ich die Tage nochmal nachmessen....
Anbei noch ein paar Bilder als Serviervorschlag und 2 Videos bei Duröhre:
Prototyp an Logic-Analyzer,
Prototyp mit Testnachricht.
Man verzeihe mir die gruselige Bildqualität - mein Taschenknips macht tolle Pfotos, aber nur relativ schlechte bzw. kurze Videos.
chrysophylax.
Nunja, das hab ich dann auch mal getan. Damit sich das Platinen-Machen auch lohnt hab ich dann mal Rücksicht auf die Atmel-Anhängerschaft genommen und auf Basis von Teilen, die bei Reichelt zusammen weniger als 5€ kosten eine Schaltung zusammengeworfen, einen Prototypen auf Lochraster aufgebaut, und schonmal probehalber ein Layout auf eine Platine geworfen um zu schauen, dass das Ganze auch in Standard-Gehäuse (sprich: 12cm Petlinge) passt.
Die Stückliste ist relativ übersichtlich und wird wohl in Kürze zusammen mit der Komplettdoku wie üblich auf meiner Heimatseite zu finden sein:
fertig. Der Tiny24 hatte diesesmal zu wenige Portpins, der Tiny2313 hat keinen AD-Wandler (nötig für die bereits vorgesehene, aber noch nicht in Software implementierte Variante als Reaktivlicht), und die Megas waren mir zu protzig. Mehr Understatement bitte.Stückliste schrieb:1x AtTiny261A
1x TA07
1x MK6-7-B
7x 100R
5x 2k2
1x 10k
5x BC327/BC817
Im Prozessor ist jetzt auch endlich mal (durch das mit Punktmatrix-Werten für 128 Zeichen relativ groß geratene Character-ROM) ein bißchen Inhalt drin. Die Software ist eine Erweiterung meiner Magnetbaken-Software auf das nötige 5spaltige multiplexen, alle dort bekannten Features (per Jumper deaktivierbarer Lebenszeichen-Blitz, Ausgabe Auslösungszähler in Hex) sind dementsprechend drin geblieben. Zusätzlich sind noch ein paar neue Features dazugekommen:
- Die DotMatrix-Bake kann ihre Texte über ein Konfigurationsbit auch automatisch "auf dem Kopf stehend" ausgeben - irgendwie hat ja jeder Mensch andere Vorlieben, wie rum er einen Petling montiert. Die entsprechende Mathematik zum Bits-umsortieren ist im Programm schon drin, so dass da für den Anwender kein Aufwand entsteht.
- Die Ansteuerung der Zeilen- und Spalten kann über 2 Konfigurationsbits auf jede beliebige der 4 möglichen Konfigurationen von Low- oder High-aktiv gewählt werden, je nachdem ob und wieviele externe Treiberstufen vorhanden sind und ob Anzeigen mit gemeinsamer Anode oder gemeinsamer Kathode genutzt werden. "Ursprünglich" wollte ich das hardcodiert auf genau meine Schaltungsvariante machen, aber dann kam mir irgendwann letztes Wochenende die Idee, wie unglaublich retro-kultig so eine DotMatrix-Anzeige wohl aussehen würde, wenn man statt der LEDs richtige Glühbirnchen in Sockeln auf einem Brett nimmt. Und da man dafür dann definitiv sowohl Spalten- als auch Zeilentreiber braucht, um den Strom zusammenzubekommen, hab ich deren Polarität mal komplett konfigurierbar gemacht.
Alles Flash, das nicht für Character ROM und Programm benutzt wird, steht automatisch für Ausgabetext zur Verfügung. Meine Test-Nachricht hat im Moment 8 Byte Länge, der Assembler wirft nach endgültigem Zusammenbau dann folgende Statistik aus:
Code:
ATtiny261 memory use summary (bytes):
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x000594 726 702 1428 2048 69.7%
[.dseg] 0x000060 0x000060 0 0 0 128 0.0%
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
Assembly complete, 0 errors. 0 warnings
Die Software wird es wie immer in Dot-Deeh-Double-Youh-Style Assembler unter CC-BY-NC-SA geben, d.h. wer möchte kann diese beliebig nichtkommerziell nutzen und sich eigene Texte zusammenkonfigurieren. So sieht dann der Teil aus, in dem der Anwender nach belieben rumkonfigurieren kann:
Code:
;*****************************************************************************
;*****************************************************************************
;* Auszugebende Nachricht *
;*****************************************************************************
;*****************************************************************************
BOTBEG: ; Anfang auszugebende Nachricht
;*****************************************************************************
#ifndef GENATDW ; Nachricht nur im Normalbetrieb einbauen
;*****************************************************************************
.equ FLCONF = 0b11000000 ; Konfigurationsbyte Flash
; |||||||+--------- Bit0: reserviert, bitte 0 lassen
; ||||||+---------- Bit1: reserviert, bitte 0 lassen
; |||||+----------- Bit2: reserviert, bitte 0 lassen
; ||||+------------ Bit3: reserviert, bitte 0 lassen
; |||+------------- Bit4: reserviert, bitte 0 lassen
; ||+-------------- Bit5: UPSDWN, Zeichenausgabe "auf dem Kopf"
; |+--------------- Bit6: COLINV, Spaltenansteuerung invertiert
; +---------------- Bit7: ROWINV, Zeilenansteuerung invertiert
.equ ADAUER = 80 ; Anzeigedauer jedes Zeichens x10ms,
; Beispiel: 80 = 800ms Anzeigedauer
.equ PDAUER = 5 ; Pausenzeit nach jedem Zeichen x10ms,
; Beispiel: 5 = 50ms Pausenzeit
.db FLCONF, 0 ; Konfigurationswort im Flash ablegen
.db ADAUER, PDAUER ; Anzeigedauer, Pausendauer im Flash ablegen
.dw ((BOTEND-BOTBEG-3)<<1) ; Länge des Strings im Flash ablegen
; Hier folgt der eigentliche Ausgabe-Text:
.db "Hallo finde N48",SYM_DEG," 51.493 E002",SYM_DEG," 17.670 und H=324m."
;*****************************************************************************
BOTEND: ; Ende von Ausgabestring
;*****************************************************************************
Vermutlich könnte man sogar noch 5 Widerstände und 5 Transistoren für die Spaltentreiber einsparen wenn man nicht die Standard-Reichelt-Variante der Anzeige nimmt, sondern die erheblich stromsparender gezüchteten Versionen in hyper-rot und hyper-orange - leider hat Reichelt diese nicht. Ich hab mir je eine Handvoll von den Teilen bei Händlern, die nur an Gewerbe liefern organisiert - die sind wirklich schweinshell. Bei 20-30mA Stromaufnahme je nach angezeigtem Zeichen während die Anzeige läuft denkt man mit denen es brennt einem gleich die Augen aus.... Bestimmt gibt es auch irgendwelche schwindligen Krauter, die die Teile haben und auch an Hobbyisten liefern. Nur für die Menschen, die dann ähnliches Ergebnis mit völlig minimalistischer Hardware selbst auf Lochraster aufbauen wollen. Ich rate eher davon ab, weil 5 Widerstände und 5 Transistoren wirklich nichts kosten, aber ich möchte auch außer meinem eigenen Prototypen glaub ich keine Exemplare dieser Schaltung mehr auf Lochraster aufbauen . Der Ruhestrom der Schaltung dürfte nur minimal größer sein als bei der klassischen 7Segment-Magnetbake, ich schätze mal ich komme ohne Lebenszeichen-Blitz unter 1µA und werde mit Lebenszeichen-Blitz immer noch einstellig im µA-Bereich bleiben. Werde ich die Tage nochmal nachmessen....
Anbei noch ein paar Bilder als Serviervorschlag und 2 Videos bei Duröhre:
Prototyp an Logic-Analyzer,
Prototyp mit Testnachricht.
Man verzeihe mir die gruselige Bildqualität - mein Taschenknips macht tolle Pfotos, aber nur relativ schlechte bzw. kurze Videos.
chrysophylax.