Hallo zusammen! Ich versuche mich gerade daran einen Schaltplan sowie das zugehörige Platinenlayout für einen Atmega µC mit 32 I/O (16 I und 16 O) zu entwerfen. Für die Eingänge (Taster auf GND) möchte ich zwei Stck. Schieberegister (SR) 74HCT597 und für die Ausgänge zwei Stck. SR 74HC595 einsetzen. Hinter jedem AusgangsSR hängt ein ULN2803 als Treiber für angeschlossene Relais und Stromstoßschalter. Nachdem hier (nochmal Danke an alle für die bisherige Hilfe!) Beitrag "Störeinflüsse auf µC über Leitung an Eingangspin" Beitrag "Eingangsbeschaltung für Taster an Schieberegister 74HCT597" Beitrag "Anschluss & Beschaltung 74hc595 für definierten Ausgangszustand beim Start" grundlegende Fragen zur Beschaltung der Ein- und Ausgänge geklärt wurden habe ich nun einen ersten Entwurf fertig den ich hier gerne zur Diskussion stellen möchte. Mein dilettantisches Vorgehen das Layout mit den Zeichentools von Word zu erstellen möge man mir bitte nachsehen :) Zu dem Schaltplan habe ich folgende Fragen: - Kann ich die Reset Pins der Eingangs- und Ausgangsschieberegisters auch direkt auf +5V legen und auf die Widerstände R3 und R8 verzichten? - Muss ich an Serial In (Pin 14) von den Ausgangsschieberegistern zur Sicherheit einen Pull Down Widerstand (R4) setzen? - Und natürlich, geht das so einigermaßen? Wo sind Fehler? Was würdet ihr besser / anders machen. Btw, das Thema Optokoppler ist bereits ausdiskutiert… Ein paar Erläuterungen: Die Anschlüsse der Schieberegister sind rechts entsprechend der Anordnung im Layout gezeigt. Konnte die Pins mit Bezeichnungen nicht übersichtlich in die Zeichnung einbringen. Die meisten der breiten schwarzen Linien stellen mit Draht gesetzte Leiterbahnen auf der Unterseite dar. Die blau gestrichelten Linien sind Brücken auf der Oberseite der Platine. Liegt ein Bauteil (z.B. ein IC Sockel) über den Leitern sind diese in der Darstellung blasser. Oben auf der Platine befinden sich 18 Schraubklemmen. Die beiden linken sind für +5V und GND. Die restlichen 16 sind für die Eingänge. Hier sollen Taster angeschlossen werden, welche den entsprechenden Anschluss auf GND ziehen. Nach der Schraubklemme kommt der PullUp Widerstand R1 mit 4,7kOhm. Darauf folgt ein Tiefpass zum Filtern; Widerstand R2 mit 22kOhm in Richtung Eingangsschieberegister und dann Kondensator auf GND mit 0,1 nF. Nachdem die gefilterten Eingangsleitungen auf das entsprechende Raster überführt wurden folgt das Eingangsschieberegister 74HCT597. Pin 8 links oben liegt an GND mit einem Kondensator C2 100nF auf +5V (voraussichtlich im Sockel integriert). Nach rechts kommen dann die Eingänge D7 bis D1. VCC kommt auf kleinem Umweg an Pin 16 rechts unten. D0 (Pin 15) ist mit Draht auf der Unterseite der Platine unterhalb des IC Sockels von der gegenüberliegenden Seite auf die richtige Seite durchgeführt. Links davon (Pin 14) ist der Serial In, welcher zum nächsten Schieberegister nach rechts, dort an Pin 9 (Serial Out) geht. Der Serial In (Pin 14) vom rechten SR kann über den Jumper J1 auf GND gezogen werden. Er steht auch an J2 zum Anschluss weiterer SR auf eventuellen Erweiterungsplatinen zur Verfügung. Der Pin 9 (Serial Out) sowie die Pins 11 bis 13 werden auf die Anschlüsse des µC geführt (breiter schwarzer Balken). Pin 10 (Reset) liegt über einen Widerstand auf +5V, da ich nicht sehe, dass ich Reset hier brauche. Vor dem Durchtakten der Werte aus dem Schieberegister wird ohnehin mit PL und ST_CR das Schieberegister mit den aktuell am Eingang anliegenden Werten beschrieben. Hier bin ich aber etwas unsicher, ob nicht auch ein direkter Anschluss an +5V OK ist. Die relevanten Steuerleitungen PL, ST_CR sowie SH_CR werden auch zum zweiten EingansSR rechts rübergezogen. Der breite schwarze Balken links mittig ist der µC, welcher auf einer separaten Platine sitzt, welche Hochkant aufgesteckt werden kann (http://www.pollin.de/shop/dt/MzM2OTgxOTk-/Bausaetze_Module/Entwicklerboards/Entwicklungsboard_ATMEL_ATmega168PA.html). Die ersten 4 Anschlüsse von links sind wie beschriftet +5V (raw), GND, Reset (RST), und 3.3V VCC vom Spannungswandler. Die acht nach rechts folgenden Pins sind GPIOs vom µC zur Steuerung der SR. Unterhalb des µC kommt ein AusgangsSR 74HC595. Hier habe ich Serial In Pin 14 vorsichtshalber mal mit dem Widerstand R4 (4.7kOhm) auf GND gezogen, damit ich mir nicht aus Versehen 1en einfange. Brauche ich den? Ich denke eher nicht... Pin 13 (G bzw. OE = Output Enable) liegt mit Pull Up Widerstand R5 (4.7kOhm) an 3.3V VCC. Die Ausgangsregister sind somit erst aktiv, wenn der µC den zugehörigen Pin (nach der Initialisierung) auf Low schaltet. OE wird daher auch zum rechten SR herübergeführt. Die Leitungen RCK und SCK sind zunächst direkt an den µC angeschlossen. Auch sie werden an das rechte SR weitergeführt. Auf dem Weg dahin kommen noch die beiden Pull Down Widerstände R6 und R7 (4.7kOhm) welche die Leitungen auf 0 halten solange der µC nichts anderes vorgibt. Der Reset Pin SCL bzw. SCLR ist nicht an den µC geführt. Für einen Reset werde ich manuell 16 Nullen hineintakten. Die Kontrolle behalte ich lieber mit OE, erscheint mir nach Diskussion sinnvoller. Damit nicht aus Versehen ein Reset ausgelöst wird liegt SCLR über den Widerstand R8 an +5V. Die Frage ist, ob ich R8 brauche, oder auch direkt an +5V gehen kann. Auch bei den Ausgansschieberegistern sind +5V und GND mit einem 100nF Kondensator im Sockel miteinander verbunden. Ist nur nicht dargestellt. Bei den darunter liegenden ULNs ist meinerseits eigentlich alles klar. Über Kommentare, Anregungen und Kritik eurerseits würde ich mich sehr freuen. Hierfür vielen Dank im Voraus! Viele Grüße, Michael
Was man nur nicht macht, um richtig nicht zu machen. Vielleicht geht es nur mir so, aber ich habe aus dem Bild nicht viel verstanden bzw. nicht viel verstehen wollte. Schau dir bitte dieses Video an - https://www.youtube.com/watch?v=YoVen9os4Sk Danach konnte ich mein erstes Layout ohne Probleme entwerfen. Bei deinem Layout wirst du selbst wahrscheinlich Probleme haben das zu verstehen und vor allem Fehler dort zu finden.
Hallo Alex! Vielen Dank für deinen Beitrag. Ich habe an anderer Stelle ein ähnliches Feedback erhalten: Frank K. schrieb: > Der dargestellte Wirrwarr Deines PNGs ist mir zu anstrengend. Ich selber komme mit meinem Gekritzel gut zurecht. Es ist ja auch meinem Kopf entsprungen und ich weiß an welcher Stelle ich mir was gedacht habe. Ich kann aber nachvollziehen, dass dies für Außenstehende nicht so einfach ist und aufgrund der schlechten Übersichtlichkeit der Darstellung auch die Lust fehlt sich einzudenken. Ich werde den Rat befolgen und mich bei Gelegenheit in eine entsprechende Software einarbeiten. Danke an dieser Stelle vor allem für den Link zum Tutorial, das hilft mir denke ich auf jeden Fall weiter. Falls es jemanden interessiert, z.B. weil er mal durch die Suche auf dieses Thema stößt: Die offenen Fragen zur Schaltung konnte ich mir inzwischen so weit selbst beantworten. Getreu dem Motto „Versuch macht klug“ habe ich die Schaltung auf dem Steckbrett zusammengefummelt. Dabei ist das Folgende rausgekommen: - Die Reset Pins der SR können ohne Widerstände (R3 und R8) auf +5V gezogen werden (beim Ausgang macht die Reset Leitung aber anscheinend Probleme, s.u., ist also vll doch nicht der Weisheit letzter Schluss) - Die Ausgänge funktionieren auch ohne Pull Down R4 am Serial In des Schieberegisters zuverlässig (kann ggf. aber auch nachgesetzt werden) - Das gleiche gilt für den Serial Out des Eingangsschieberegisters; auch hier ist kein Pull Down erforderlich (kann aber auch ggf. noch nachgesetzt werden) Den „Schaltplan“ (bzw. das Gekritzel von oben) habe ich entsprechend aktualisiert. Auch habe ich das Layout noch etwas an die Position der Schraubklemmen im Hutschienengehäuse angepasst. Ich bitte die nach wie vor stümperhafte Darstellung zu entschuldigen, aber Lötzeit, Problemsuche und vor allem bezahlte Arbeit haben mir nicht die Zeit gelassen mich entsprechend z.B. mit Eagle zu befassen. Ich habe die Schaltung am Wochenende dann auf Lochrasterplatine gelötet. Fotos von Ober- und Unterseite sind angehängt. Dafür, dass es meine erste Platine dieser Art ist, bin ich eigentlich recht zufrieden. Vor allem, weil die Platine an sich das tut, was sie soll, nämlich Ausgänge in Abhängigkeit von den Eingängen schalten. Leider gibt es ein Problem... :/ Von Zeit zu Zeit werden die Ausgangsschieberegister sehr warm. Die Ausgänge machen dann auch nicht mehr das, was sie sollen, obwohl der µC und die Eingänge noch funktionieren. Reset des µC hilft dann nicht, nur eine Unterbrechung der Stromversorgung. Ich glaube inzwischen herausgefunden zu haben, was die Ursache ist. Zumindest kann ich es einigermaßen reproduzieren, wenn ich z.B. mit einem Schraubendreher die auf +5V gelegte Reset Leitung der Ausgangsschieberegister (Pin 10) berühre. Die per Eingang gesetzten Ausgänge erlischen dann z.B. spätestens bei der zweiten Berührung. Bei bestimmten 595er Bausteinen gehen die Anschlüsse komischer Weise stattdessen an bzw. in einen Zwischenzustand. Die Spannung am Ausgang liegt irgendwo zwischen +5V und 0, also etwa um 2V bis 3V. Man kann fühlen, wie der IC dann warm wird. Es hat den Anschein, als würde eine noch so geringe Störung am Reset Pin den IC so durcheinaner bringen, dass sich intern zwei Instanzen um den Zustand der Ausgangspins prügeln. Der eine will High, der andere Low, jeder legt seinen Pegel an die Pins an, dort entsteht ein Zwischenpegel und im IC fließt jede Menge Strom der ihn warm macht. Ich habe den Eindruck, dass Kondensatoren (100nF) von Reset Pin 10 auf Masse die Störempfindlichkeit reduzieren, allerdings auch nicht ganz beseitigen (zur Info: Jeder der 4 Stck. 16 Pin IC Sockel für die SR hat bereits einen integrierten 100nF Abblockkondensator). Ich denke ich werde versuchen, der Sache in einem anderen Thread auf den Grund zu gehen. Sollte das aber doch jemand hier lesen und eine Idee haben bin ich daran natürlich sehr interessiert. Wenn ich die Ursache und eine Lösung finde werde ich hier natürlich der Vollständigkeit halber aktualisieren. Nochmal Danke an alle für die Unterstützung, vor allem in den anderen Posts. Viele Grüße, Michael
Michael W. schrieb: > stattdessen an bzw. in einen Zwischenzustand. Die Spannung am Ausgang > liegt irgendwo zwischen +5V und 0, also etwa um 2V bis 3V. Man kann > fühlen, wie der IC dann warm wird. Ich tippe auf mindestens eine von drei Ursachen: 1. Du hast einen Schwingkreis gebaut. 74HC-ICs sind empfindlich. Für Deine Zwecke würden auch 4xxx-Logik-ICs reichen. Die sind wesentlich langsamer und unempfindlicher. 2. Du hast offene Eingänge, die nicht sauber auf 0 oder 1 liegen. Das ist eine ganz große Sünde. 3. Du hast eine unsaubere Stromversorgung. fchk
Hallo Frank, herzlichen Dank für deine Tips :) Ich kenne mich mit der Materie kaum aus, daher kann es schon sein, dass ich die falschen ICs gewählt habe. Da ich hier aber schon mehrfach von den 74HC(T)595 zusammen mit den ATMega µC gelesen habe daher dachte ich, dass das passen müsste. Ich wurde an andere Stelle aber darauf hingewiesen, dass ich einen HCT brauche anstelle eines HC, wegen der +5V Versorgung bei +3.3V High Pegel. Den offenen Eingang habe ich auch schon in Verdacht gehabt und deswegen provisorisch einen PullUp gesetzt. Hat leider nicht geholfen. Werde aber prophylaktisch dauerhaft einen platzieren. Ich habe verschiedene Spannungsversorgungen ausprobiert. Bei allen gab es das Probem, aber vielleicht sind alle schlecht. Zuerst hing die Schaltung an einem Meanwhell MDR-60-5. Dann habe ich das Ganze über den Programmieradapter mit USB Strom versorgt, sicher auch nicht das Beste. Zuletzt habe ich ein Netzteil für den Raspberry Pi angeschlossen. Bei 5V gab es auch Probleme. Bei Versorgung mit 3.3V auf den ersten Blick nicht mehr. Das stimmt mich zuversichtlich, dass ein 74HTC595 hilft. Ansonsten denke ich auch immernoch an Abkoppelkondensatoren an den SCL Pins Nr. 10 welche im Moment nur direkt an 5V liegen. Vg Michael
Michael W. schrieb: > Den „Schaltplan“ (bzw. das Gekritzel von oben) habe ich entsprechend > aktualisiert. Auch habe ich das Layout noch etwas an die Position der > Schraubklemmen im Hutschienengehäuse angepasst. Du solltes sauber zwischen Schaltplan und Layout unterscheiden. Ein Schaltplan folgt dem Signalverlauf und den logischen Zusammenhängen der beteiligten elektronischen Komponenten. Damit er diese Funktion erfüllen kann, haben darin die realen Umrisse von irgendwelchen Bauteilen überhaupt nichts zu suchen. Ein Layout stellt den Plan nach Aufbaugesichtspunkten, d.h. mit der realen geometrischen Anordnung von Baulelementen und Leitungen dar.
Hallo Wolfgang, natürlich hast du absolut Recht, das ist ein grundsätzlicher Unterschied, der mir prinzipiell auch bewusst ist. Man kann aber bei einem Layout grundsätzlich auch den Schaltplan erkennen. Ich habe für mich beides in einem erstellt, da ich direkt wissen wollte, welchen Platz ich wofür brauche, und was entsprechend möglich ist. Daher habe ich den Begriff fälschlicher Weise synonym verwendet. Vg Michael
Michael W. schrieb: > Man kann aber bei einem Layout grundsätzlich auch den Schaltplan > erkennen. Dir mag das bei deinem Projekt gelingen, solange du daran am werkeln bist. Wie du aber aus den Antworten siehst, sehen andere das anders. Und dir wird es, wenn du nach längerer Zeit mal wieder drauf guckst, auch nicht anders gehen.
Hallo zusammen! Falls es noch einmal jemanden interessiert: Diese Woche sind endlich die HCT Schieberegister angekommen. Damit habe ich keine Probleme mehr. Die HCT Chips lassen sich auch durch 100faches Berühren vom Reset PIN nicht durcheinander bringen. Auch im Schaltschrank machen sie jetzt seit ein paar Tagen einen guten Job. Ich denke aber nicht, dass die falschen Signalpegel für den HC die tatsächliche Ursache waren. Ich hatte die HC Chips zuvor noch mit 3.3V an der gesamten Schaltung getestet und dort kam es auch zu Störungen durch Berühren des Reset Pins. Bei einem Test mit 5V im Schaltschrank, wo das Problem der heißen Schieberegister erstmalig und ohne Fremdeinwirkung auftrat, ließ sich es sich aber nicht provozieren, auch nach unzähligen Berührungen des Pins. Ich gehe davon aus, dass die Stromverorgung eine wesentliche Rolle spielt. Im Schaltschrank kommen die 5V von einem Meanwhell MDR-60-5. Bei den Versuchen am Tisch kam der Strom entweder vom Programmieradapter (5V) oder von einem Raspberry Pi (5V & 3.3V). Womöglich sind die HC oder auch nur diese Charge extrem empfindlich. Wie auch immer, ich werde das nicht abschließend klären können. Aber hauptsache es funktioniert jetzt :) Viele Grüße, Michael
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.