Forum: Mikrocontroller und Digitale Elektronik Atmega8 mit CS1694EO verbinden


von Fritz (fritzmeier)


Lesenswert?

Guten Tag, ich benötige eine Hilfe, die mir die Ansteuerung mittels 
Atmega8
zum Led-multiplexer CS1694EO erklärt. Hintergrund ist folgender:
Aus meiner Bastelkiste habe ich eine Platine von einem Videorekorder 
oder
CD-Player mit einer 5-Stelligen 7-Digit Anzeige gefunden. Der Atmega8 
mit
einem Takt von 16 MHz sollte die Anzeige steuern. Jetzt habe ich auf der
Led-Platine die Schnittstellenbezeichnung Data,CS,CLK abgelesen.
Diese Anzeige soll mir die Netzfrequenz (5-Stellig) laufend angeben.
Meine Frage bezieht sich auf die Serielle Eigenschaft der 3 
Steuerleitungen.
Was ist das für eine Kommunikationsart? Hoffentlich kann ich den Atmega8 
dazu
verwenden. Datenblatt des IC CS1694EO gibts nur in Chinesisch.
Ich bedanke mich im voraus für einen Tip, mit dem ich weiterkomme
und verbleibe mit freundlichen Grüssen  Fritz.

Beitrag #7362428 wurde vom Autor gelöscht.
von Fritz (fritzmeier)


Lesenswert?

Mir wurde per E-Mail eine Nachricht von Axel R gesendet.
in meinem Beitrag wird keine Antwort angezeigt. Die funktion wird durch 
diesen
Text von mir getestet.
Gruss Fritz

von Axel R. (axlr)


Lesenswert?

Ich hab meinen letzten Komemntar wieder gelöscht, weil es ein 
Schnellschuss war. Ich wollte keine Verweirrung stiften.
Dass es das Datenblatt nur in "chinesich" gibt, ist in der Taat, 
ungünstig.
Du musst CS auf LOW legen und mit 8bit die Daten an CLK und DAT dem Chip 
übertragen. Du schickst erst ein Byte als Steurwort und anschlilessend 
mit dem zweiten Byte deine Nutzdaten.
Nach dem Einschalten ist der Treiber-IC auf 7Stellen mit 11 Segmenten 
eingestellt. Jetzt musst Du herausfinden, wo bei Dir welche Segmente wie 
verdrahtet sind. Wenn Du schriebst, du hast 7Segment-Anzeigen und 
5Stellen, werden die sicher an SEG1-8(dezimalpunkt?) und mit dem 
gemeinsamen dann an DIGIT1-5 "hängen" an den Segmenten 9 bis 12 sind 
dann sicher irgendwelche Symbole in Form einzelner LEDs angeschlossen.
Abhängig davon, wo die einzelnen Segmente angeschlossen sind, musst Du 
Dir im Atmega eine kleine Tabelle einrichten, wo die Zugehörigkeiten 
definiert sind. Sprich: bei welcher Zahl, welche Segmente aufleuchten 
sollen.
Die RAM-Adresse für die einzelnen Segmente liegen dann auf 0b1100[3210]
also 0xC0 (Bit7 und Bit6 gesetzt) und die unteren 4Bits bilden dann die 
RAM-Adresse. 0x00 bix 0xD (0-13). ( Seite 3 im Datenblatt )
Kannst also mal 0xC0 hinschicken und danach (CS muss low bleiben) 0XFF.
(CS wieder auf H setzen, als Ende)
Dann als nächstes Bytepaar (CS=L)Adresse 0xC2 und wieder 0xFF 
(CS=H).Dann müsste die beiden ersten Stellen ne "8" anzeigen und die 
Dezimalpunkte leuchten.
Hängt, wie gesagt stark vom verwendeten Layout deiner Anzeige ab.
Schickst Du als ersten Wert kein ßxc, sondern was anderes, landest Du 
bei den weiteren Einstellungen, die man geschickterweise vorab vornimmt:
0x80 sind die Helligkeitswerte. dein Dispaly wird also relativ dunkel 
sein, wenn du an diesen Einstellungen nicht änderst.
0x40 stellt ein, ob du was einzeigen, oder die die Daten der tastatur 
abholen möchtest (sofern angeschlossene) oder aktiviert den Testmode.
0x00: hier wird die grundkofiguration der Segmentverteilung eingestellt. 
Wenn du schriebst, du hast ne 5Stelliege Siebensegmentanzeige, macht es 
Sinn als erstes mal nur ne "3" hinzuschicken, damit er das am Ende auch 
richgi darstellt. ( Seite 2 im Datenblatt )

Hoffe das hilft ein wenig: ansonsten hat Mr."WRFLeeTe" ne Arduino-Lib 
für das Ding. Aber Du fragtest ja nach einem MEGA8.

Wir Du deine Netzfrequenz anschliessend gemessen bekommst und weshalb 
usw. weiss ich nicht. Also, ja - weiss ich schon, wurde aber gestern 
erst disktuiert. da kann man einen reziproken Zähler programmieren.

von Axel R. (axlr)



Lesenswert?

Mit dem Datenblatt ist echt mühsam, man liest sich aber schnell ein.

von Axel R. (axlr)


Lesenswert?

Fritz schrieb:
> Mir wurde per E-Mail eine Nachricht von Axel R gesendet.
> in meinem Beitrag wird keine Antwort angezeigt. Die funktion wird durch
> diesen
> Text von mir getestet.
> Gruss Fritz
Du wurdest vom System benachrichtigt, dass ich HIER was geschrieben 
habe. Ich selbst habe Dir keine Nachricht gesendet. Ich hatte den CS1694 
mit dem CD4094 verwechselt und mein ursprünglicher Kommentar 
referenzierte auf diesen. Was natürlich falsch gewesen wäre, weil es ja 
um den 1694 gehen sollte, nicht um den 4094.( Die serielle Ansteuerung 
ist jedoch vom Prinzip her gleich, aber aohne Adressen, sondern nur mit 
Daten. der 4094 hat keinen RAM in dem Sinn, nur ein einziges 8Bit 
Register, also tatsächlich, im übertragenen Sinn nur einen einzige 
Adresse, die mit Daten gefüllt werden können. )

: Bearbeitet durch User
von Fritz (fritzmeier)


Lesenswert?

Vielen Dank Alex R.
Du hast mir sehr ausführlich und bestens weitergeholfen.
Damit kann ich jetzt weitermachen.
Herzlichen Dank.
Viele Grüsse Fritz

von Axel R. (axlr)


Lesenswert?

https://mansfield-devine.com/speculatrix/2018/01/avr-basics-spi-on-the-atmega-part-1/
https://mansfield-devine.com/speculatrix/2018/01/avr-basics-spi-on-the-atmega-part-2/
Sehr gern, kein Problem.
Meinen "wink", das chinesische Datenblatt durch den Übersetzer zu jagen, 
hast Du sicher verstanden ;)

: Bearbeitet durch User
von Fritz (fritzmeier)


Lesenswert?

Die Lösung auf den Übersetzer kam ich nicht, weil: 1. Das habe ich 
garnicht auf dem Schirm und 2. wird das evtl. ungenau umgesetzt und 3. 
da muss ich mich mal damit auseinander setzen. Da hast Du mir ja gezeigt 
wie's geht ... Danke.
Meine Vorurteile halt. Ich habe mich gestern mit Deinem ersten Post 
beschäftigt, alles abgespeichert und erste Schritte der Schnittstellen 
abfolge auf Papier erstellt. Das Thema, was Du mir mit der Reziproken 
Programmierung
aufzeigtest, habe ich noch nicht angeschaut.
Kleine Geschichte, der Beginn: der erste Microcontroller war C-Control. 
Damit
begann die Reise. Damals (anfang 90er Jahre) war die Steuerung für ein 
BHKW Notstromaggregat, das ich alles aus dem Schrott zog, 
Motor/Generator und die Hydraulik. Alles in Basic mit 
Netz-Notstrom-automatik und Rückschaltung.
Damals war C ziemlich Neu, und ich las mich nur partiell die Sprache 
ein. Mir reichte Basic auch für andere Ablaufsteuerungen. Ich mache in 
der Rentenzeit
vorwiegend Reparaturen und bin Ausgelastet. Die Frequenzmessung 
interessiert mich halt, 5-Stellig wäre schon gut.
Viele Grüsse und Danke für die Nachfrage.

von Axel R. (axlr)


Lesenswert?

Der Bojan Ivancic hatte "seinerzeit",also in der Zeit, als der ATmega8 
noch ganz neu war, sein AVR-Basic "fastavr" herausgebracht. Ein netter 
Basic-Dialekt, welcher wirklich (ich war selbst erstaunt) astreinen 
Assembler-Code erzeugt, welcher dann mit dem original-Atmel Assembler 
auch zu übersetzen ging. Der Editor war recht chic und auch die 
Programmierung lief alles über die Umgebung. Ein, zwei Schusselfehler 
waren zwar drinnen (Bugs?), aber der Bojan hat das immer auch gleich 
behoben.
Leider gilt diese Software als "verlassen", sie wird nicht mehr gepflegt 
und auch die Unterstützung (damals) neuerer Atmel-Schaltkreise wurde nur 
mit gepflegten Umschiffungen vollzogen. Hier wäre wahrscheinlich ein 
Neuausrichtung des gesamten Programm erforderlich gewesen.
Heutzutage würde ich mir für 10€ einen Arduino Nano oder sowas kaufen 
und das damit schnell umsetzen oder mein fastavr (irgendwo hab ich noch 
ne installation) anwerfen, wenn es denn ausgerechnet ein ATmega8 sein 
müsste. Mit reinem C (nicht mal C++) hab ich auch lange nichts mehr 
selbst entworfen, obgleich die Registerstruktur im Atmge8 sich ja 
überschaubar gestaltet. Man kann direkt an der Hardware programmieren 
und braucht keine HAL-Bibliotheken. Würde, mangels Rechenleitsung auch 
garnicht gehen, denke ich. Ist ja auch nur n kleiner 8-Bitter mit wenig 
Speicher.
Viel Spaß beim gemeinsamen Hobby.
Gruß, AxelR.

von Fritz (fritzmeier)


Lesenswert?

Ja von den Atmega8 liegen ca 15 Stück rum. Damit wollte ich die 
F-Messung realisieren. Ich lese gerade in den Treads AVR reziproker 
Zähler. Die Leute drin sind Super, die Beitäge Verständlich. Einen Nano 
habe ich da. Der sollte
bei einem Ebike durch Tastendruck das Treten ignorieren.

von Fritz (fritzmeier)


Lesenswert?

Ich muss jetzt Los Waschmaschine und einen Trockner habe ich zu 
Bemuttern.

von Axel R. (axlr)


Lesenswert?

Fritz schrieb:
> Einen Nano
> habe ich da. Der sollte
> bei einem Ebike durch Tastendruck das Treten ignorieren.

Schlingel

Fritz schrieb:
> Ich muss jetzt Los Waschmaschine und einen Trockner habe ich zu
> Bemuttern.

Ist ja hier kein WhatsApp. Eher Fernschach. Wer Zeit hat, schreibt ab 
und an mal, um dem anderen zu helfen. Musst dich also NICHT abmelden. ;)

von Fritz (fritzmeier)


Lesenswert?

Ich finde das Unanständig, die Beiträge der Mitschreiber einfach so 
abzuschneiden - Wie: "der TO hat schon länger nicht geantwortet".
 Grüsse an Axel R.
Der Schlingel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.