ATmega mit FT232 braucht manuellen Reset

Gast #4477508
Lesenswert?

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
Angehängte Dateien:
Gast #4477534
Lesenswert?

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.
Gast #4477546
Lesenswert?

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
Angehängte Dateien:
(Firma: matzetronics) #4477552
Lesenswert?

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.
(Firma: matzetronics) #4477566
Lesenswert?

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.
Gast #4478027
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren