Hallo Zusammen,
ich plane gerade eine Audio Vorstufe die möglichst eine abgedrehte
Anzeige für die Eingänge und Statusanzeige besitzen soll. Mit ein
bisschen glück bin ich günstig an Varisymbol Röhren vom Typ ZM1350
(funktionieren fast gleich wie eine Nixie) gekommen die das übernehmen
sollen und mir bald zugeschickt werden, die Ansteuerung ist aber leider
nicht so einfach...
Jede der Röhren besitzt 16 Kathoden die jeweils einzeln angesteuert
werden müssen, deshalb bekommt jede Röhre 16 Transistoren an die
Kathoden damit ich mit normalem TTL Pegel die Zeichen anfahren kann. Nun
ist das Problem das ich 5 Röhren habe also 80 Zeichen die einzeln
ansteuerbar sein müssen. Mein Gedanke war das mit BCD zu Dezimal
Dekodern zu machen, dann könnte ich mit 8Bit alle Zeichen darstellen.
Was ich nicht bedacht habe ist das ich jeweils nur ein Zeichen damit
anzeigen kann, für mehr müsste ich mit multiplexen arbeiten was auch
laut Datenblatt erlaubt ist aber Lebensdauer kostet, keine Option also.
Habt Ihr eine Idee was ich machen könnte? Wenn es geht würde ich gerne
auf einem µC verzichten, hatten wir zwar in der Schule so fit bin ich
allerdings nichtmehr zumal mir die Programmierumgebung fehlt. Ich denke
aber mit normalen ICs wird das ein Bauteilgrab wenn ich gleich noch an
die Ansteuerung denke x:
Danke schonmal!
Gruß
Jan
...es handelt sich um ein alphanumerisches Anzeigedisplay, in welchen
Ziffern und Buchstaben aus Strichen zusammengebaut werden können...sehr
retro und oldschool... ;)
Soweit ich das sehe (ZM1350) hat die pro Stück 14 "Leuchtelemente". Bei
5 Stück also 70 "Leuchtelemente" + 5 Stellenanzeigen =75.
Ich würde das ganze per kaskadiertem Schieberegister an einem µC machen.
Mirko
Hallo zusammen,
Danke schonmal für die Antworten. =D
den 74HC595 Schau ich mir mal an, danke!
Mit Dezimalausgängen war einfach gemeint das ich 80 voneinander
unabhängige Ausgänge brauche, natürlich sollen auch mehrere gleichzeitig
geschaltet werden können (macht ja sonst keinen Sinn) Ich wollte dafür
eine Logikschaltung basteln, denke aber wie gesagt ohne µC geht das
leider nicht. ALternative wäre ein PLD damit habe ich aber immernoch das
Problem keine 80 Ausgänge zu besitzen, Programmierumgebung müsste ich
auch erst kaufen.
Ziel ist das ich ca. 11 Eingänge habe, Drücke ich z.B. den "AUX"
Schalter bekommt Eingang 1 einen High Pegel und das Display Zeigt
"--AUX--". Ich hoffe ich konnte das einigermaßen verständlich
erklären.....
Gruß
Jan
"Ich würde das ganze per kaskadiertem Schieberegister an einem µC
machen."
Kannst Du mir ein bisschen auf die Sprünge helfen wie Du das meinst? Ich
bin zwar seit einem Jahr Elektroniker habs aber eher mit Analogtechnik^^
Am beschaffbarsten/preiswertesten wohl mit
10x 80x
Kathode
+-------+ |
|75HC595|--1k--|< BF420
+-------+ |E
GND
mit weniger Bauteilaufwand
10x Kathode
+---------+ |
|TPIC6B595|---+ (hält immerhin 50V aus, ein 74141 konnte auch nur 60V)
+---------+
Hallo Jan,
rein theoretisch würde das was du vorhast auch ohne IC's gehen.
Für jeden Eingang verschaltest du je eine Diode an die entsprechenden
Segmente die leuchten sollen - braucht halt eine 'gewisse' Anzahl an
Dioden.
Sascha
Gut das ich kein Elektroniker bin. Aber mit kaskadierten Schieberegister
meint er wohl meherere hintereinander geschaltete Seriel zu- Parallel
Wandler IC's, die über einen einzigen Pin ansteuerbar sind.
Deine 75 Ausgänge könnten mit 8 IC's realisiert werden...das kannst du
googlen.
Gruß Jonas
Hallo Zusammen,
MaWin schrieb:> Am beschaffbarsten/preiswertesten wohl mit>> 10x 80x>> Kathode> +-------+ |> |75HC595|--1k--|< BF420> +-------+ |E> GND>> mit weniger Bauteilaufwand>> 10x Kathode> +---------+ |> |TPIC6B595|---+ (hält immerhin 50V aus, ein 74141 konnte auch nur 60V)> +---------+
So hatte ich das auch Gedacht mit dem Treiben der Röhre, was mir noch
nicht klar ist ist wieso das mit Schieberegistern ohne multiplexen
funktioniert, da steh ich auf dem Schlauch....
Ich Google aber mal danach. (=
Sascha Weber schrieb:> Hallo Jan,>> rein theoretisch würde das was du vorhast auch ohne IC's gehen.> Für jeden Eingang verschaltest du je eine Diode an die entsprechenden> Segmente die leuchten sollen - braucht halt eine 'gewisse' Anzahl an> Dioden.>> Sascha
Das hab ich mir auch schon überlegt, der Aufwand wäre allerdings
wirklich sehr hoch. Ich denke da ist der µC oder PLD besser geeignet?
Gruß
Jan
Jan schrieb:> Hallo zusammen,>> Danke schonmal für die Antworten. =D>> den 74HC595 Schau ich mir mal an, danke!>>> Mit Dezimalausgängen war einfach gemeint das ich 80 voneinander> unabhängige Ausgänge brauche, natürlich sollen auch mehrere gleichzeitig> geschaltet werden können (macht ja sonst keinen Sinn) Ich wollte dafür> eine Logikschaltung basteln, denke aber wie gesagt ohne µC geht das> leider nicht. ALternative wäre ein PLD damit habe ich aber immernoch das> Problem keine 80 Ausgänge zu besitzen, Programmierumgebung müsste ich> auch erst kaufen.>>> Ziel ist das ich ca. 11 Eingänge habe, Drücke ich z.B. den "AUX"> Schalter bekommt Eingang 1 einen High Pegel und das Display Zeigt> "--AUX--". Ich hoffe ich konnte das einigermaßen verständlich> erklären.....>> Gruß>> Jan
Guck dir Arduino an. Normalpreis 25€, beim Chinamann teilweise für 10.
Da hast du alles, was du brauchst, um deine Schieberegisterkaskade
anzuklemmen und zu programmieren. Programmiergerät(Bootloader) ist
eingebaut, Software gibt es zum runterladen.
mfg.
Jan schrieb:> was mir noch> nicht klar ist ist wieso das mit Schieberegistern ohne multiplexen> funktioniert, da steh ich auf dem Schlauch....
Eigentlich ganz einfach. Erstmal schaltest Du die Ausgänge des
Schieberegisters aus (dafür haben die meist einen Pin).
Dann legst Du das erste Bit am Eingang an, und togglest die Taktleitung.
Damit schiebst Du Dein Bit in das Schieberegister. Mit jedem Togglen der
Taktleitung schiebst Du das angelegte Bit rein, und die anderen Bits
werden jeweils um eines weiter geschoben. Würdest Du die Ausgänge nicht
ausschalten, so würdest Du das Schieben sogar sehen, das ist für den
Anfang vielleicht nicht schlecht.
Idealerweise schaust Du im Datenblatt nach bei welcher Flanke des
Taktsignals geschoben wird und optimierst dann das Bit-Setzen und
Schieben. Der SPI-Baustein macht das sogar für Dich, wenn Du willst.
Du kannst sogar wenn Du das wirklich optimieren willst, mehrere Ketten
an Schieberegistern parallel haben. Zum Beispiel hier 8. Da hättest Du
dann jeweils 2 Schieberegister in die Du 10 Bits reinschiebst. (die
letzten Ausgänge sind dann unbenutzt.
Wenn Du die 10 Bitwerte in den Registern r0-r9 stehen hast, kannst Du
das in wenigen Taktzyklen ausgeben.
1
LDI r16,(bitkombination für Ausgang aus, clock high)
2
LDI r17,(bitkombination für Ausgang aus, clock low)
3
OUT PORTB,r16 //Port B hat die Clockleitung und die Output Enable Leitung
4
OUT PORTA,r0 //PortA ist wo die 8 Schieberegister dran sind
5
OUT PORTB,r17
6
NOP //nicht unbedingt notwendig
7
OUT PORTB,r16
8
OUT PORTA,r1
9
...
10
OUT PORTA,r9
11
OUT PORTB,r17
12
NOP
13
OUT PORTB,r16
14
LDI r16,bitcombination für Ausgang ein, clock high)
Thomas Eckmann schrieb:> Guck dir Arduino an. Normalpreis 25€, beim Chinamann teilweise für 10.> Da hast du alles, was du brauchst, um deine Schieberegisterkaskade> anzuklemmen und zu programmieren. Programmiergerät(Bootloader) ist> eingebaut, Software gibt es zum runterladen.
Werde ich machen, Meine Programmier Kenntnisse sollte ich sowieso mal
wieder Auffrischen....
Eine Sache ist mir gerade noch eingefallen, wäre nicht wirklich das
aller einfachste ein PLD mit 16 Ausgängen / >11 Eingängen? Ich könnte
Jeder Anzeige einen eigenen verpassen, die Beschaltung um den Baustein
ist nicht komplex und alle Schaltungsblöcke sind Exakt gleich aufgebaut.
Wir hatten in der Schule eine Zeit lange PLDs als Thema die mit ABEL
Programmiert werden. Müsste ich hinbekommen, Diodenlogik habe ich gerade
versucht und das wird ein Bauteilgrab (-;
Da man bei dieser "Röhre" im Gegensatz zu normalen Nixies auch mehrere
Kathoden unabhängig betromen können muß, unterscheidet sich die
Schaltung auch ein bisschen. Alles Wissenswerte findet man hier:
http://www.die-wuestens.de/r5.htm
nach "ZM-1350" suchen oder so runterscrollen.
XL
PLD warum nicht? Wenn du dich damit auskennst. Schau halt das deine
Kosten irgendwie im Rahmen hälst, vom Gefühl würd ich denken das die
MC+Schiebekaskade Kombi günstiger ist.
Gruß Jonas
Nochmals danke für Eure Antworten, hab mich jetzt entschieden mein
Berufsschulwissen aufzufrischen und das ganze über einen Atmega32 zu
steuern, Vorteil ist das ich auch die komplette Eingangswahl damit
einfach realisieren kann. (=
Gruß
Jan
Richtig Oldschool wärs mit (E)EPROM und einem 8 Bit Bus an dem 8 Bit
D-Flipflops (74HC273) hängen.
Die Adresspins des EEPROM sind bekommen die Adresse für welche Röhre
sind die Daten sind und den Eingang binär codiert (Aux, CD, etc).
Dann taktet das durch und die Röhren bekommen ihre Daten.
80 Ausgänge ergibt ja dann 10 ICs mit den Flipflops drinne, deren CLK
Eingang kommt von einem 4017 und an den Adresspins des EEPROm wird auch
nur bis 10 gezählt.
Musste nur Bitmuster ins EEPROM schreiben.
Oldschool muss nicht sein nur weil es alte Röhren sind =D
Da ist der Mega32 genau richtig denke ich^^
Eine Frage hätte ich noch, wenn das ganze schon per µC gemacht wird
würde ich gerne über einen Drehgeber die Quellenwahl machen:
http://www.reichelt.de/Drehimpulsgeber/STEC11B03/3/index.html?&ACTION=3&LA=2&ARTICLE=73913&GROUPID=3714&artnr=STEC11B03
Leider bin ich dazu zu dämlich, kann mir jemand (Möglichst einfach)
sagen wie man das am besten auswerten kann?
Das Tutorial:
http://www.mikrocontroller.net/articles/Drehgeber
Hab ich schon gelesen, muss aber gestehen das ich den Beispielcode in C
nicht wirklich verstehe, eventuell bekomme ich das hin wenn ich
Grundlegend verstehen würde wie die Auswertung abläuft. -_-
Danke schonmal =D
Hier mal ein Text aus einem Projekt in dem das Auswerten vorkommt.
Dieser bezieht sich auf "Dekoder für Drehgeber mit wackeligen
Rastpunkten".
Da der Codesparender ist und mit einer anders coderiten tabelle ist auch
wieder volle Schrittauflösung möglich.
Tabelle:
static const int8_t dreh_table[16] =
{0,1,-1,0,-1,0,0,1,1,0,0,-1,0,-1,1,0};
Text:
Um den Graycode auswerten zu können wird jeder Graycode zwischen 0 und 3
als Zustand eines Automaten aufgefasst. Aus den Übergängen zwischen 2
Zuständen wird der Drehsinn des Drehgebers berechnet. Von jedem Zustand
gibt es 4 Übergänge zu einem neuen Zustand, also insgesamt 16
Zustandsübergänge. Von den 4 möglichen Übergängen pro Zustand sind aber
nur 2 zulässig und ergeben den Drehsinn, die anderen beiden sind nicht
zulässig und entstehen durch prellen der Kontakte oder zu schnelles
drehen des Drehgebers (Unterabtastung). Bei einem unzulässigen Übergang
ändert sich nicht nur 1 Bit sondern 2.
In einer Zustandsübergangtabelle kann nun der Drehsinn des Drehgebers
gespeichert werden, dies ist dreh_table[16].
In der Interruptroutine muss also nur noch der neue Zustand detektiert
und mit dem alten verglichen werden. Der daraus resultierende Drehsinn
wird dann in einer Variable aufsummiert.
ENDE
Der erste Code in dme LInk berehcnet eben die Zustandsübergänge und der
2. guckt in einer Tabelle nach.