Hallo! Wie kann ich am besten 12 BCD-Ausgänge (also 48 Leitungen) in einem Mikrocontroller einlesen? Ich dachte da an 6x 74374, deren Ausgänge parallelgeschaltet sind. Zum Abfragen könnte man deren Ausgänge nacheinander mit einem Schieberegister aktivieren, aber dort müßte zwischen den Flanken ja eine Pause sein, sonst würde man die Ausgänge zweier benachbarter 374 kurzschließen. Das Entkoppeln mit 48 Dioden will ich mir sparen. Wer hat eine Idee?
... oder du steuerst deine 74374 mit einem 3 To 8 Line Decoder 74238 an.
Chris D. schrieb: > 74238 74138. Statt der 374/373er Latches kann man aber auch einfach 244er nehmen.
F. P. schrieb: > Wie kann ich am besten 12 BCD-Ausgänge (also 48 Leitungen) in einem > Mikrocontroller einlesen? Vor dem BCD-Dekoder kannst Du keine Signale abgreifen? Das würde den Aufwand vermutlich erheblich reduzieren. Bitte auch lesen: https://www.mikrocontroller.net/articles/Netiquette#Klare_Beschreibung_des_Problems "Gerade am Anfang ist es immer gut zu sagen, was man insgesamt erreichen will und nicht so sehr Annahmen darüber zu treffen, wie man es erreichen könnte und dann das Wie zu hinterfragen. Oft ist der Denkfehler nämlich schon im Ansatz und man kann besser helfen, wenn man das Ziel des Fragenden kennt."
holger schrieb: > 6 x 74hc165 Oder CD4021 als CMOS-Lösung. Kaskadierbare serielle Schieberegister lassen sich am einfachsten verdrahten.
Der 165 oder 4021 klingen recht vielversprechend, auch wenn ich dann die 48 Bits rein seriell einlesen muß. Danke Euch für die Tips. Mir ist wichtig, daß die Daten alle gleichzeitig gelatcht werden, sonst käme Müll raus, wenn sie sich während des Auslesens änderten.
Na dann besser ein CPLD. In den XC9572 passt alles und es sind genügend Pins vorhanden. Damit kannst Du selbst bestimmen wie die Daten geliefert werden. Seriell, 4-bit, 8-bit usw.
hp-freund schrieb: > Na dann besser ein CPLD. > In den XC9572 Die Idee des Tages! Am besten die selbstprogrammierende Ausführung im BGA; da kann man die vielen Leitungen gleich anlöten :-(
TQFP64 mit Adapter ist machbar und die Programmierung ist auch nicht so schwer.
F. P. schrieb: > Der 165 oder 4021 klingen recht vielversprechend, auch wenn ich dann die > 48 Bits rein seriell einlesen muß. Danke Euch für die Tips. Mir ist > wichtig, daß die Daten alle gleichzeitig gelatcht werden, sonst käme > Müll raus, wenn sie sich während des Auslesens änderten. 4021 hat den PL Eingang. PL wie parallel load. Der macht, an allen 4021 parallel geschaltet, genau das. Gelesen über SPI-Interface mit 1MHz Takt, sind die 48Bits in 48μs gelesen, oder mit 20ksamples/s.
m.n. schrieb: > Am besten die selbstprogrammierende Ausführung im BGA; da kann man die > vielen Leitungen gleich anlöten :-( Genau, dafür sind doch die vielen kleinen Lotkügelchen da, oder?
m.n. schrieb: > Die Idee des Tages! wieso mokierst du dich darüber? Ein CPLD an dieser Stelle ist genau die richtige Lösung - und das in jeder Hinsicht: - nur ein einziger Chip - dank TQFP immer noch gut lötbar - gutmütig im Layout - gutmütig im Verhalten - auch mit ner älteren Version der ISE/Webpack gut programmierbar Das Einzige, was dagegen spricht, ist der Kalk in den Köpfen - und der grinst einen fast überall sn. Ich hab grad gestern den aktuellen FA gekriegt, wo ein mutiger dm2dsn sein TTL-Grab zuende gebracht hat. Ich räume ja ein, daß er sich große Mühe gegeben hat, aber dank veralteter Denkweisen kommt eben nur die drittbeste Lösung bei heraus. W.S.
Macht man doch per Multiplexing. 8 Ausgänge, pro Stelle einen und 4 Eingänge, für die Bits aller Stellen parallel.
W.S. schrieb: > Ein CPLD an dieser Stelle ist genau die richtige Lösung Eindeutig nein. Die sind erheblich teurer, verbrauchen viel Strom und man muß sich in noch ne Programmierumgebung einarbeiten. Auch sind die 5V CPLDs am Aussterben. Es geht rasand in Richtung 3,3V, 2,5V 1,8V. Da geht dann auch wieder stromsparendes CMOS: https://www.xilinx.com/products/silicon-devices/cpld/coolrunner-ii.html
Ich hätte je mich je nach Anwendung / Aufbau entschieden. Entweder einen aus der 40xx oder 74xxer Reihe oder eben einen µC mit genügend Pins. Ein CPLD wäre auch interessant, falls man noch mehr Logik-Gatter einsparen wollte, was wohl hier eher nicht gefordert ist. Bei einem modernen µC entfallen meist ohnehin schon die ganzen externen Logik-Gatter - bis auf wenige Spezialfunktionen. Was nun hier die Beste Lösung für das Problem ist, dazu kann ich nichts sagen da die anderen Randbedingungen zum Projekt unbekannt sind. Wenn es nur eine "einfache" Platine sein soll, die 48 Bits ran, dann würde ich eher einen passenden µC verwenden. Wenn man jedoch die 48 Bit exakt Zeitgleich lesen muss (im ns Bereich) dann wohl die 40xx / 74xx Lösung.
Gäbe es denn überhaupt einen µC der 48 Bit gleichzeitig - für mich gleichbedeutend mit einem Maschinenbefehl - einlesen kann?
Man kann ja auch nacheinander, aber deutlich schneller als Änderungsrate der zu lesenden Daten, einlesen. Sind zwei aufeinander folgend gelesene Werte gleich, ist alles OK, sind sie nicht gleich, dann hat man einen Übergang von einem zum nächsten Wert erwischt und verwirft den ersten, liest neu und vergleicht wieder. Quasi Entprellung eines 48bit Werts. Man muß nur Shannon einhalten und mehr als 2 (besser mehr) mal so schnell abtasten, wie Änderungen erfolgen.
:
Bearbeitet durch User
F. P. schrieb: > Danke Euch für die Tips. Mir ist > wichtig, daß die Daten alle gleichzeitig gelatcht werden, sonst käme > Müll raus, wenn sie sich während des Auslesens änderten. Wird doch sowieso nichts, weil die Voraussetzung von dir bisher ausgeschwiegen wurden. Z.B. ist es wichtig, ob die BCD-Daten statisch oder gemultiplext vorliegen. Dann kommt die nächste Problematik. Wie soll der Prozessor die Daten übernehmen? Seriell kostet Zeit und ist Fehleranfällig. Parallel ist schnell, aber willst du Pollen oder Interrupt benutzen? Welcher Prozessor? Hat alles seine Vor-und Nachteile.
Cyborg schrieb: > Wird doch sowieso nichts, weil die Voraussetzung von dir bisher > ausgeschwiegen wurden. Die Frage ist doch ganz eindeutig. Ob Meßwerte oder Lottozahlen gelesen werden sollen ist völlig ohne Belang. > Z.B. ist es wichtig, ob die BCD-Daten > statisch oder gemultiplext vorliegen. Die 48 Bit werden sicherlich keine Multiplexdaten sein :-( > Seriell kostet Zeit und ist Fehleranfällig. Es ist wohl kaum davon auszugehen, daß sich parallele BCD-Daten alle paar µs ändern. Zeit ist somit reichlich vorhanden. Allein Deine Schreibweise liefert Fehler :-( Warum muß um ein so kleines Problem immer soviel Wirbel gemacht werden?
Dieter W. schrieb: > Gäbe es denn überhaupt einen µC der 48 Bit gleichzeitig - für mich > gleichbedeutend mit einem Maschinenbefehl - einlesen kann? Selbst bei einem 64-bit µC dann gäbe es noch ein Restrisiko, denn die steigende oder fallende Flanke einer Änderung könnte sich gerade im Moment des Einlesens innerhalb der Hysterese befinden. Was dann? Seriell oder parallel - es bleibt nur das redundante Lesen, um eine sichere Erkennung zu gewährleisten. Finde ich bei Bedienschaltern sowieso eine gute Idee, es gibt ja auch mögliche Fehler noch ESD/EMV-Beeinflussung.
Peter D. schrieb: > W.S. schrieb: >> Ein CPLD an dieser Stelle ist genau die richtige Lösung > > Eindeutig nein. > Die sind erheblich teurer, verbrauchen viel Strom und man muß sich in > noch ne Programmierumgebung einarbeiten. Ach.. Gibs's zu: du kannst bloß nicht mit sowas umgehen. Und bevor du über 5 Volt räsonierst, guck lieber ins Datenblatt. Apropos XC9572: 3.3V, TQFP100, bei Farnell 4.42€ netto, bei Reichelt nur 3.45€ incl. MwSt. Also was soll das Gejammer? W.S.
W.S. schrieb: > Apropos XC9572: > 3.3V, TQFP100, bei Farnell 4.42€ netto Sag ich doch, die sind viel teurer. Die 74HC165 kosten nur 0,166 * 6 = 0,996€. Und der Stromverbrauch der XC9572 ist auch erheblich höher (typisch 65mA bei 0Hz .. 160mA bei 160MHz). Außerdem sind sie PRODUCT OBSOLETE. http://www.xilinx.com/support/documentation/data_sheets/ds065.pdf Die CPLDs haben uns soviel Ärger gemacht mit den ständigen Abkündigungen und Platinenänderungen, die haben wir deshalb aus Neuentwicklungen verbannt. Z.B. ein Design haben wir mit dem PZ5064 gemacht. Dann hat die Philips eingestellt und dafür Xilinx ähnliche gebaut. Das Design hat aber nicht mehr in den XCR5064 gepaßt, so daß ein XC5128 genommen werden mußte. Der hat aber ne etwas andere Pinzuordnung - 1.Redesign. Dann hat Xilinx die 5V Typen eingestellt, also noch nen 3,3V Regler auf die Platine - 2. Redesign. Die XCR3128 sind aber auch nicht mehr für neue Designs empfohlen, sondern man soll die 2,5V Typen nehmen. Da die Platine eh erweitert wurde, haben wir die CPLDs komplett rausgeschmissen und sind den Ärger endlich los. Ähnliches haben wir mit FPGAs erlebt, wo wir für eine Baugruppe noch Restbestände bei nem Broker kaufen mußten. Die Jahresstückzahl ist zu gering, als daß sich ein Redesign rechnet. Wir haben auch einige alte Baugruppen, wo standard PLDs drauf sind. Da ist Atmel noch der einzig verbliebene, der ATV16V8 und ATV22V10 herstellt. Aber wie lange noch.
W.S. schrieb: > > Apropos XC9572: > 3.3V, TQFP100, bei Farnell 4.42€ netto, bei Reichelt nur 3.45€ incl. > MwSt. > Also was soll das Gejammer? Da kannst doch gleich einen MC im TQFP100 Gehäuse nehmen. Der hat genug Eingänge warum sollte man da zusätzlich ein CPLD spendieren ?
F. P. schrieb: > Mir ist > wichtig, daß die Daten alle gleichzeitig gelatcht werden, Genaueres werden wir wohl nie erfahren. Außerdem scheint der Fall für pl504 bereits gelöst zu sein...
W.S. schrieb: > Also was soll das Gejammer? Es ist uns auch nicht gelungen, die alten Programmiertools mit LPT-Kabel unter W7pro/64Bit zum Laufen zu bringen. Wir mußten daher das teure Platform Cable USB II kaufen. Und nach der notwendigen Registrierung konnte man endlich viele GB downloaden und stundenlang installieren. Für den Bastler sind aber 366,91€ (RS), nur um mal mit CPLDs spielen zu können, völlig indiskutabel.
Na ja, für die XC95xx braucht man nicht das Neueste. ISE 4.2 (112MB) auf altem Rechner mit LPT tut es auch.
W.S. schrieb: > Gibs's zu: du kannst bloß nicht mit sowas umgehen. Gibs zu, du kannst mit Standard-ICs nicht umgehen. PLD ist Ok, wenn es keine leicht verfügbaren ICs für die Funktion gibt, aber das ist hier nicht der Fall, es gibt jede Menge Schieberegister, die das leisten, da bietet ein PLD keine Vorteile. Ganz abgesehen davon, dass man für ein PLD nach kurzer Zeit keinen Ersatz mehr bekommt, und die Hersteller achten eher darauf, dass sie ja nicht durch ein Produkt eines anderen Herstellers ersetzt werden können. Georg
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.