Forum: Mikrocontroller und Digitale Elektronik Arduino Nachbau (Eigenproduktion)


von Dominik L. (domi_96)


Angehängte Dateien:

Lesenswert?

Hallo,

für ein Projekt habe ich eine Arduino mit mehr Anschlüssen benötigt. 
Weil ich schon Erfahrung mit dem Arduino habe und auch eine USB 
Verbindung notwenig war, habe ich also einfach den Arduino Schaltplan 
heruntergeladen und entsprechend bearbeitet (5V Regler wurde entfernt da 
hier direkt ein 5V Anschluss möglich ist).

Nachdem ich die Platinen von Seeedstudio erhalten habe hab ich alle 
Bauteile aufgelötet und den Atmega16U2 programmiert mit der 
Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex und die fuses 
richtig gesetzt - hat alles geklappt (habe dazu eine Buspirate 
verwendet). Als nächstes habe ich noch den Arduino Bootloader auf den 
Atmega328p gespielt (ATmegaBOOT_168_atmega328.hex) und die Fuses gesetzt 
hat auch geklappt.

Dann kam der erste Test: +5V angeschlossen (am +5V Eingang siehe 
Schaltplan) und Masse auf Masse - die ON Led hat geleuchtet und die L 
Led hat leicht geleuchtet. Kam mir direkt merkwürdig vor weil die L Led 
dauerhaft an war also Schalplan und Layout überprüft siehe da der U5 
hatte keine VCC und GND Anschluss also nachgemacht und die L Led war 
aus.

Im nächsten Schritt habe ich das ganze an den PC Angeschlossen ohne 
externe 5V Stromversorgung (also nur über USB) und folgendes war zu 
sehen: die +5V Led und die L Led haben 4mal kurz gezuckt (es war kein 
richtiges leuchten nur minimalst wenig) aber das war auch alles. Windows 
hatte dazu nur "Unknown Device" zu melden. Wenn man aber die 
Masseleitung vom USB mit der allgemeinen Masse verbindet leuchtet die ON 
Led dauerhaft die L Led leuchtet kurz auf. Windows sagt nicht mehr 
"Unknown Device" sondern erkennt gar nichts mehr. Selbe Prozedur auch 
auf einem anderen PC, ein Arduino läuft auf beiden PCs normal. Anstecken 
oder nicht anstecken von VIN oder 5V ändert auch nichts.

Im Anhang habe ich mal den Schaltplan als Bild und als Eagle File (bitte 
nicht über AtMega16 wundern das wird gerade ausgebessert ich werde es 
hier nachreichen wenn es passt mit der Größe :) Ich hoffe irgendwer 
sieht das Problem und kann mir weiterhelfen ich habe jetzt schon mehrere 
Stunden gesucht aber leider nichts gefunden.

Vielen Dank schon mal,
Dominik

von Daneben (Gast)


Lesenswert?

Dominik L. schrieb:
> Im Anhang habe ich mal den Schaltplan als Bild und als Eagle File (bitte
> nicht über AtMega16 wundern das wird gerade ausgebessert ich werde es
> hier nachreichen wenn es passt mit der Größe :)

Ich schlage vor, dass Du den Schaltplan erstmal ORDENTLICH zeichnest und 
ihn dann erneut hier postest. Die Qualität des Schaltplans lässt SEHR zu 
wünschen übrig....Nicht verbundene Bauteile, Verbindungen krumm und 
schief, die grauen Beschriftungen rechts neben dem Atmega, total 
überflüssig...

http://www.mikrocontroller.net/articles/Schaltplan_richtig_zeichnen

von gvs (Gast)


Lesenswert?

Mega 16 Pin 28 N.C.

Nur weil die Linie da endet, ist das noch lange nicht verbunden.

Vorgehen für die Zukunft:
1. Bauteil auswählen und bewegen -> Alle angeschlossenen Leitungen 
werden hellgrün und bewegen sich mit

2. Bauteil an die nicht verbundene Leitung bewegen -> automatischer 
Anschluss

3. nochmal bei 1. beginnen bis alle angeschlossen sind

Weiter hab ich nicht gesucht, das ist dein Job.

von Wolfgang (Gast)


Lesenswert?

Dominik L. schrieb:
> Ich hoffe irgendwer sieht das Problem und kann mir weiterhelfen ich
> habe jetzt schon mehrere Stunden gesucht aber leider nichts gefunden.

Dann guck dir mal in EAGLE Schaltplaneditor die Funktion ERC an. Noch 
schmeißt die dich u.a. wegen schlampig verlegter Netze mit 
Fehlermeldungen zu. Räum da erstmal auf.

von Joachim B. (jar)


Lesenswert?

Dominik L. schrieb:
> für ein Projekt habe ich eine Arduino mit mehr Anschlüssen benötigt.

und warum nimmst du keinen arduino mega2560?
http://arduino.cc/en/pmwiki.php?n=Main/ArduinoBoardMega2560

wenn dir der zu groß ist könnte man auch den nehmen:
https://github.com/JChristensen/mini1284

da habe ich grad mal 6 Platinen bestellt.

: Bearbeitet durch User
von Dominik L. (domi_96)


Angehängte Dateien:

Lesenswert?

UGND war wirklich nicht verbunden habe das mal nachgemacht, weiteres gab 
es auch noch andere Fehler, die Verbindung zu (CTS/HWB/AIN6/TO/INT7)PD7 
hat auch gefehlt hab ich auch nachgemacht. Ich weiß. dass das in Eagle 
Müll ist aber musste sehr schnell gehen (jetzt bereuen wir den Fehler) 
ich werde heute noch das Verbesserte hier hochladen.

Folgendes passiert jetzt: Wenn alles Angeschlossen ist (also VIN +5V GND 
und USB) dann erkennt Windows den Arduino (im Anhang ein Bild von der 
Config wie Windows sie eingestellt hat) - also schon ein großer 
Fortschritt (Danke euch schonmal dafür !!!). Aber man kann immer noch 
nicht über die Arduino IDE programmieren - diese gibt die Fehlermeldung 
"avrdude: stk500_getsync(): not in sync: resp=0x00" von sich, habe auch 
schon Dr. Google dazu befragt und es kann an mehreren Dingen liegen, 
habe daher nochmal die Fuses kontrolliert und sogar den Bootloader 
nochmal neu auf den Atmeaga 328 PU gespielt (was ewig lange dauert mit 
den Buspirate - 30Min ca). Aber auch das hat keine Abhilfe gebracht habe 
in der Arduino IDE mal die Debug Ausgabe aktiviert und euch ein Bild 
davon in den Anhang gegeben. Weiteres leuchtet die RX Led drei mal kurz 
- das passt als mit der Ausgabe zusammen. Die RX und TX Verbindungen auf 
der Platine habe ich nachgemessen und sollten passen (RX auf TX und 
umgekehrt). Folgenden Bootloader habe ich aktuell auf dem Atmega328: 
"ATmegaBOOT_168_atmega328" aus dem Ordern 
Arduino/hardware/arduino/bootloaders/atmega/. Die L Led ist dauerhaft 
an.

Danke und liebe Grüße,
Dominik

von Hubert G. (hubertg)


Lesenswert?

In deiner SChaltung geht der DTR, der zum Reset des 328 geht, nirgendwo 
hin.

von Dominik L. (domi_96)


Lesenswert?

Hubert G. schrieb:
> In deiner SChaltung geht der DTR, der zum Reset des 328 geht, nirgendwo
> hin.

Ich weiß das hat gefehlt habe ich aber mit PD7 verbunden.

von Hubert G. (hubertg)


Lesenswert?

Hast du auch den GND-Fehler am Quarz vom 16U2 behoben?

von Dominik L. (domi_96)


Lesenswert?

Was gibt es da für einen Fehler ?

von Hubert G. (hubertg)


Lesenswert?

Im Layout habe ich da einen Airwire drinnen, C9 und C11 habe keine 
Verbindung zu GND.
Zu Pin 28 des 16U2 geht keine Leitung.

von Dominik L. (domi_96)


Lesenswert?

Pin 28 (UGND) hab ich eh schon vorhin gesagt ist wirklich ein Fehler 
aber habe ich schon davor ausbessern können direkt auf der Platine C9 
und C11 haben wirklich keine Verbindung ich werde das gleich ausbessern 
(noch ein Kabel hübsch über die Platine :) und meld mich gleich wieder - 
Danke auf jeden Fall !!

: Bearbeitet durch User
von Interpunktion (Gast)


Lesenswert?

Und viele Punkte und Kommas hast Du auch noch vergessen.

von Dominik L. (domi_96)


Lesenswert?

Hab die Kondensatoren mit GND verbunden (Leitung zwischen ihnen 
eingelötet und mit GND verbunden) ändert leider nichts am Problem :/

von Hubert G. (hubertg)


Lesenswert?

Im Layout sehr ich keine Fehler mehr, was aber nichts heißen muss.
Fuses im 328 sind richtig für Quarz und Bootloader?

von Dominik L. (domi_96)


Angehängte Dateien:

Lesenswert?

Hubert G. schrieb:
> Im Layout sehr ich keine Fehler mehr, was aber nichts heißen muss.
> Fuses im 328 sind richtig für Quarz und Bootloader?

Hab folgende Fuses:
lfuse: FF
hfuse: DE
efuse: 05

Device signature: 0x1e950f

Das müsste also stimmen. Hab folgenden Quarz verwendet: 
http://www.farnell.com/datasheets/118455.pdf genaue Bezeichnung lautet 
RALTRON  AS-16.000-18  QUARZ,16M, 18PF CL, HC49/4H . Hab die Ausgabe von 
Avrdude mal als Bild hier angehängt.

von Hubert G. (hubertg)


Lesenswert?

Vielleicht doch mal das Blinkprogramm draufspielen auf den 328 um 
sicherzustellen das er überhaupt läuft.

von Martin (Gast)


Lesenswert?

Halte Mal die Reset-Taster gedruckt dann kurz nach dem flashen 
loslassen, was passiert dann?

von Dominik L. (domi_96)


Angehängte Dateien:

Lesenswert?

Hubert G. schrieb:
> Vielleicht doch mal das Blinkprogramm draufspielen auf den 328 um
> sicherzustellen das er überhaupt läuft.

Hab ein einfach Blinkprogramm geschrieben und das klappt einwandfrei er 
bringt die LED schön zum blinken. Programmiert habe ich ihn nat Folgende 
Fehlerquellen gibt es also:

- Falscher Bootloader
- Falsche Firmware am Atmega16U2
- Falsche Fuses am Atmega16U2 (hab im Anhang mal ein Bild von den Fuses)
- sonstige Fehler ?

Das mit dem Reset versuch ich gleich als nächstes muss aber erst wieder 
den Bootloader aufspielen was ziemlich lange dauern wird.

von Dominik L. (domi_96)


Lesenswert?

Martin schrieb:
> Halte Mal die Reset-Taster gedruckt dann kurz nach dem flashen
> loslassen, was passiert dann?

Das ändert leider gar nix - gleiche Fehlermeldung ("avrdude: 
stk500_getsync(): not in sync: resp=0x00").

Der neu aufgespiele Bootloader ändert aber etwas: Die L Led blinkt jetzt 
die ganze Zeit. Wenn ich mich richtig erinnere ist das normal, ist wohl 
beim Standart Bootloader drauf. Bleibt nur mehr die Firmware am 
Atmega16U2 die werd ich nochmal hochladen vlt hilft es ja etwas. Oder 
hat jemand noch eine andere Idee ?

von Dominik L. (domi_96)


Lesenswert?

Muss jetzt noch mal was schreiben zum aktuellen Zustand:

Die falsche Firmware kann eigentlich ausgeschlossen werden weil ein 
Loopback Test funktioniert (das heißt GND und Reset verbunden RX und TX 
nach dem 1k Ohm Wiederstand verbunden und wenn man dann etwas über den 
seriellen Monitor der Arduino IDE sendet muss es wieder zurück kommen - 
tut es auch). Auf den Atmega328p habe ich den Optiboot bootloader 
geflasht dieser schein zu funktionieren - nach einem Reset blinkt die L 
Led mehrmals schnell hintereinander geht dann kurz aus und bleibt 
anschließend dauerhaft an.

Auch sonst konnte leider ich kein Fehler feststellen, vlt findet jemand 
von euch noch etwas.

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.