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.
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
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.
Mit dem Datenblatt ist echt mühsam, man liest sich aber schnell ein.
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
Vielen Dank Alex R. Du hast mir sehr ausführlich und bestens weitergeholfen. Damit kann ich jetzt weitermachen. Herzlichen Dank. Viele Grüsse Fritz
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
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.
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.
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.
Ich muss jetzt Los Waschmaschine und einen Trockner habe ich zu Bemuttern.
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. ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.