Hallo zusammen,
ich bitte um ein (kurzes) Review meines Schaltplanes eines ATmega1284p.
Er beschränkt sich lediglich auf das notwendigste:
- Spannungsversorgung
- Quarz
- Reset-Schaltung
- JTAG Verbindung zum Programmieren / Debuggen
Da es mein erster Versuch einer eigenen Schaltung ist, würde ich mich
sehr darüber freuen, falls jemand von euch Fehler findet und mich darauf
hinweisen könnte.
Leider konnte ich den JTAG Anschluss nicht sauberer verkabeln, da wollte
die Software und ich nicht zusammenarbeiten (Leitungen durch
Beschriftung gezogen). Ebenso ist der GND Ausgang leider nicht im Bild.
Die beiden unteren Leitungen (links / rechts) führen jeweils zum GND.
Ich hoffe ich habe nichts elementares übersehen.
In diesem "Schaltungszustand" sollte der ATmega nach meinem Verständnis
per JTAG programmierbar / debugbar sein, und natürlich durch seine
eigene Spannungsquelle stabil versorgt werden, sodass ich dann die
Schaltung um die Peripherie erweitern kann.
Viele Grüße,
David
Da fehlen noch zwei 100nF Abblockkondensatoren. Laut Datenblatt sollst
du dem 7805 am Eingang 330nF verpassen. Und wenn du genaue ADC Messungen
durchführen möchtest, solltest du AVCC noch filtern. C1 kann man sich
auch durchaus sparen.
Danke erst einmal für die Hinweise.
>Da fehlen noch zwei 100nF Abblockkondensatoren.
Hier muss ich jetzt (leider) ganz doof nachfragen: Wo?
>Laut Datenblatt sollst du dem 7805 am Eingang 330nF verpassen.
Stimmt, hätte ich mal ins Datenblatt geschaut statt in das Tutorial :/
>Und wenn du genaue ADC Messungen durchführen möchtest, solltest du AVCC noch
filtern.
Das ist (zum Glück) nicht notwendig. Habe den AVCC nur angeschlossen,
weil es laut div. Beiträgen "zum guten Ton" gehört...
>C1 kann man sich auch durchaus sparen.
Habe ich entfernt.
Habe den Schaltplan entsprechend angepasst.
Viele Grüße,
David
> Habe den AVCC nur angeschlossen,> weil es laut div. Beiträgen "zum guten Ton" gehört...
"Guter Ton"? Wie man es nimmt - wenn man auf Port A komplett verzichten
kann:
"AVCC is the supply voltage pin for Port A ..."
> 100nF von VCC nach GND> 100nF von AVCC nach GND>> Die 59pF am Quarz würde ich ändern auf 22pF
Oh, manchmal hat man wirklich Tomaten auf den Augen ... Danke!
Die Stärke am Quarz habe ich angepasst, da muss ich zugeben hatte ich
Probleme beim ausrechnen.
> "Guter Ton"? Wie man es nimmt - wenn man auf Port A komplett verzichten> kann:>> "AVCC is the supply voltage pin for Port A ..."
Hmm, ich meine gelesen zu haben, dass VCC und AVCC intern mit einer
Diode eh verbunden sind... kann mich aber gerade nicht an die Quelle
erinnern.
Dann sollte es jetzt passen. Waren ja doch einige Fehler drin.
Muss mich noch intensiver mit der Thematik befassen.
Trotzdem vielen Dank für die Hilfe!
Viele Grüße,
David
> C1 kann man sich auch durchaus sparen.
Eigentlich andersrum. Der Bulkkondensator kommt immer rein. Da würde ich
470µ eingangsseitig und 47µ nach dem 7805 einbringen. Die Kondensatoren
sind relativ klein, im Vergleich zu einem DIP40 Gehäuse. Warum also
weglassen?
> VCC und AVCC intern mit einer Diode eh verbunden sind
Wie dem auch sei: versorge ich einen ATmega1284P-PU per Vcc mit 5.0 V
und lasse AVcc offen, messe ich dort 4.2 V; belaste ich AVcc mit 40 mA,
sind es noch 3.6 V.
Warum beschäftigst du dich als Anfänger gleich mit so einem großen
Modell? Es gibt wesentlich handlichere mit weniger Pins, zum Beispiel
den ATmega328P.
neuer PIC Freund schrieb im Beitrag #5342873:
> Eigentlich andersrum. Der Bulkkondensator kommt immer rein. Da würde ich> 470µ eingangsseitig und 47µ nach dem 7805 einbringen.
Der 7805 ist ein Spannungsregler. Warum willst du dem Regler das Leben
mit einer "dicken" kapazitiven Last am Ausgang schwer machen. In welchem
Datenblatt hast du das so gefunden?
Zumindest ON Semi, ST und TI sind sich einig, dass an den Ausgang 100nF
sollen und nicht mehr - wozu auch.
> In welchem Datenblatt hast du das so gefunden?
Der 47µ gehört zur Stromversorgung der Last und wird deshalb nicht im
Reglerdatenblatt aufgeführt. Zumindest Microchip weist in deren
Datenblättern auf die Verwendung eines TANK-Kondensators von bis zu 47µ
hin.
Ansonsten einfach mal in anderen Schaltplänen (z.B. STK500, Arduino,
...) nachsehen. Die haben sowas.
neuer PIC Freund schrieb im Beitrag #5343079:
> Zumindest Microchip weist in deren> Datenblättern auf die Verwendung eines TANK-Kondensators von bis zu 47µ> hin.
Wie du schon sagst "bis zu". Das ist eine Obergrenze. Mit einer größeren
Ausgangskapazizät verschlechterst du das Regelverhalten. Deswegen gehört
die Kapazität auch vor den Regler, wenn es nicht unbedingt notwendig
ist.
> Ansonsten einfach mal in anderen Schaltplänen (z.B. STK500, Arduino,> ...) nachsehen. Die haben sowas.
Bei Arduino-Boards hab ich schon genug schlechte Eigenheiten gesehen.
Das ist eher eine "so macht mans nicht"-Referenz. Wenn du Referenzen
suchst, dann bitte wenigstens welche, bei denen das Regelverhalten eine
Rolle spielt. Bei einer einfachen Mikrocontrollerschaltung können auch
ein 100mV Ripple auf der Versorgung sein - das stört den µC nicht.
Ich habe schon 7805 (noname) schwingen gesehen, die einfach nur
datenblattmäßig geblockt waren. In der Eingangsstufe nach dem
Gleichrichter waren sowieso fette Elkos. Also noch einen kleinen am
Ausgang nachgelötet, und die Kiste lief.
Vielleicht diese schlechte Erfahrung, weswegen ich bevorzugt 317, 1086,
4941, 1117 einsetze.
Für die Stabilität des Reglers würde ich eher eine definierte
Mindestlast einsetzen.
Stefan U. schrieb:> Warum beschäftigst du dich als Anfänger gleich mit so einem großen> Modell? Es gibt wesentlich handlichere mit weniger Pins, zum Beispiel> den ATmega328P.
Vermutlich weil man als Anfänger noch nicht so effiziente Programme
schreibt und daher viel RAM nützlich ist ;)
Ich habe vor vielen Jahren drei 40-Pinner gekauft, weil ich damals die
größt möglichen haben wollte. Die liegen immer noch in meiner
Bastelkiste und werden ranzig.
Am häufigsten verbaue ich stattdessen den ATtiny13. Das hätte ich damals
nicht erwartet.
> Nochwas: benutze im Schaltplan bitte das GND Symbol und verbinde nicht> alle GND Punkte über eine Leitung quer über den Schaltplan :).
Danke für den Hinweis, werde ich umsetzen. Ist mein erster Schaltplan.
Dürfte auf jeden Fall die Übersicht verbessern!
John Doe schrieb:> Stefan U. schrieb:>> Warum beschäftigst du dich als Anfänger gleich mit so einem großen>> Modell? Es gibt wesentlich handlichere mit weniger Pins, zum Beispiel>> den ATmega328P.>> Vermutlich weil man als Anfänger noch nicht so effiziente Programme> schreibt und daher viel RAM nützlich ist ;)
Was soll ich jetzt sagen? Vermutlich hast du Recht, kann auch noch nicht
wirklich abschätzen wie viel RAM ich tatsächlich brauchen werde.
Ich sah aber grundsätzlich (von den etwas höheren Kosten) keinen
Unterschied ob ich nun einen "großen" oder "kleinen" IC nehme.
Hi,
ok.
AVR 042 Appnote hat noch ein paar Designvorschläge im Zweifelsfalle.
(Reset-Pin Beschaltung, JTAG Probe etc. pp.)
Hier finde ich die jetzt, die meisten Links sind ja durch den
Firmenchange
nicht mehr wo sie früher standen.
http://www.mouser.com/ds/2/36/doc2521-41636.pdf
z. B. Seite 14
ciao
gustav
ob nun 328er oder 1284er ist Jacke wie Hose in dem Fall, die Beschaltung
mit dem Spannungsregler ändert sich deswegen nicht. Zum probieren und
testen nehme ich auch gern größere µC.
Stefan U. schrieb:> Warum beschäftigst du dich als Anfänger gleich mit so einem großen> Modell? Es gibt wesentlich handlichere mit weniger Pins, zum Beispiel> den ATmega328P.
Ich finde das einen sehr sinnvollen Ansatz (nicht nur) für Anfänger.
Ich selber entwickle jedenfalls fast alles für AVR8 erstmal auf einem
1284P.
Man kann damit praktisch alles programmieren und testen, was mit den
"üblichen" AVR8 geht (also Sonderperipherie wie USB oder CAN aussen
vor), leider mit Ausnahme des USI (dafür benutze ich dann entweder einen
Tiny841 oder einen 4313, auch wieder so ziemlich die "größten").
Der Punkt ist: man kann das Entwickeln tun, ohne sich erstmal groß um
Beschränkungen bezüglich der Pins oder Speicherresourcen kümmern zu
müssen. Und glücklicherweise ist es bei den AVR8 so, dass die "großen"
nicht komplizierter sind als die kleineren, eher ist das Gegenteil der
Fall.
Wenn die Anwendung erstmal auf dem 1284P läuft, kann man immer noch
darüber nachdenken, ob es den Aufwand wert ist, die Sache zu shrinken
und man kann vor allem auch sehr einfach ermitteln, was man dann aus dem
Fundus des Verfügbaren minimal brauchen wird. Naja: Manchmal (sehr
selten) schreibt man dann tatsächlich nochmal irgendwas in nennenswertem
Ausmaß um, um nochmal etwas mehr shrinken zu können. Aber in aller Regel
beschränkt sich der Aufwand für's Shrink auf das Umbenennen einer
Handvoll Symbole.
Man muss schon ganz schöne Stückzahlen produzieren wollen, um darüber
hinaus gehende Aufwendungen rechfertigen zu können.
Stefan U. schrieb:> Ich habe noch ein Schlagkräftiges Argument für die 40 Pinner: Man kann> eine Beschriftung mit den Port-Nummern drauf kleben :-)
Bei den kleinsten Bauformen der 1284P würde das schon einigermaßen
schwer fallen. Die sind übrigens nur unwesentlich größer als etwa die
kleinste Bauform des von dir präferierten 328P...
Aber ich sehe sowieso keinen Grund, warum eine Entwicklungsumgebung
mit ICs bestückt sein sollte, die durch einen Atemfilter fast
durchrauschen. Da will man doch im Gegenteil immer überall möglichst gut
rankommen können. Jedenfalls würde das wohl schon jeder geistig
Normalbegabte rein instinktiv anstreben, gelernte Ingenieure mit einiger
Erfahrung natürlich sowieso...
Denn die wissen, was praktisch nützlich ist...
> Einen Kondensator direkt am Reset ist aber auch schlecht für> den Programmer.
Die die ich kenne, vertragen das. Das steht auch so in der App Note
AVR042 Figure 2-2 und dem zugehörigen Text. leider sagt die Note nicht
aus, wie groß der Kondensator maximal sein soll.
Beim Pollin NET-IO Board war mal 100µF drauf, das war zu viel. 10µF
gingen aber, haben die inzwischen auch geändert.