Ich soll in einem Projekt ein Mega 2560 R3 benutzen:
http://arduino.cc/en/Main/ArduinoBoardMega2560
Nachdem ich das Referenz-Design in EAGLE geöffnet habe, frage ich mich
allerdings, ob die das Ernst meinen und ob das Ding überhaupt stabil
läuft wenn man als erste Aktion den Bootloader killt und direkt in C
darauf programmiert.
- 351 Fehler im DRC, eine offene Luftlinie
- zwei 100nF für fünf VCC Anschlüsse von denen C6 nur bedingt was macht
und C5 einfach nur sinnlos angebunden ist
- C3 zur Stabilisierung von ARef ist einige cm und zwei VIAs vom Pin weg
- statt Quarz ist da ein Keramik-Resonator dran der unnötig weit weg vom
Controller sitzt und dessen GND-Anschluss unmotiviert an das umliegende
GND-Polygon angeschlossen ist
- ISP Leitungen sinnlos um das halbe Board gewickelt und die abgehenden
SPI-Leitungen haben keine Widerstände
Ich hoffe gerade, dass die Boards die ich dann in ein paar Tagen
erhalten werden nicht so aussehen.
Ich will damit zwei Motor-Treiber ansteuern, das braucht zwei PWMs bis
20kHz, ein paar Ausgänge, ein paar Eingänge, zwei ADCs.
Und irgendwie ist mir bei der Planung der Pins etwas flau im Magen mit
dem Board auf dem Bildschirm.
Bootloader (killen) und programmieren haben nicht sehr viel miteinander
zu tun.
Der Bootloader sollte, aufgrund der Häufigkeit der Anwendung praktisch
fehlerfrei sein.
Trifft das aber auf dein Programm nicht zu, so ist es völlig egal, wie
es in den Flash-Speicher gekommen ist.
Da der Bootloader im Normalbetrieb auch nicht am Programmlauf beteiligt
ist ist die Frage: "Läuft das stabil" - Unsinn.
Amateur schrieb:> Bootloader (killen) und programmieren haben nicht sehr viel> miteinander> zu tun.> Der Bootloader sollte, aufgrund der Häufigkeit der Anwendung praktisch> fehlerfrei sein.
Er will direkt programmieren (mit C) und den Arduino-Bootlader NICHT
benutzen. Deswegen
>> "wenn man als erste Aktion den Bootloader killt und direkt in C>> darauf programmiert.">> Trifft das aber auf dein Programm nicht zu, so ist es völlig egal, wie> es in den Flash-Speicher gekommen ist.>> Da der Bootloader im Normalbetrieb auch nicht am Programmlauf beteiligt> ist ist die Frage: "Läuft das stabil" - Unsinn.
Hast du den Beitrag eigentlich gelesen? Die Punkte, die er alle
angeführt hat? Hier geht es um die Platine und nicht um seine
Programmierfähigkeiten.
Ja, und was für eine Platine meint er?
Wenn er sich den Arduino Mega besorgt - ja der läuft.
Wenn er sich selbst was bastelt - ja kümmer dich drum, dass es läuft.
Harald schrieb:> Ja, und was für eine Platine meint er?
Die, die er verlinkt hat.
http://arduino.cc/en/Main/ArduinoBoardMega2560> Wenn er sich den Arduino Mega besorgt - ja der läuft.> Wenn er sich selbst was bastelt - ja kümmer dich drum, dass es läuft.
Er hat das Reference Design im Eagle geöffnet und nix selber gebastelt.
Liest denn hier keiner mal, was geschrieben wird?
@EnnPehEnn
Da die Foren nicht alle vollgestopft sind mit Posts wie "Meine
Arduino-Hardware macht Probleme" - ich selber vier verschiedene
verwendet habe - gehe ich mal davon aus, dass die Dinger "laufen".
Natürlich schließt das nicht aus, dass beim "Arduino Mega 2560 R3", den
ich nicht kenne, alles ganz anders ist.
Na was will er? Wissen ob eine etablierte Schaltung lauft? Das routing
neu machen und nachbauen? Btw der original arduino mega hat einen quarz
drauf...
Mag ja sein, daß er läuft. Nachdem ich das Layout angesehen habe, bin
ich aber der Meinung, daß das eher Zufall ist. Darüber können auch die
schön parallel verlegten Leiterzüge nicht hinwegtäuschen. Sieht
natürlich sehr professionell aus (auf den ersten Blick). Aber die
angesprochenen Punkte sind wirklich zu kritisieren. Bis auf die 351
Fehler, das sind zum größten Teil Abstandsfehler, die am Mega2560
auftreten, weil die Design-Rules nicht auf den kleinen Pitch
konfiguriert sind. Die Luftlinie ist in der Tat vorhanden. Und auch der
weit entfernte C an Aref. Mir gefällt das Layout jedenfalls auch nicht.
Da würde ich noch ein paar Stunden reinstecken, wenn ich es bauen müßte.
Aber wie gesagt, es scheint zufälligerweise zu laufen, was solls...
Rudolph schrieb:> Ich soll in einem Projekt ein Mega 2560 R3 benutzen:> http://arduino.cc/en/Main/ArduinoBoardMega2560
Wer zwingt dich denn zu sowas?
> Nachdem ich das Referenz-Design in EAGLE geöffnet habe, frage ich mich> allerdings, ob die das Ernst meinen und ob das Ding überhaupt stabil> läuft wenn man als erste Aktion den Bootloader killt und direkt in C> darauf programmiert.
Klar tut es das, du wärst nicht der erste, der das so macht.
Kleiner Tipp: wenn du eh an den Fuses rumänderst um den Bootloader
restlos loszuwerden schau sie dir alle an.
Brownout z.B. steht nur auf 2,7 V. Das würde ich bei 8MHz ja noch
verstehen aber bei 16 MHz?!
> - 351 Fehler im DRC, eine offene Luftlinie
Ich halte einen Mega2560 RC3 in den Händen. Auf der Platine ist das Pad
mit der Luftlinie ordnungsgemäß angebunden. siehe Bild
Die 351 Fehler sind nicht kritisch, hast du sie dir mal angesehen?
Clearance-Fehler an den Pins des Mega2560? DRC falsch eingestellt...
Drill-Distance-Fehler? DRC falsch eingestellt...
Width Fehler überwiegend an der +5V Leitung? Nur eine Netzklasse für
Versorgungsspannung definiert... und der kleine 16U2 braucht nun
wirklich keine 30 mil an der Versorgung...
> SPI-Leitungen haben keine Widerstände
Falls du dir eine eigene Adapterplatine (neudeutsch: "Shield") baust,
ist es ja kein Problem Serienwiderstände mal eben mit draufzusetzen.
Ermöglicht dir sogar den Spaß Wellenwiderstände konkret zu berechnen und
entsprechend Werte auszuwählen falls du so hardcore drauf bist.
> Ich hoffe gerade, dass die Boards die ich dann in ein paar Tagen> erhalten werden nicht so aussehen.
Wenn es originale Arduinos sind anscheinend mit kleinen Änderungen
(siehe oben) wohl doch.
> Ich will damit zwei Motor-Treiber ansteuern, das braucht zwei PWMs bis> 20kHz, ein paar Ausgänge, ein paar Eingänge, zwei ADCs.> Und irgendwie ist mir bei der Planung der Pins etwas flau im Magen mit> dem Board auf dem Bildschirm.
Wird funktionieren...
Edit: Achso ja und nen Quartz ist da auch drauf an besagter Stelle aus
dem Layout, aber davon mach ich jetzt nicht auch noch nen Bild...
Rudolph schrieb:> <snip>...<snip>
Er schrieb nichts dazu:
Rudolph schrieb:> - zwei 100nF für fünf VCC Anschlüsse von denen C6 nur bedingt was macht> und C5 einfach nur sinnlos angebunden ist
Und da hätte ich dann doch Bedenken, daß das so stabil läuft.
Oliver
Bernhard F. schrieb:> Wer zwingt dich denn zu sowas?
Zeitdruck, nicht meine Schuld oder die von meinem Projektleiter, aber
ich habe leider nichts passendes "in der Schublade" -> ganz oben auf der
To-Do Liste.
>> ob das Ding überhaupt stabil>> läuft wenn man als erste Aktion den Bootloader killt und direkt in C>> darauf programmiert.>> Klar tut es das, du wärst nicht der erste, der das so macht.
Oh, dass es grundsätzlich geht ist klar, ich meinte mehr so ob mir das
Ding nicht abschmiert wenn ich auch nur ansatzweise versuche die
Fähigkeiten des Controllers auszunutzen.
> Kleiner Tipp: wenn du eh an den Fuses rumänderst um den Bootloader> restlos loszuwerden schau sie dir alle an.> Brownout z.B. steht nur auf 2,7 V. Das würde ich bei 8MHz ja noch> verstehen aber bei 16 MHz?!
Ja, okay. :-)
Und JTAG einschalten.
>> - 351 Fehler im DRC, eine offene Luftlinie>> Ich halte einen Mega2560 RC3 in den Händen. Auf der Platine ist das Pad> mit der Luftlinie ordnungsgemäß angebunden. siehe Bild
Die beiden Kondensatoren oben Links sind im Referenzdesign auch nicht
da.
> Die 351 Fehler sind nicht kritisch, hast du sie dir mal angesehen?
Ja, hab ich, das war ja auch ohne Bewertung und ich wollte nur andeuten,
mit wieviel Hingabe das Board erstellt wurde.
Die Fehler im ERC habe ich ja nichtmal erwähnt. :-)
>> SPI-Leitungen haben keine Widerstände>> Falls du dir eine eigene Adapterplatine (neudeutsch: "Shield") baust,> ist es ja kein Problem Serienwiderstände mal eben mit draufzusetzen.> Ermöglicht dir sogar den Spaß Wellenwiderstände konkret zu berechnen und> entsprechend Werte auszuwählen falls du so hardcore drauf bist.
Ja gut, das fällt eigentlich eher unter System-bedingtes Problem,
genauso wie ja auch Null Schutz der Pins vorgesehen ist.
>> Ich hoffe gerade, dass die Boards die ich dann in ein paar Tagen>> erhalten werden nicht so aussehen.>> Wenn es originale Arduinos sind anscheinend mit kleinen Änderungen> (siehe oben) wohl doch.
Kleine Änderungen bedeuten wenigstens, dass es jemanden kümmert.
>> Ich will damit zwei Motor-Treiber ansteuern, das braucht zwei PWMs bis>> 20kHz, ein paar Ausgänge, ein paar Eingänge, zwei ADCs.>> Und irgendwie ist mir bei der Planung der Pins etwas flau im Magen mit>> dem Board auf dem Bildschirm.>> Wird funktionieren...
Dann aber Respekt an Atmel...
Bernhard F. schrieb:> Edit: Achso ja und nen Quartz ist da auch drauf an besagter Stelle aus> dem Layout, aber davon mach ich jetzt nicht auch noch nen Bild...
In Deinem Bild sieht man doch den Resonator.
Auf den USB-Teil bin ich nichtmal eingangen, der kann auch zufällig vom
Board fallen für meine Anwendung. :-)
Aber 22pF sagen eigentlich schon alles, dazu die lausige GND-Anbindung.
Rudolph schrieb:> Und JTAG einschalten.
Hab dir da noch was angehangen, was ich dafür mal schnell
zusammengetippt hab. Ich hatte nur einen JTAG ICE MK II mit dem 10 Pin
Anschluss ohne Adapter zur Verfügung. Ist aber kompatibel zum JTAG ICE
3. Nicht schön, aber selten. Vieleicht erspaart dir die 2. Hälfte vom
PDF 5 Minuten Datenblätter wälzen.
Rudolph schrieb:> In Deinem Bild sieht man doch den Resonator.
Notiz an mich: Denken vor dem Posten...
Dem kleinen 16u2 haben sie den Quarz auf dem Board spendiert. Hab mich
zwar noch gewundert, warum der so weit vom großen Mega ist aber ja jetzt
merk ich es selbst...
Da kann man ja fast nen LKW zwischen Resonator und Mega parken so viel
Platz ist da...
Wah hör auf... ich will da nicht drüber Nachdenken... es läuft...
Rudolph schrieb:>>> ob das Ding überhaupt stabil>>> läuft wenn man als erste Aktion den Bootloader killt und direkt in C>>> darauf programmiert.>>>> Klar tut es das, du wärst nicht der erste, der das so macht.>> Oh, dass es grundsätzlich geht ist klar, ich meinte mehr so ob mir das> Ding nicht abschmiert wenn ich auch nur ansatzweise versuche die> Fähigkeiten des Controllers auszunutzen.
Wie gesagt: Du bist nicht der erst der das so macht.
Aber du wärst wohl der erste bei dem das Ding abschmiert...
Ich benutze neben den Orginalen Arduino-Mega2560 auch china-clone davon,
und selbst die funktionieren.
Nur damit du ne vorstellung hast was ich damit mache:
Alle 4 usart "gleichzeitig" bedienen: senden und empfangen interrupt
getrieben (3x 9k6, 1x 38k4)
Dazu noch 4 Timerinterrupts
2x pinchange intrrupt
1x ext. Interrupt, ausgelöst durch Tastendruck
und noch n bisschen mehr, wie crc-berechnung, in den eeprom schreiben
/daraus lesen usw... und ja: das ist ein Programm!
Jaja, is noch nicht wirklich "super-duper-mega-hyper-advanced", fällt
für mich trotzdem in die Kategorie: "ansatzweise versuche die
Fähigkeiten des Controllers auszunutzen". Und das ganze mach ich da
sogar noch in Krüppel C/C++ Misch-Masch... und du wirst es nicht
glauben, aber das Ding läuft stabieler als ne Oma mit Krückstock ;)
Ich habe die Dinger seit gestern da und erstaunlicherweise laufen die
erstmal.
Respekt an Atmel!
Bei der Versorgung haben wir uns gefragt warum die nur bis 12V
funktionieren können soll.
Und dabei ist mir das Layout dazu aufgefallen, siehe Bild.
Das kann eigentlich garnicht funktionieren, der Regler muss eigentlich
sofort anfangen zu schwingen und macht es erstaunlicherweise nicht.
Wieso? Weil "IC1" ein LDO ist der am Ausgang einen Low-ESR Kondensator
von 33mR bis 2,2R mit mindestens 4,7µ braucht.
Blöderweise ist "PC2" nicht so angeordnet, dass der diese Funktion
erfüllen könnte.
Und ja, das Design entspricht nicht ganz dem Referenz-Design aber der
Part ist genauso ausgeführt.
Auf diesen Müll werde ich mich nie wieder einlassen.
Rudolph schrieb:> Bei der Versorgung haben wir uns gefragt warum die nur bis 12V> funktionieren können soll.
Die zulässige Verlustleistung des Spannungsreglers auf dem Board beträgt
ca. 1 Watt, und die 12V-Angabe ist von den Arduino-Machern so
spezifiziert, dass man am 5V-Pin des Boards noch etwas Strom entnehmen
kann, ohne den Spannungsregler zu überhitzen.
Das nackte Board alleine zieht ca. 50 mA.
Falls Du am 5V-Pin (und auch am 3.3V-Pin) keinen zusätzlichen Strom
entnehmen möchtest, kann die Spannung auch höher sein.
Bei beispielsweise 20V Eingangsspannung würde der Spannungsregler ja 15
Volt verbraten müssen.
Nach der Formel P=U*I, bzw. I=P/U= 1 Watt / 15 Volt = 66,6 mA könntest
Du also das nackte Board (ca. 50 mA) mit 20 Volt Eingangsspannung
versorgen und noch zusätzlich 16 mA für irgendeinen angeschlossenen
Sensor, ohne dass Du die 1-Watt Verlustleistung für den Spannungsregler
überschreitest.
Die Arduino-Macher geben nur 12 Volt maximal an, damit man auch mal 100
mA am 5V-Pin ziehen darf.
Das nen LDO Verlust-Leistung produziert war mir schon klar, wenn man
weniger Strom braucht verträgt der auch mehr Spannung.
Aber wegen der Angabe, dass die Schaltung nur 12V verträgt musste ich
genauer hinsehen und das war doch der Grund von meinem Post, das
unglaublich schlechte Layout habe ich angeprangert.
Strom, ja, nackt hat das Board 76mA gezogen, jetzt gerade bin ich mit
Programm auf 14mA runter.
Schön sehen die 5V auch nicht aus.
Ich verstehs noch immer nicht. Wenn dir der arduino mega zu schlecht ist
mach dir dein Board doch selber!? Ich hatte jedenfalls noch nie Probleme
damit. Und wozu sollte man 20V reinjagen wenns 7-9V auch tun?
Harald schrieb:> Ich verstehs noch immer nicht.
Lesen würde helfen, steht alles schon oben.
> Und wozu sollte man 20V reinjagen wenns 7-9V auch tun?
Weil man sich das nicht immer aussuchen kann, der Aufbau wird von einer
12V Batterie gespeist und da soll auch mal ein Ladegerät dran hängen
können.
Da wären 12V Spannungsfest recht hinderlich.
Vor den Dingern kann man eigentlich nur warnen.
Naja, ich würde ein arduino Board auch nicht unbedingt in einem
konkreten Projekt verbauen. Eher zum basteln und wenns was konkretes
wird eine Platine nach meiner Vorstellung...
Rudolph schrieb:> Lesen würde helfen, steht alles schon oben.
Wenn du dir deine Angeberei sparen wuerdest, wuerde das auch helfen. Du
bist die gleiche Type wie cybloard: Immer schoen die Klappe aufreissen,
aber selbst nichts bieten. Wenn du wirklich so toll bist: Fixe die
Fehler im Design und gib's der Arduino-Community als deinen Beitrag.
Aber du bist sicher auch einer von denen, die gerne von der Arbeit
anderer profitieren, aber nichts zu zurueck geben?
Welche Angeberei denn?
Profit? Ja, eine Platine mit Controller drauf, deutlich weniger als ich
erwartet habe, wenig mehr als ein Lochraster-Aufbau.
Und natürlich voll bezahlt als Original inklusive der nicht benötigten
Software dazu.
Zurück gegeben habe ich genug indem ich hier auf die Defizite
hingewiesen habe, wenn die nicht fähig sind mal ein Datenblatt
aufzumachen, dann ist denen leider sowieso nicht zu helfen.
Wenn überhaupt müsste ich bis hierhin schon eine Rechnung ausstellen.
Quack+ schrieb:> Wenn du wirklich so toll bist: Fixe die> Fehler im Design und gib's der Arduino-Community als deinen Beitrag.> Aber du bist sicher auch einer von denen, die gerne von der Arbeit> anderer profitieren, aber nichts zu zurueck geben?
Da würde er seine Zeit verschwenden. Die Arduino-Community ist ziemlich
beratungsresistent.
An der Spitze Wichtigtuer die "Design" bei Louis Vuitton gelernt haben -
die Art von Design, die nichts mit Elektronik zu tun hat. Die bekommen
ja nicht mal zwei Header anständig ausgerichtet.
Auf der nächsten Ebene die Propagandisten und Abstauber, ebenfalls
Wichtigtuer. Die helfen die Sau ständig weiterhin durchs Dorf zu
treiben. Wie die sogenannten Journalisten von Make oder Bastelläden wie
Adafruit.
Dann die kleineren Lichter, die im wahrsten Sinne des Wortes zeigen
wollen was für Leuchten sie sind, indem sie ein paar LEDs blinken
lassen.
Irgendwo ganz unten dann die bedingungslos Gläubigen, die an die
Unfehlbarkeit ihrer Wichtigtuer glauben.
Denen kann man nicht mit fachlichen Informationen kommen. Besonders
nicht in einer Community, die glaubt man müsse nichts richtig lernen und
von der man sich als echter Ingenieur noch beschimpfen lassen muss.