Forum: Mikrocontroller und Digitale Elektronik Atmega328-Platine, wo hab ich den Fehler?


von Daniel O. (daniel_o)



Lesenswert?

Hallo zusammen.

Ich bräuchte mal einen Denkanstoß. :S

Vor einiger Zeit habe ich Platinen für eine Universalsteuerung auf Basis 
eines Atmega328 fertigen lassen, die einige Ein- und Ausgänge, ein 
Display, 4 Funktionstasten usw. hat.

Jetzt bei der Programmierung habe einige Probleme. Das Flashen habe ich 
mit dem USBtinyISP gemacht und das geht auch ohne Fehlermeldung. Lade 
ich aber zu Testzwecken einen Blinksketch für die LED an PD5 hoch, 
blinkt sie nur, wenn einer der vier Funktionstaster (PB0, 1, 2 und PD7) 
auch gedrückt ist. Ohne Betätigung bekommt die LED vom Atmega 2,6V und 
bei Betätigung des Tasters 5V und beginnt zu blinken.

Das ist meine erste "Stand-alone-Arduino"-Platine, wenn man das so 
nennen will ^^

Hab ich irgendwo etwas übersehen? Bin generell für 
Verbesserungsvorschläge dankbar.

Viele Grüße,
Daniel

: Bearbeitet durch User
von Hermann G. (df2ds)


Lesenswert?

Moin,
an den 4 besagten Pins kann ich keinen Fehler finden. Magst du mal die 
Software zeigen?
Aber einen anderen Fehler habe ich gefunden: Beim MCP23017 können GPA7 
und GPB7 nur als Ausgang benutzt werden! (vgl. Datenblatt S. 11).

Viel Erfolg
  Hermann

von Wastl (hartundweichware)


Lesenswert?

Daniel O. schrieb:
> Bin generell für Verbesserungsvorschläge dankbar.

U4: Abblock-Kondensatoren für die Pins Vcc und AVcc fehlen.

U2: Abblock-Kondensatoren für die Pins Vcc und VccIO fehlen.

U21: Abblock-Kondensator fehlt.

Zitat aus "vielen" anderen früheren Threads: "Abblock-Kondensatoren
braucht es nicht, es geht ja auch ohne". Ja dann ....

C2 und C3 dürften etwas kleiner ausfallen.

Je nach Strombedarf bei den Relais darf man schon mal einen
etwas grösseren Elko für die Pufferung vorsehen.

Wie war das doch? Erst mache ich eine komplette Platine fertig,
dann lasse ich im Forum die Fehler finden. Oder wäre es nicht
umgekehrt besser?

von Εrnst B. (ernst)


Lesenswert?

Fuses auf Quarz gestellt und ein ungünstiges Layout für diesen?
Blinkt es auch, wenn du statt dem Taster was anderes auf der Platine 
berührst?
Blinkt es dauernd wenn du den AVR auf seinen internen RC-Oszillator 
stellst?

Ansonsten: Layout zeigen, da kann auch viel schiefgehen.

von Hermann G. (df2ds)


Lesenswert?

Auch den 7805 sollte man durch einen Schaltregler (gibts auch in TO220) 
ersetzen, es wird bestimmt sonst recht warm....

von Oliver D. (ollinoscope)


Lesenswert?

Die GND-Leitungen von deinem ATmega hängen leider nicht an GND...

von Wastl (hartundweichware)


Lesenswert?

Oliver D. schrieb:
> Die GND-Leitungen von deinem ATmega hängen leider nicht an GND

Wie das allerdings überhaupt funktionieren soll ist mir ein
Rätsel.

Und U21 hat tatsächlich auch keine Masseverbindung.

von Εrnst B. (ernst)


Lesenswert?

Oliver D. schrieb:
> Die GND-Leitungen von deinem ATmega hängen leider nicht an GND...

Oha. Gut gesehen. Das lässt sich wenigstens mit ein paar Drahtbrücken 
korrigieren.


Sollte sowas der ERC nicht direkt anmeckern?

Wastl schrieb:
> Wie das allerdings überhaupt funktionieren soll ist mir ein
> Rätsel.

Wenn die Tasten gedrückt werden, kriegt der AVR sein GND über seine 
ESD-Schutzdioden...

: Bearbeitet durch User
von Malte _. (malte) Benutzerseite


Lesenswert?

Oliver D. schrieb:
> Die GND-Leitungen von deinem ATmega hängen leider nicht an GND...
Treffer :)
Damit ist auch klar warum die Schaltung mit gedrückter Taste 
funktioniert:
Die Taste verbindet den Pin mit GND und weil der intern vermutlich eine 
Schutzdiode von GND Richtung Pin hat, wird damit der AVR über die 
Schutzdiode betrieben.

Wastl schrieb:
> Wie war das doch? Erst mache ich eine komplette Platine fertig,
> dann lasse ich im Forum die Fehler finden. Oder wäre es nicht
> umgekehrt besser?
Hmm, ich hatte das mal in der Reihenfolge probiert. Ergebnis: Ganz viele 
weniger wichtige Sachen wurden gefunden, aber alles kritische (wie 
analoger Temperatursensor an einem Eingang der keinen ADC hat) wurde 
übersehen.

von Wastl (hartundweichware)


Lesenswert?

Εrnst B. schrieb:
> Wenn die Tasten gedrückt werden, kriegt der AVR sein GND über seine
> ESD-Schutzdioden...

Beim Flashen des Controlers sind aber vermutlich keine Tasten
gedrückt. Naja, irgendwoher kommt der Strom schon ....

von Daniel O. (daniel_o)


Lesenswert?

Wastl schrieb:
> Oliver D. schrieb:
>> Die GND-Leitungen von deinem ATmega hängen leider nicht an GND
>
> Wie das allerdings überhaupt funktionieren soll ist mir ein
> Rätsel.
>
> Und U21 hat tatsächlich auch keine Masseverbindung.

Das ist das Ergebnis von Late-Night-Projekten. ich korrigiere das mal 
und schaue, ob sich das Problem dann schon gibt. Das ist ja peinlich ^^

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Wastl schrieb:
> Beim Flashen des Controlers sind aber vermutlich keine Tasten
> gedrückt.

Der Reset-Pin hat eine Schutzdiode nach GND (aber keine nach VCC, damit 
High-Voltage-Programmieren geht)


Ansonsten hätte ein ERC-Lauf den Fehler wohl gefunden, hab das mal in 
KiCad nachgestellt...

von Wastl (hartundweichware)


Lesenswert?

Daniel O. schrieb:
> Das ist ja peinlich ^^

Immerhin hast du bis jetzt nicht darauf bestanden dass es
Abblock-Kondensatoren nicht braucht.

von Jens K. (jensky)


Lesenswert?

Eventuell Layout vom 328P und 328PB verwechselt?

von Rainer W. (rawi)


Lesenswert?

Daniel O. schrieb:
> Hab ich irgendwo etwas übersehen?

Wie kommt man auf so ein irreführendes Symbol für einen Spannungsregler. 
Auch hier gilt das EVA-Prinzip als Grundlage für eine gut lesbare 
Schaltplandarstellung.
Und aus dem gleichen Grund sollten Spannungen in der 
Schaltplandarstellung von ob nach unten fallend sein, d.h. nicht auf dem 
Kopf, wie z.B. bei U1/3/5/6, U22, U23 und U33 bis U40. Wieso heißen 
U1/3/5/6 eigentlich Ux und nicht Qx, wie die BJTs.
Und warum verwendest du für Dioden Ux? Dx oder LEDx wären deutlich 
sinnvoller.
Wenn auch andere den Schaltplan lesen sollen, macht es die Sache 
einfacher, wenn man sich an gewisse Konventionen hält und nicht eigene 
Regeln aufstellt.

Was soll der Kondensator am Reset von U2?
1. Traust du deiner Versorgung nicht?
2. Warum lässt du den Pin nicht unbeschaltet, wenn du ihn nicht 
benötigst?

C2 und C3 erscheinen arg groß. Verlangt das Datenblatt des Quarzes so 
große Kondensatoren? Vergiss die Kapazität des Layouts und des 
Oszillatoreingangs bei der Auslegung nicht.

Du bist sicher, dass deine Optokoppler U7 bis U15 das nötige CTR 
besitzen, um mit ihrem Ausgang U33 bis U40 zu treiben und gleichzeitig 
noch einen korrekten Logikpegel für U21 zu liefern?

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Rainer W. schrieb:
> C2 und C3 erscheinen arg groß

ich habe auch 22p im Kopf und lese das überall, aber es gehört dazu auch 
kurze Leitungen zm µC, also nicht um die ganze Platine.

von Rainer W. (rawi)


Lesenswert?

Joachim B. schrieb:
> aber es gehört dazu auch
> kurze Leitungen zm µC, also nicht um die ganze Platine.

Für das Layout bei Quarz und Kondensatoren an den Oszillatorpins gibt es 
doch eine App Note von Atmel mit sehr klaren Empfehlungen (AVR186).

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Daniel O. schrieb:
> Lade
> ich aber zu Testzwecken einen Blinksketch für die LED an PD5 hoch,

Laut Schaltplan ist die LED PD5 mit Portpin PD6 verbunden, ist das 
richtig?

rhf

von Rainer W. (rawi)



Lesenswert?

Roland F. schrieb:
> Laut Schaltplan ist die LED PD5 mit Portpin PD6 verbunden

Kommt drauf an, was der Pixelbrei bedeuten soll ;-)
Ein Label "PD6" ist im Schaltplan an keinem Portpin zu finden, was 
natürlich nicht ausschließt, dass das Netz an PD6 diesen Namen trägt.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

Rainer W. schrieb:
> Kommt drauf an, was der Pixelbrei bedeuten soll ;-)

Ich würde Dir zuerst einen PC-Führerschein-Lehrgang empfehlen. Dann 
findest Du vielleicht auch das "Kreuz" unten rechts im Bild, um das Bild 
zu vergrößern, und damit aus dem Pixelmatsch raus zukommen ...

von Rainer W. (rawi)


Lesenswert?

Jens G. schrieb:
> Ich würde Dir zuerst einen PC-Führerschein-Lehrgang empfehlen.

Danke gleichfalls - mehr als die PNG-Datei herunterzuladen und in der 
Originalauflösung anzusehen, kann ich leider nicht tun.

Zeigt doch einfach, was du "Experte" dann sieht - vielleicht zur 
Klarheit direkt in 2- oder 4-facher Vergrößerung, ohne dran rum zu 
interpolieren.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

Rainer W. schrieb:
> Danke gleichfalls - mehr als die PNG-Datei herunterzuladen und in der
> Originalauflösung anzusehen, kann ich leider nicht tun.

Warum herunterladen? Einfach im Browser aufmachen, und auf groß 
(Originalgröße) schalten, sollte doch reichen.

von Rainer W. (rawi)


Lesenswert?

Jens G. schrieb:
> Einfach im Browser aufmachen, und auf groß
> (Originalgröße) schalten, sollte doch reichen.

Zeig, was du dann siehst, bevor du neunmalkluge Tipps gibst.

von Loco M. (loco)


Lesenswert?

Daniel O. schrieb:
> Hallo zusammen.
>
> Ich bräuchte mal einen Denkanstoß. :S

Wenn du bei den IRF9540 die +24V Versorgung wie üblich nach oben 
gezeichnet hättest, wäre es dir vielleicht selbst aufgefallen. Zeichne 
mal exemplarisch die beiden OUT1 Knoten zusammen, und überlege dir 
welche Gate-Source-Spannung sich durch den Widerstandsteiler R18/R43 
einstellt und was der MOSFET dabei macht. Und bei der Gelegenheit kannst 
du auch noch die Gate-Source-Spannung bei durchgeschaltetem Q8 mit 
VGSmax aus dem Datenblatt vergleichen. Ebenso hängst du die OUT5 mal 
zusammen und betrachtest die Auswirkungen auf das Relais.

von Manfred P. (pruckelfred)


Lesenswert?

Rainer W. schrieb:
> Zeig, was du dann siehst, bevor du neunmalkluge Tipps gibst.

Besser als Dein Geschreibsel, was nur in extrem seltenen Ausnahmefällen 
mal Sinn ergibt.

Den Plan vom Eröffnungsbeitrag kann ich nach Belieben vergrößern und 
alle Beschriftungen einwandfrei lesen . Ich kann ihn auch 
herunterladen und lokal angucken, 236kb groß und ebenfalls vollständig 
lesbar.

Loco M. schrieb:
> Wenn du bei den IRF9540 die +24V Versorgung wie üblich nach oben
> gezeichnet hättest, wäre es dir vielleicht selbst aufgefallen.

Warum er dort einen 100V-Typ braucht?

Die zulässige G-S-Spannung 20V wird überschritten.

1 kOhm an 24Volt gibt über ein halbes Watt, nicht toll. Für 
gelegentliches Schalten reichen auch 10 oder 100 kOhm.

Die LEDs nach GND werden dafür sorgen, dass die FETs niemals schließen.

Na immerhin sinnvoll BC817 anstatt eines FETs, aber deren Basisstrom ist 
unnötig groß.

von Rainer W. (rawi)


Lesenswert?

Manfred P. schrieb:
> Den Plan vom Eröffnungsbeitrag kann ich nach Belieben vergrößern und
> alle Beschriftungen einwandfrei lesen .

Dann zeig doch einfach einmal gut vergrößert das Label oberhalb von U12.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Betreff Quarz Cs:

Es gibt da eine vereinfachte (Faust) Formel zur überschlägigen 
Berechnung der Last-Cs:

Gegeben: Hersteller Last C Wert (Datenblatt) z.B. 12pF (CL)

https://www.digikey.ca/en/products/detail/ecs-inc/ECS-160-12-33-AGN-TR/9648827

LP Verdrahtungs-C überschlägig: 2.5-5pF Cs

Dann sind Cl1 und Cl2 = 2 x ( CL - Cs )

Beispiel: Cl1 = Cl2 = 2 x ( 12 - 3 ) = 18pF oder noch etwas höher.

In typischen SMD LP habe ich übrigens C-Werte um 2.4-4pF gemessen. Bei 
meinem Layoutstil liegt er meist um 2.5pF.

In der Praxis werden 18-27pF kaum zu Versagern führen. Höhere Werte 
ergeben meist eine kleinere Frequenzabweichung. Minimalwerte führen 
meist zu etwas höherer Frequenz. Ich verwende bei AVRs mit den üblichen 
Quarzen mit Cl=12pF 22pF Cs und befinde mich dann meist innerhalb der 
Toleranzgrenze des Herstellers.

Ich habe kürzlich 14 Quarz uC Schaltungen durchgemessen und kam auf eine 
Median-abweichung von +3.6ppm. Die Herstellertoleranz des Quarzes war 
+/- 50ppm. Die Berechnungswerte führen generell zu etwas zu hohen 
Frequenzwerten. Eine Zugabe von 10-15% vom berechneten Wert ist da 
meistens günstig.

So mache ich es immer. Wenn es genau sein muß, dann ist der Eingangs C 
ohnehin einstellbar zu machen.

Dann sollte man sich auch Gedanken machen, ob der Oszillator genug 
Verstärkungreserve (Gain Margin) hat. Meistens genügt man sich mit 
Werten größer wie 5. zur Erhaltung der Schwingungen genügt ein Gm von 1, 
ist aber nicht genug zum Anschwingen. Normalerweise braucht man sich 
aber als Anwender selten darum kümmern. Beim AVR kann man diesbezüglich 
zum Glück mit den gängigen 8 bis 16MHz Quarzen allerdings ohnehin wenig 
Überraschungen erleben. Beim 328PB könnte man mit gewissen Quarzen 
möglicherweise Probleme haben, weil dessen Oszillator schwächer ist als 
der vom 328P.

Man sollte den Quarz ESR so wählen, daß man nicht versehentlich den 
Quarz überlastet, weil er dann mechanisch beim Schwingen zerbrechen 
könnte. Niedrigere ESR werte sind da sicherer. Je höher der angegebene 
ESR Wert ist, desto höher ist auch die interne Quarzbelastung. Für 
8-16MHz Quarze ist ein ESR Wert um 50 Ohm günstig. Normalerweise haben 
diese Art Quarze, je nach Modell, einen typischen Leistungsbereich von 
50-200uW. Falls es sich herausstellen sollte, daß der Quarz zu nahe an 
der Belastungsgrenze liegt, kann man notfalls einen Serienwiderstand am 
Ausgang des Oszillator einschleifen um den Quarzstrom günstiger 
einzustellen.

In Anwendungen wo der uC der Umwelt und ihren T und RH Schwankungen 
ausgesetzt ist, empfiehlt es sich die Quarzumgebung mit einer Conformal 
Coating zu versehen. Kondensation kann den Oszillator anhalten.

Der Quarzoszillator von uC wird oft sehr stiefmütterlich behandelt.

Gerhard

von Roland F. (rhf)


Angehängte Dateien:

Lesenswert?

Hallo,
Rainer W. schrieb:
> Dann zeig doch einfach einmal gut vergrößert das Label oberhalb von U12.

Siehe Anhang.

rhf

von Daniel O. (daniel_o)


Lesenswert?

Erstmal großen Dank für das zahlreiche Input. Ich werd mich die 
kommenden Tage/Wochen damit auseinandersetzen und dann (bevor es scharf 
geht) nochmal Feedback einholen. Ich denke aber auch, dass ich der 
Einfachheit halber einen Steckplatz für einen Arduino Nano vorsehe, dann 
lässt sich bei einem Defekt auch einfacher etwas tauschen.

Viele Grüße und schönes Wochenende

von Rainer W. (rawi)


Lesenswert?

Roland F. schrieb:
> Siehe Anhang.

So sehe ich das auch (s.o.)
Sicher wird Manfred sich hier bald melden und uns das nach Belieben 
vergrößerbare und einwandfrei lesbare Label zeigen ...

von Monk (roehrmond)


Lesenswert?

Rainer W. schrieb:
> Sicher wird Manfred sich hier bald melden und uns das nach Belieben
> vergrößerbare und einwandfrei lesbare Label zeigen ...

Roland hat es doch schon gezeigt! Das Label ist nicht schön  aber 
eindeutig erkennbar.

Der Bildkompressor kann nichts dafür, dass die Software die beiden 
Zeichen D und 6 aneinander geklebt/gerendert hat.

Beim svg Format (ohne Pixelraster) hätte es wahrscheinlich besser 
ausgesehen, deswegen bevorzuge ich dieses.

von Rainer W. (rawi)


Lesenswert?

Monk schrieb:
> Der Bildkompressor kann nichts dafür, dass die Software die beiden
> Zeichen D und 6 aneinander geklebt/gerendert hat.

Dann bin ich mal gespannt, welche LED Daniel versucht hat, über den GPIO 
PD5 anzusteuern.
Bei einem derart zerfledderten Schaltplan ist es ohne Suchfunktion und 
eindeutig lesbare Labels etwas schwierig, Signale zu verfolgen. Und der 
Überblick geht ebenfalls verloren (s. Spannungsteileransteuerung U1...U6 
mit ca. 380/500mW Verlustleistung pro Kanal).

von Monk (roehrmond)


Lesenswert?

Klick.
Ach jetzt kappiere ich es! Die LED ist mit PD5 beschriftet, aber die 
Leitung mit PD6. Oder ist die 6 etwa doch eine 5?

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?


von Rainer W. (rawi)


Lesenswert?


von Monk (roehrmond)


Lesenswert?

Rainer W. schrieb:
> Du unterschätzt die Gefahr von Expectation Bias

Allerdings. Denn jetzt sehe ich da eindeutig eine 5. Das fühlt sich 
kurios an.

von Ralf D. (doeblitz)


Lesenswert?

Monk schrieb:
> Rainer W. schrieb:
>> Du unterschätzt die Gefahr von Expectation Bias
>
> Allerdings. Denn jetzt sehe ich da eindeutig eine 5. Das fühlt sich
> kurios an.

Das war schon immer klar ein PD5 bei der vertikalen Beschriftung, wenn 
auch das "D" ein Pixel zu hoch gerendert wurde. Einfach mal die Form der 
Ziffer mit dem horizontalen "PD5" und "R60" vergleichen, dann wird klar, 
dass das eine "5" ist.

Aber schön oder sauber lesbar ist etwas anderes, ganz unabhängig vom 
Bildformat - da ist einfach ein Positionierungsfehler im 
Schriftrenderer.

von Flip B. (frickelfreak)


Lesenswert?

Abgesehen von Abblockkondensatoren und Mosfet-Ansteuerung empfehle ich 
noch Schutzdioden an den Eingängen sowie an den Transistorausgängen.

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.