Forum: Platinen Atmega mit je zwei 74HCT597 und 74HC595 - Diskussion Platinenlayout


von Michael W. (neuer_nutzer)


Angehängte Dateien:

Lesenswert?

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

von Alex W. (de1m)


Lesenswert?

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.

von Michael W. (neuer_nutzer)


Angehängte Dateien:

Lesenswert?

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

von Frank K. (fchk)


Lesenswert?

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

von Michael W. (neuer_nutzer)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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.

von Michael W. (neuer_nutzer)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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.

von Michael W. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.