Hallo zusammen, ich nehme gerade meine erste Schaltung mit einem AVR (ATmega328) und FT232RL in Betrieb und komme gerade nicht weiter (Bootloader Chip45boot2). Die Spannungsversorgung erfolgt im Regelfall über einen 78L05 (speist direkt VCC), kann aber auch über USB erfolgen (s. Schaltplan). Status Quo: AVR und FT232 verrichten ihren Dienst, auch die serielle Kommunikation sowie flashen über USB funktionieren. Wenn USB gesteckt ist, startet der AVR problemlos. ABER: Wenn ich die Schaltung regulär mit Energie versorge (also USB nicht verbunden), startet der AVR nicht (bzw. nicht richtig). Wenn ich ihm dann einen manuellen Reset verpasse, ist alles i.O. Das ist jedoch nicht in meinem Sinn. Daher die Frage: Mit welcher Maßnahme kann ich sicherstellen, dass der AVR auch bei konventioneller Spannungsversorgung korrekt startet? Danke für eure Hilfe Sepp
AREF gehört nicht an VCC. Da gehört nur ein 100nF Kondensator nach GND ran. Die Reset Schaltung am AVR wäre wichtig, die sieht man leider nicht. Vermutlich fehlen auch noch die Abblock Kondensatoren.
Sepp schrieb: > Daher die Frage: Mit welcher Maßnahme kann ich sicherstellen, dass der > AVR auch bei konventioneller Spannungsversorgung korrekt startet? Indem du den Reset-Pin beschaltest (Pull-up, C gegen Gnd). Guck dir mal andere Schaltpläne an. > FT232.JPG Schaltplan nicht als (vermatschte) JPG-Datei posten, sondern als PNG (s. [Bildformate] und Hinweis beim Upload.
Hi, hat die AREF-Beschaltung mit dem Aufstartverhalten zu tun? Anbei nochmal der Ausschnitt vom Schaltplan als PNG. Die 100N-Abblockkondensatoren sind vorhanden, RESET ist per 1K an VCC und 100N an DTR des FT232 (hatte ich beim Arduino NANO abgeschaut). Gruß Sepp
Sepp schrieb: > hat die AREF-Beschaltung mit dem Aufstartverhalten zu tun? Nein, sie ist schlicht falsch oder mindestens gefährlich.
Das sieht nach der bescheuerten Reset Variante aus, die auch auf den Arduino Boards oft benutzt wird. /DTR vom FT232 soll über den 100nF ein /Reset auf den AVR geben. Sinn und Zweck dieser Nummer ist eh fragwürdig. Du fährst vermutlich besser, wenn du den 100nF von /DTR mal von Reset trennst. Es sollte dann schon mal alles klappen. Du kannst dann Reset immer noch mit einem kleineren C (10n-22n) gegen Masse beschalten - ein Pullup hat der Pin eh schon eingebaut. Höhere C an Reset interferieren gerne mal mit ISP Programmern, die keine höheren Kondensatoren entladen können oder nicht genug Geduld beim einschalten des Prog. Modus haben. Manche Leute legen auch eine Diode von /Reset in Sperrichtung nach Vcc. Wenn Vcc zusammenbricht oder noch nicht gross genug ist, wird der Reset Pin so auf low gezogen.
:
Bearbeitet durch User
Ok, dann lass ich den C mal weg. Für mein Verständnis: Wie kommt der AVR dann zu seinem Reset, wenn ich neu flashen will? Muss ich das per SW-Reset (bzw. Einsprung in den Bootloader) lösen? Gruß Sepp
Und bei nicht (ausschließlich) USB-gespeistem FT232 solltest du nach Datenblatt den /Reset des FT232 beschalten. So wie das jetzt ist, ist das meiner Erinnerung nach falsch.
Sepp schrieb: > Ok, dann lass ich den C mal weg. Und mach mal den Pullup deutlich grösser. 1k ist sehr, sehr wenig. Wie gesagt, du kannst ihn auch ganz weglassen, denn die AVR haben einen internen an Reset. Beim 2009er Arduino sinds z.B. 10k. Sepp schrieb: > Wie kommt der AVR > dann zu seinem Reset, wenn ich neu flashen will? Hängt von deinem Bootloader ab. Manche werden dann mit einem Druck aufs Resetknöpfchen zufrieden sein. Da kann ich sonst nix zu sagen, da ich mit ISP programmiere. Felix Adam schrieb: > So wie das jetzt ist, ist > das meiner Erinnerung nach falsch. So isses. Im 2009er ist Reset direkt mit VCCIO und VCC5V verbunden - als Abblockung ein 100nF gegen Masse.
:
Bearbeitet durch User
Im Datenblatt unter "Self Powered Configuration" findet man einen Spannungsteiler am /RESET des FT232, der den Pin auf Masse zieht, solange kein Anschluss an einen USB-Port erfolgt.
Danke für eure Hinweise! Ich passe meine Schaltung an ... Gruß Sepp
Hallo, noch als Rückmeldung: Den C zu entfernen hat keinen Unterschied gemacht ... Ich hab's jetzt anders gelöst: Die BOOTRST-Fust habe ich rückgesetzt und springe jetzt über ein UART-Kommando zum Bootloader. Funktioniert stabil (sogar beser als davor). Grüße Sepp
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.