Hallo zusammen,
ich besitze den Experimentierkasten "Roboter selbst bauen" von Franzis.
Um nun selbst ein bisschen weiter zu experimentieren, möchte ich mir
eine ähnliche Platine selbst bauen. D.h. ich möchte den ATmega88 auf der
Platine ansteuern können, die Ausgänge jedoch einfach auf Pins legen,
die ich dann beliebig verbinden kann.
Ich habe mir nun mit Eagle selbst den Schaltplan (teilw. aus Franzis
Handbuch abgeschrieben) und das Layout erstellt.
Da dies meine erste selbst erstellte Platine ist, wäre es gut wenn
jemand der damit etwas Erfahrung hat sich die Sache einmal anschauen
könnte. D.h. kurz drüberschauen, ob das so in Ordnung ist und
funktioniert.
Ich habe das Eagle-Projektverzeichnis hier mal hochgeladen:
http://www.dateiupload.com/files/7RyboJdx12.zip
Alternativ schicke ich es auch gerne per Mail.
Ich würde mich freuen, wenn sich jemand meldet! :)
Lg
Jonas
Hier die Bilder... :)
Was vielleicht etwas verwirrt sind C1, JP1 und C2. Der Sinn dahinter:
Nur wenn JP1 entsprechend gesetzt ist, soll der Controller beim Start
zurückgesetzt werden (C2 wird geladen, solange PC6 auf Masse ->Reset).
C1 hat den Sinn Stromspitzen, im Notfall an den Ausgängen abzufangen.
Lg
Hi
AVCC soltte auch noch einen 100n spendiert bekommen. Und Im Layout nicht
in die Pampa setzen, sondern so nah wie möglich an den Controller. Gilt
auch für C4.
MfG Spess
Folgende Empfehlungen:
- C4 viel näher am µC
- GND ist zu "weich"; Leiterbahnen breiter machen und am besten einen
Rahmen ganz außen um die Leiterplatte herum
- ein Quarz extern über JP4 ist "funktionsgefährdet"; für einen
genaueren Takt käme also nur ein Taktgenerator in Frage
- die beschriebene Funktion mit JP1 und C2 verstehe ich nicht: "C2 wird
geladen, solange PC6 auf Masse ->Reset": auch ohne C2 ist PC6 auf Masse
ein Reset...??
- Befestigungslöcher sinnvoll?
Gruß Dietrich
Also... C4 habe ich nun direkt neben den µC gesetzt (s. Bild)
> GND ist zu "weich"; Leiterbahnen breiter machen und am besten einen> Rahmen ganz außen um die Leiterplatte herum
Bezieht sich auf sämtliche GND-Leiterbahnen? Die m.M.n. wichtigsten habe
ich ja schon auf 32 mil dimensioniert... also noch größer?
> - ein Quarz extern über JP4 ist "funktionsgefährdet"; für einen> genaueren Takt käme also nur ein Taktgenerator in Frage
Ein externer Quarz ist mir im Moment noch nicht wichtig. Dafür mache ich
noch zu wenig damit. Jedoch nur rein Interessenhalber: Was kann mit
einem externen Quarz da schief gehen?
> - die beschriebene Funktion mit JP1 und C2 verstehe ich nicht: "C2 wird> geladen, solange PC6 auf Masse ->Reset": auch ohne C2 ist PC6 auf Masse> ein Reset...??
Im Franzis Lernpaket ist die Reset-Beschaltung ohne Jumper verbaut. Der
Reset-Pin liegt im Normalbetrieb auf +5V. Durch Invertierung wird also
nicht zurückgesetzt. Beim Einschalten der Platine ist C2 nicht geladen,
zieht also den Reset-Pin auf Masse (Invertierung -> Reset wird
durchgeführt).
Diesen autmatischen Startreset möchte ich optional machen. Daher habe
ich den Jumper eingefügt, um so C2 zu und wegschalten zu können.
->Verständlich? ;)
Dankeschön!!
Lg
Hi
>Diesen autmatischen Startreset möchte ich optional machen. Daher habe>ich den Jumper eingefügt, um so C2 zu und wegschalten zu können.>->Verständlich? ;)
Nein. Der ATMega88 hat einen internen PowerOnReset. Sogar über Fuses
konfigurierbar. Da ist diese Option relativ sinnfrei. Und ein
Resettaster ist das was ich in 15 Jahren mit AVRs am wenigsten gebraucht
habe.
Warum machst du die Abblockkondensatoren in THD? SMD 0805 passt da viel
besser hin.
C3 sollte auch möglichst nah an den IC. Ach, und in die Leitungen an dem
SCK, MOSI, MISO vom SPI hängen sollten Widerstände rein. Sieh dir mal
die AppNote 40 oder 42 von Atmel an.
>Ein externer Quarz ist mir im Moment noch nicht wichtig.
Merkst du spätestens, wenn du die serielle Schnittstelle benutzen
willst.
Wofür du für diese Schaltung eine Platine machen willst erschließt sich
allerdings nicht. Das bisschen Gedödel hast du schneller auf einem
Breadboard aufgebaut.
MfG Spess
Jonas schrieb:> Diesen autmatischen Startreset möchte ich optional machen.
Das ist Quatsch. Warum soll Dein MC nach dem Einschalten einen
undefinierten Zustand haben???
Der MC muß immer ein Reset machen!
Kannst Du beim AVR auch nicht verhindern (macht er intern).
Bzw. kann man nur verhindern, indem das BOR disabled wird und die VCC
vorher nicht auf 0V abgefallen ist und dann nur langsam ansteigt.
Peter
spess53 schrieb:> SCK, MOSI, MISO vom SPI hängen sollten Widerstände rein. Sieh dir mal> die AppNote 40 oder 42 von Atmel an.
Kann man machen, wenn Konflikte zwischen SPI und ISP auftreten.
Vermeidet man diese Konflikte, dann benötigt man sie nicht. Und sie
lassen sich dann besser als Teil von externer SPI-Periphierie
realisieren, müssen nicht auf die Platine. Auf der Platine können sie
bestimmte Arten von Peripherie behindern.
Hm... die Reset-Schaltung ist dann wohl ziemlich unnötig^^
> Warum machst du die Abblockkondensatoren in THD? SMD 0805 passt da viel> besser hin.
Da ich die Platine selbst ätzen will und nur so ein Billig-einsteigerset
habe, weis ich nicht, ob ich mit SMD-Bauteilen zurechtkomme...
Da es dort oben recht voll ist, bekomme ich C3 glaube nicht viel näher
dran...
Lg
Hi
>Da ich die Platine selbst ätzen will und nur so ein Billig-einsteigerset>habe, weis ich nicht, ob ich mit SMD-Bauteilen zurechtkomme...
Quatsch. 0805 ist noch fast für Grobmotoriker. Die Pads sind auch nicht
viel kleiner als von deinem ATMega88. Ändere einfach mal die Footprints
von den Kondensatoren in 0805 und sieh dir das Ergebnis an.
MfG Spess
Jonas schrieb:> Jedoch nur rein Interessenhalber: Was kann mit einem externen Quarz da> schief gehen?
Dass er nicht schwingt und er damit witz- und funktionslos ist ;-)
Was macht da den Unterschied, ob der Quarz über eine Leiterbahn auf dem
Board, oder über ein Kabel auf einem Breadboard beschalten wird? (Die
el. Verbindungen sind nat. die gleichen...)
Hi
>Was macht da den Unterschied, ob der Quarz über eine Leiterbahn auf dem>Board, oder über ein Kabel auf einem Breadboard beschalten wird? (Die>el. Verbindungen sind nat. die gleichen...)
Was für Kabel? Den steckt man so nah wie möglich an den Controller.
MfG Spess
Jonas schrieb:> Was macht da den Unterschied, ob der Quarz über eine Leiterbahn auf dem> Board, oder über ein Kabel auf einem Breadboard beschalten wird?
Schau Dir mal Geräte mit MC und Quarz an. Die Leiterzuglänge zum Quarz
ist in der Regel <10mm. Längere Leitungen beeinflussen die
Schwingfreudigkeit enorm und erhöhen die Störabstrahlung.
Peter
Jonas schrieb:> Bezieht sich auf sämtliche GND-Leiterbahnen? Die m.M.n. wichtigsten habe> ich ja schon auf 32 mil dimensioniert... also noch größer?
Das ist schwierig zu sagen.
Du solltest aber verstehen:
- eine digitale Schaltung (hier der µC) benötigt beim Schalten (d.h. bei
jeden Takt) eine sehr kurzen, aber recht hohen Stromimpuls aus der
Versorgung. Da sind Frequenzen im Bereich von einigen hundert MHz im
Spiel.
- jede Leitung hat auch eine Induktivität; die verhindert einen sehr
schnellen Stromanstieg
- die Wirkung von beidem: an den Leitungen fallen kurzzeitig Spannungen
ab, die den Störabstand reduziert; auch wenn die Schaltung damit alleine
noch funktioniert, ist empfindlicher gegen zusätzliche, externe
Störungen.
- Maßnahmen dagegen:
* kurze Verbindungen, massiver GND (quasi das "Fundament" des
"Gebäudes")
* Stützkondensatoren, die die kurzen Stromspitzen aus einem sehr nahe
am Verbraucher (Verursacher der Stromspitzen) angeordnetem Speicher
bereitstellt; der hochfrequente Anteil des Stroms braucht dann nicht
über die Zuleitungen zu laufen.
Der Stützkondensator stützt also das "Dach des Hauses" (Vcc) auf dem
"Fundament" (GND) ab. Also sollte das Fundament solide sein, damit das
ganze Gebäude nicht ins Schwingen kommt. Vcc (das "Dach") kann schwächer
sein, da man es ja an allen wichtigen Stellen abstützen kann.
Folge:
Je massiver der GND, um so stabiler und störunempfindlicher das Ganze.
Hier gilt: viel hilft viel. Ab wann es genug ist, ist natürlich schwer
zu sagen. Das würden dann EMV-Tests zeigen.
Wenn also Platz ist, macht man den GND so dick wie möglich. Eine
geschlossene Fläche statt einer GND-Verästelung ist hier auch sehr
sinnvoll - daher der Vorschlag zu einem außen herum angeordnetem Rahmen.
Eagle bietet dazu eine sehr hilfreiche Funktion an: "Polygon", dem man
den Namen "GND" gibt.
Genug geschwätzt, Gruß Dietrich