Forum: Mikrocontroller und Digitale Elektronik ATMEGA328P auf eigenen Board


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Alexander K. (axcel_berlin)


Angehängte Dateien:

Lesenswert?

Liebes Forum,

für ein Hobbyprojekt wollte ich mal weg von den Standard-Arduinos und 
habe mir ein eigenes Board mit EasyEDA kreiert und bei JCLPCB bestellt. 
Ich möchte eigentlich nur in meinem Garten verschiedene Parameter messen 
und die Werte auf eine SD Karte speichern. Ich habe die Komponenten bei 
JCLPCB auch gleich bestücken lassen. Mein erster Versuch mit einem 
ATMEGA2560 ging schief. Ich konnte einfach keinen Boardloader auf den 
Chip spielen. Es kam immer ein Fehler mit der Device ID. Nicht nur in 
der Arduino IDE, sondern auch im Atmel Studio. Nun gut – ich dachte: Ich 
habe mich übernommen und probiere es erstmal mit einem 328P. Ich hab mir 
bei Conrad einen ATMEGA328P DIP besorgt habe, den aufgebaut und den 
Schaltplan vom Steckbrett eigentlich (ich bin kein Profi) 1:1 in EasyEDA 
nachgebaut. Nur halt kein DIP, sondern ein SMD. Die Platine kam an und 
ich freute mich endlich, dass es nun klappen würde und wieder kann ich 
keinen Bootloader draufspielen oder ein Programm flashen. Ich wollte 
dann wieder im Atmel Studio schauen, was hier so gesagt wird, aber da 
wir mir nur angegeben, das die Target Spannung 6V beträgt. Ich habe 
alles probiert: mySmartUSB (STK500), Arduino as ICP. Ich habe 
verschiedene Dinge ausprobiert und nichts hat geholfen. Ich bin jetzt 
ein wenig enttäuscht und dachte mir, dass mir vielleicht jemand von Euch 
sagen kann, was ich falsch gemacht habe. Im Anhang habe ich den 
Schaltplan mitgeschickt. Wenn ich den Bootloader mit der IDE draufladen 
möchte, kommt immer nur Invalid Device Signature. Für eure Hilfe wäre 
ich sehr dankbar!

Viele Grüße
Axcel

von Sebastian R. (sebastian_r569)


Lesenswert?

Schmeiß mal den Kondensator aus dem Reset-Signal.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Dein ISP Stecker ist um 180° verdreht.

Der Reset Pin ist falsch beschaltet. Das Signal muss direkt zum AVR, 
nicht durch einen Kondensator. Der Kondensator gehört zwischen Reset und 
GND.

Bei LED1 fehlt der Vorwiderstand.

Die Kondensatoren am Quartz sind haben um Faktor 5000 zu viel Kapazität. 
Da gehören 20pF hin.

Jedes VCC/GND Pärchen vom IC benötigt einen eigenen Abblock-Kondensator.

Die "6V" Anzeige lässt vermuten, dass auch bei deinem Netzteil etwas 
nicht in Ordnung ist. Womöglich ist der Mikrocontroller deswegen bereits 
kaputt.

von Jens M. (schuchkleisser)


Lesenswert?

100nF am Quarz, und die Stromversorgung des Controllers durch eine LED?
Da magst du aber nochmal nachsehen, gelle?
Hier: https://github.com/MCUdude/MiniCore ganz unten auf der Seite ist 
die Minimalbeschaltung für einen Arduino genannt. Alles weitere ist 
optional.

Und du weißt, das du einen Arduino brauchst (mit dem passenden Sketch) 
um den dann als ISP zu benutzen um deine Schaltung zu flashen?
Dann den SPI-Port nach den Einträgen im Sketch verbinden, "Bootloader 
flashen" und fertig ist die Laube.
Und du solltest natürlich einstellen, das du da einen Nano hast. Oder 
Uno, oder ProMini.
Und den ISP-Stecker richtig rum draufmachen. Deiner ist glaub ich 180° 
gedreht.

von Harry L. (mysth)


Lesenswert?

C1/C2 viel zu groß! (sollte ~20pF sein)
C8 ist überflüssig. (R2 eigentlich auch) ISP wird damit nicht 
funktionieren.
Abblock-Cs fehlen.

Kann so nicht funktionieren.

von Helmut L. (helmi1)


Lesenswert?

Was soll LED1 bezwecken? Bekommt der Controller seine Betriebsspannung 
ueber die LED?

Mit C1,C2 = 100nF  wird der Quarz keine einzige muede Schwingung machen 
koennen. Die sind um einige Zehnerpotenzen zu gross. Mach da mal 22pF in 
der Groessenordnung rein.

von Sam W. (sam_w)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der Reset Pin ist falsch beschaltet. Das Signal muss direkt zum AVR,
> nicht durch einen Kondensator.

Ja, für die Programmierung über ISP muss Reset direkt verbunden werden. 
Diese Eigenheit mit dem Kondensator in Serie kommt von den Arduinos, 
darüber wird aber üblicherweise der DTR-Pin des USB-Seriell-Wandlers 
angeschlossen, nicht der Reset für ISP.

von Alexander K. (axcel_berlin)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

vielen lieben Dank für Eure (vor allem super schnelle) Hilfe. Mich haben 
viele gewarnt vor dem Forum, weil man als „Hobbybastler“ hier verhöhnt 
werden soll. Aber ganz im Gegenteil. Vielen Dank für Eure schnelle und 
kompetente Hilfe. Ich habe den Schaltplan aktualisiert. Und würde mich 
freuen, falls es noch Verbesserungsvorschläge gibt, wenn Ihr mir eine 
kurze Rückmeldung gebt. Vielen lieben Dank auf jeden Fall! Habe mich 
sehr gefreut!
Viele Grüße
Axcel

von Stefan F. (Gast)


Lesenswert?

Ein C4 ist zu wenig. Da gehören drei Kondensatoren hin:

Pin 3+4
Pin 5+6
Pin 18+21

von hin wais geber (Gast)


Lesenswert?

Alexander K. schrieb:
> Viele Grüße

Nachdem du schon bei diesem (einfachen) Schaltplan jede Menge
Fehler gemacht hast kann es nicht schaden dein Layout auch noch
hier zu zeigen. Ich sage voraus dass du darin genau so viel
Fehler (nur anderer Art) haben wirst.

von Sam W. (sam_w)


Lesenswert?

Wenn du den Bootloader wirklich nutzen möchtest, also auch Programme per 
USB-Seriell-Wandler aufspielen willst, dann wäre die Beschaltung des 
DTR-Pins noch sinnvoll. RX, TX sind ja bereits benannt.
Ob und wie die auf eine Buchse geführt werden sieht man im Ausschnitt 
leider nicht, vielleicht werden die auch nicht benötigt.

Ich nehme an, dass du so ein fertiges Modul für die SD-Karte nimmst, das 
die 3,3V bereitstellt und die Pegelanpassung an die 3,3V vornimmt?
Wenn das auch aus den 5V versorgt wird und die Zuleitung vom Netzteil 
mehr als ein paar Zentimeter beträgt, könnte man noch einen Elko mit 
47-220uF spendieren.
Sinnvolle Leiterbahnführung, insbesondere für die Masse, ist auch nie 
verkehrt.
Zum Layout gibt es hier sicher auch Tipps, falls gewünscht.


Alexander K. schrieb:
> Mich haben
> viele gewarnt vor dem Forum, weil man als „Hobbybastler“ hier verhöhnt
> werden soll.

Viele hier sind auch Hobbybastler. Manchmal sind die Reaktionen 
tatsächlich unschön, aber wenn sich alle auf die Frage konzentrieren 
kommen gute Inputs zusammen. Da war es auch dein "Glück", das Problem 
nachvollziehbar und anschaulich mit Schaltplan darzustellen. Das erhöht 
die Chance für gute Antworten hier immens ;-)

: Bearbeitet durch User
von Alexander K. (axcel_berlin)


Lesenswert?

Hallo Stefan,

vielen Dank für den Hinweis. Ich habe die Abblockkondensatoren 
hinzugefügt.

Viele Grüße,
Axcel

von Sam W. (sam_w)


Lesenswert?

Noch etwas, was man machen kann, aber nicht muss:
Die 5V am ISP-Verbinder J1 über eine Diode entkoppeln. Dann ist es 
unproblematisch, wenn man den Programmieradapter mit Target-Versorgung 
und die normale Versorgung gleichzeitig dran hat.
Dann sollte es aber eine Schottky-Diode mit geringer Vorwärtsspannung 
sein, keine Standard-Siliziumdiode.
Wenn du die Platine für die SD-Karte über J1 anschließen wolltest: Dann 
keine Diode einbauen, sonst geht das nicht mehr...
Für den Verbinder J1 am besten diese verpolsicheren Wannenstecker 
vorsehen, keine einfachen Header wie an den Arduinos. Ist aber auch eine 
Frage des Platzes auf der Platine.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Alexander K. schrieb:
> Und würde mich
> freuen, falls es noch Verbesserungsvorschläge gibt, wenn Ihr mir eine
> kurze Rückmeldung gebt.

Gerne - Schaltpläne nicht als JPG sondern als PNG (s. Hinweis 
Bildformate).
JPG-Kompression taugt einfach nichts für Linienzeichnungen.
> EasyEDA_Schaltplan.jpg

von Stefan F. (Gast)


Lesenswert?

Sam W. schrieb:
> Die 5V am ISP-Verbinder J1 über eine Diode entkoppeln. Dann ist es
> unproblematisch, wenn man den Programmieradapter mit Target-Versorgung
> und die normale Versorgung gleichzeitig dran hat.

Wenn man schon so einen nicht standard konformen Programmieradapter hat, 
dann soll der das gefälligst selbst handhaben.

Ansonsten bekommt man wegen der Diode nämlich eine falsche Vtarget 
angezeigt, was mich stören würde.

von Franz M. (elmo64)


Lesenswert?

Ein Kondensator von Aref(20) nach GND, C9 im ersten Schaltplan, ist zwar 
kein Muss, kann jedoch die Messergebnisse des ADCs verbessern. Ein 
Kondensator von Reset(29) nach GND verringert ebenfalls die 
Störanfälligkeit.

schaue mal hier:
http://ww1.microchip.com/downloads/en/appnotes/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf

: Bearbeitet durch User
von Alexander K. (axcel_berlin)


Lesenswert?

Vielen Dank für das Angebot - das werde ich nutzen. Ich werde jetzt mal 
in Ruhe das Layout angehen. Das kann noch etwas dauern.

Wie gesagt: Es ist ja nur ein Hobby und ich wollte es mal ausprobieren. 
Ich denke, dass es die Arduino Boards nicht umsonst gibt :) Aber ich 
wollte es gerne mal ausprobieren. Und dank eurer Hilfe bin ich jetzt ein 
bisschen schlauer geworden. Tatsächlich habe ich den Schaltplan nochmal 
mit meinem Steckbrett abgeglichen und warum ich den Kondensator zwischen 
Reset und dem Chip gelegt habe, erschließt sich mir wirklich nicht. Auf 
dem Steckbrett ist mir das nicht passiert.

von Wolfgang (Gast)


Lesenswert?

Franz M. schrieb:
> Ein Kondensator von Aref(20) nach GND, C9 im ersten Schaltplan, ist zwar
> kein Muss, kann jedoch die Messergebnisse des ADCs verbessern.

Wenn der ADC benutzt werden soll, müsste man AVCC von VCC mit einem 
Ferrit entkoppeln, sonst hat man den ganze Restdreck, den man zwar 
halbwegs mit den Abblockkondensatoren versucht zu reduzieren, auf der 
ADC-Versorgung.

von Sebastian (Gast)


Lesenswert?

Alexander K. schrieb:
> Aber ich wollte es gerne mal ausprobieren.

Ich würde an deiner Stelle versuchen das 328P-Board umzubasteln. LED1 
und C8 überbrücken und die Kondensatoren am Quarz ersetzen. Dann sollte 
es eigentlich schon gehen.

Wenn nicht sind noch andere Fehler irgendwo die auch noch vor der 
nächsten Platinenbestellung behoben werden wollen ...

LG, Sebastian

von hin wais geber (Gast)


Lesenswert?

Sebastian schrieb:
> Dann sollte es eigentlich schon gehen.

Ja schon klar ...
.... das Layout spielt ja überhaupt keine Rolle dabei, gell?

Bei Anfängern darf man da schon mal default-mässig schwarz
sehen. Hab hier schon zu viele "ungeeignete" Layouts gesehen.

Beitrag #6686813 wurde vom Autor gelöscht.
Beitrag #6686820 wurde vom Autor gelöscht.
Beitrag #6686827 wurde vom Autor gelöscht.
von Gerhard O. (gerhard_)


Angehängte Dateien:

Lesenswert?

Falls es hilft, ist im Anhang ein vielfach adaptiertes getestetes
Design. Das Original stammt vom Pro-Mini. Der ISP Anschluß ist noch
extra hinzugefügt. Der andere Stecker ist zum Anschluß eines USB Serial
Adapters gedacht um den Bootloader verwenden zu können. Der DTR Anschluß
der zum RESET führt ist notwendig um vom IDE den Bootloader starten zu
können. Es gibt vielfach USB Serial Cables oder Adapter Boards mit dem
CP2102 oder CH340 mit 6 Anschlüssen in der gezeigten richtigen
Reihenfolge. Wenn alles wie angegeben gemacht worden ist, sollte der AVR
FLASHbar sein und der Bootloader funktionieren. Ich schlage vor den
OptiBoot BL zu verwenden bei dem sicher gestellt ist, daß der Watchdog
Restart richtig funktioniert.

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.