Hallo, mein ATMega128 startet einfach nicht wenn etwas in den UART PINs "passiert". An den PINs darf kein USBtoUART, Raspberry GND, VCC oder sonstiges anliegen. Nichteinmal als I/O PINs lassen diese nicht nutzen. Nur wenn die PINs Frei sind startet der Controller. Es ist auch egal ob man UART oder I/O nutzen möchte... Erst wenn der Controller in der Hauptschleife läuft kann man dort etwas anschließen. Kann sich/mir das jemand erklären?
Da Äonen von Nutzern die UART am ATmega128 bereits benutzt haben, lässt es sich eigentlich ausschließen, dass diese per se kaputt ist. "Startet nicht" ruft natürlich sofort die Erinnerung an die leidige M103C-Fuse in Erinnerung. Hast du die gelöscht?
Christina A. schrieb: > Kann sich/mir das jemand erklären? Die Spannung darf an (fast) allen Pins maximal 0,5V höher sein, als die Versorgungsspannung. Wenn du diese Bedingung nicht einhalten kannst, musst du mit Fehlfunktionen leben. UART Schnittstellen haben im Ruhezustand HIGH Pegel. Wenn dein Mikrocontroller keine Stromversorgung hat aber ein UART Signal anliegt, ist das eindeutig außerhalb dieser Anforderung.
Christina A. schrieb: > Ja... > > Fuses OK (E:FF, H:D8, L:7F) Du hast einen Bootloader aktiviert. Spuckt der vielleicht in die Suppe, wenn da was dran ist an den Pins?
Komischerweise ist es ja so... Ich habe den Bootloader drauf und alle funktioniert wunderbar... Ich kann Flashen etc.. Beim Reset startet der Bootloader usw... Dann Flashe ich das Hauptprogramm.. und sobald dann etwas am UART hängt startet er einfach nicht... Auch wenn ich den UART unkonfiguriert lasse.. Ich kann die PINs auch auf High oder LOW setzen... hilft nichts.... Nachdem der AVR aber dann in der main ist.. kann ich per UART kommunizieren...
Ist die Schaltung sauber? (Ordentliche Versorgung, Kerkos, alle VCC Pins versorgt, kein Signal vor VCC anliegend) Es klingt soweit nach einem Softwareproblem. Vielleicht irgendein Interrupt aktiv, ggf. Überreste vom Bootloader?
Christina A. schrieb: > Kann sich/mir das jemand erklären? Die Schaltung wird über die UART Pins und die Eingangsschutzdioden im ATMEGA dauerversorgt. Dadurch passiert kein ordentlicher Reset. Eventuell reicht ein Serienwiderstand in der UART-Leitung. Ansonsten gibt es Puffer wie z.B. CD4050 die anstelle Eingangsschutzdioden Z-Dioden verwenden. Oder ggf. ein Pegelwandler mit BSS138. Gruß Anja
Anja schrieb: > Die Schaltung wird über die UART Pins und die Eingangsschutzdioden im > ATMEGA dauerversorgt. Dadurch passiert kein ordentlicher Reset. So ein Blödsinn. Selbst wenn die Speisung nur vollkommen parasitär ist, wenn man Reset auf Low zieht, dann gibt auch einen Reset. Fraglich ist nur, ob das Teil danach ordentlich wieder hoch kommt. Allerdings: wenn ein Bootloader beteiligt ist, dann wird der Reset ja i.d.R. nicht über den Reset-Pin ausgelöst (sondern z.B. über den Watchdog), möglicherweise gibt es sogar nichtmal einen echten Reset. Hängt also alles vom Bootloader ab. Der kann beliebig Scheiße programmiert sein. Also: @Christina (vermutlich sowieso nur ein Fake) Zeig' den verwendeten Bootloader!
Christina A. schrieb: > Keiner eine Idee? Ist bisschen umfangreich, um das zu erraten. JTAG hast du per Fuse ausgeschaltet, ansonsten könnte man da mal mit'm Debugger drauf gehen. (Für einen ATmega128 würde ja sogar so'n uralter JTAGICE-Clone genügen.) Außerdem fehlt der Code vom Bootloader, sodass nicht klar ist, ob der das System in einem „halbseidenen“ Zustand hinterlässt. 0xF000 ist für einen ATmega128 übrigens keine gültige Booloader-Adresse. Es wäre sinnvoll, wenn du dein Projekt konsistent hälst. Wenn zu twimaster.c ein i2cmaster.h gehört, dann sucht man schon ein wenig. Außerdem solltest du dich entscheiden, ob du F_CPU im Makefile oder in sytem.h definierst, aber nicht in beiden.
Problem wurde die Nacht behoben. Eine elektronische Verbindung zwischen Duko (SDA) und Leiterbahnen (TxD) war das Problem. Die Duko ist so nah das die Aura nicht ganz die elektrische Verbindung trennt (0.1mm). Einmal mit dem Cuttermesser entlang der Leiterbahnen und das Problem war behoben.
Christina schrieb: > Die Duko ist so nah das die Aura nicht ganz die elektrische Verbindung > trennt (0.1mm). Und das hat der DRC nicht bemerkt? Der Fertiger auch nicht? Hmm. Schön, dass es geht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.