Forum: Mikrocontroller und Digitale Elektronik Arduino Sketchupload mit FTDI @ 3,3 V funktioniert nicht


von Rudi (Gast)


Lesenswert?

Hallo,

habe hier einen Atmega 1284p auf einem Breadboard auf welchen ich 
Programme mittels Arduino IDE und einem FTDI Adaper aufspiele. Bei 5 V 
funktioniert alles problemlos. Jetzt wollte ich die Schaltung auf 3,3 V 
umbauen und habe den FTDI Adapter auf 3,3 V gejumpert (BOD Spannung ist 
mit 2,7 V gefust). Der Prozessor läuft mit internen 8 MHz. An DTR sitzt 
noch ein 0,1 uF Kerko.

Fehlermeldung:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x33

Kann hier jmd Abhilfe schaffen?

von Frickelfritze (Gast)


Lesenswert?

Reines Rx/Tx wird nicht funktionieren, du musst schon per
Reset-Auslösung dem Bootloader sagen dass jetzt Daten kommen.

Rudi schrieb:
> An DTR sitzt noch ein 0,1 uF Kerko.

Das musst du erst mal zeigen wie der verschaltet ist.

von Rudi (Gast)


Lesenswert?

Der Reset wird doch automatisch ausgelöst? Bei 5 V funktioniert es ja. 
Der Kerko sitzt in Serie zwischen DTR und Reset vom Atmel. Viel. einen 
größeren Wert versuchen?

von Frickelfritze (Gast)


Lesenswert?

Rudi schrieb:
> Der Prozessor läuft mit internen 8 MHz.

- Kann der Bootloader das?
  Arduino bräuchte 16 Mhz, denke ich, wegen der richtigen
  Baudrate ...

- Ist überhaupt ein Bootloader drauf?

- Reset beschaltet wie beim Arduino Original?

von Rudi (Gast)


Lesenswert?

Bootloader ist drauf, es funktioniert ja auch alles sonst paletti. Nur 
eben nicht bei 3,3 V. Der Systemtakt hat doch nichts mit der Spannung zu 
tun, oder? Ich hatte das Problem damals auch schon bei 5 V, jedoch hatte 
der 0,1 uF Kerko das Problem gelöst. Habe soeben mit etwas größeren und 
kleineren Kerkos herum probiert, jedoch auch ohne Erfolg.

von Frickelfritze (Gast)


Lesenswert?

Dannn wirst du nicht umhin kommen deine Schaltung und
den Aufbau zu zeigen.

Abblock-Cs (2 Stück) an Prozessor und (auch 2 Stück) an
Spannungsregler 3.3V? (oder woher kommen sonst die 3.3V?

von Rudi (Gast)


Lesenswert?

Gerade nochmal testweise mit 5 V ohne Kerko probiert. Dort ist dann auch 
dieses Verhalten, dass der Atmel nicht "in sync" ist.

von Frickelfritze (Gast)


Lesenswert?

Ich wiederhole:

Frickelfritze schrieb:
> Abblock-Cs (2 Stück) an Prozessor und (auch 2 Stück) an
> Spannungsregler 3.3V? (oder woher kommen sonst die 3.3V?

von Rudi (Gast)


Lesenswert?

3,3 V werden vom FTDI aus den 5 V vom USB gewandelt und aufs Board 
gelegt. Abblockkondi sitzt, leider konstruktionsbedingt, aktuell noch 
etwas weiter weg vom Versorgungspin. Ich bastel ihn mal direkt ran.

von Rudi (Gast)


Lesenswert?

Hat leider auch nichts bewirkt :(

von Frickelfritze (Gast)


Lesenswert?

Rudi schrieb:
> 3,3 V werden vom FTDI aus den 5 V vom USB gewandelt

Dem FTDI Chip kann man nicht viel Strom abverlangen (habe
gerade keine Daten dafür parat). Müsste auf jeden Fall
mit einem Elko ca. 10uF gepuffert werden.

von Rudi (Gast)


Lesenswert?

Hmmm, das schaue ich mir heute Abend nochmal an. Ist ne Idee.

von Frickelfritze (Gast)


Lesenswert?

Frickelfritze schrieb:
> Dem FTDI Chip kann man nicht viel Strom abverlangen

Im Zweifelsfall:

- Spannung beim Download-Versuch messen, wenn möglich mit
  Oszilloskop.

- Extern mit "richtigen" 3.3V versorgen.

- Trotzdem Elko 10uF zum puffern der Versorgung anwenden.

von Mick (Gast)


Lesenswert?

Wird der ATmega mit 16MHz getaktet? Dann sind die 3.3V eventuell zu 
wenig...

von GeGe (Gast)


Lesenswert?

Frickelfritze schrieb:
> Dem FTDI Chip kann man nicht viel Strom abverlangen (habe
> gerade keine Daten dafür parat).

sind 50mA.

von Rudi (Gast)


Lesenswert?

Moin,

habe jetzt auf 1MHz intern gefust, Labornetzteil mit 3,3 V 
angeschlossen, immer noch ohne Erfolg. Mit einem USBASP kann ich 
problemlos bei 3,3V flashen (mit zusätzlicher Spannungsversorgung).

von Philipp K. (philipp_k59)


Lesenswert?

Das muss auf jedenfall was einfaches sein.. das sollte ohne probleme 
klappen, egal wie.

Rudi schrieb:
> habe jetzt auf 1MHz intern gefust,

na hoffentlich auch den Bootloader auf 1Mhz angepasst, sonst ist die 
baudrate /16 einzustellen bzw in der boards.txt anzupassen..

von Rudi (Gast)


Lesenswert?

Bootloader wurde entsprechend gebrannt.

von Rudi (Gast)


Lesenswert?

Beim Anschluss des USB Steckers vom FTDI Adapter, unter gejumperter 5 V 
Spannung an den Laptop, blinkt die Arduino-Status LED und zeigt die 
Initialisierung durch blinken an. Bei 3,3 V Spannung blinkt nichts. 
Vielleicht hilft das bei der Fehlersuche? Habe auch mal den Widerstand 
vom Reset-Pin des Atmel verändert, hilft aber auch nichts. Aktuell sind 
10 kOhm dran. Langsam gehen mir die Ideen aus.

Nochmal der Überischt halber die Schaltungsdetails:

- FTDI mit 3,3 bzw. 5 V per USB am Laptop
- Netzteil mit 3,3 V angeschlossen
- 10 kOhm Pullup am Atmel-Reset
- 100 nF am Atmel VCC auf GND
- 10 uF VCC auf GND
- 100 nF zwischen DTR (FTDI) und Atmel-Reset


Bei dieser Konstellation funktioniert der FTDI nur unter 5 V Spannung.

von Joachim B. (jar)


Lesenswert?

Rudi schrieb:
> Der Systemtakt hat doch nichts mit der Spannung zu
> tun, oder?

doch bei 16MHz reicht 3,3V nicht
Lese das Datenblatt

http://www.atmel.com/images/doc8059.pdf
sogar auf Seite1

Speed Grades
–  0 - 4 MHz @ 1.8 - 5.5V
–  0 - 10 MHz @ 2.7 - 5.5V
–  0 - 20 MHz @ 4.5 - 5.5V

von Rudi (Gast)


Lesenswert?

Kann es am Adapter liegen? Habe einen Beitrag gefunden, wo jemand 
augenscheinlich das gleiche Problem hat:

https://forum.arduino.cc/index.php?topic=474941.0

"I've seen some adapters that have a jumper (physical or cut+jump pads) 
for 3.3v mode that actually don't work in that mode"

3,3 V liegen zwischen GND und VCC des Adapters an.

Dieser Adapter ist es:

https://www.ebay.de/itm/FTDI-Adapter-FT232RL-USB-zu-TTL-Serial-fuer-3-3V-und-5V-fuer-Arduino-PRO-Mini-/331744431360

Ich kann mir aber nicht so richtig vorstellen, dass es am Adapter liegen 
soll.

von Philipp K. (philipp_k59)


Angehängte Dateien:

Lesenswert?

Joachim B. schrieb:
> doch bei 16MHz reicht 3,3V nicht

Naja als Hobby aufm Breadboard funktioniert das auch immer.. das 
auszuschließen schadet aber nicht.


anbei nochmal die Grafik aus dem Datasheet.

von Rudi (Gast)


Lesenswert?

Habe mit intern 1 MHz und extern 8 MHz geprüft. Beides funktionierte 
nicht.

von Richard B. (r71)


Lesenswert?

Hast du ein original FT232 zum testen?
Ein Schaltplan zum FT232 vielleicht?

von Rudi (Gast)


Lesenswert?

Leider nein. Ich habe heute eine Nachricht an den Verkäufer geschickt. 
Mal schauen was er meint.

von Philipp K. (philipp_k59)


Lesenswert?

Was ist denn eigentlich wenn man ein Serielles Echo-Programm mit 5V über 
den FTDI flasht und dann mit der Konsole auf 3,3V sendet und empfängt?

Beispiel:
1
void setup() {
2
Serial.begin(9600);
3
}
4
5
void loop() {
6
while (Serial.available() > 0) {
7
char e = Serial.read();
8
Serial.print(e);
9
}
10
}

von Joachim B. (jar)


Lesenswert?

Rudi schrieb:
> Habe mit intern 1 MHz und extern 8 MHz geprüft. Beides funktionierte
> nicht.

WAS funktioniert nicht?

Bootloader auf intern 1 MHz angepasst?
Bootloader auf extern 8 MHz angepasst?
Arduino upload funktioniert nicht?

gebt nur nicht zu viele Infos....

von Rudi (Gast)


Lesenswert?

Bootloader werden, der Konfiguration entsprechend (1MHz, 8MHz, ...), 
über die Arduino IDE per USBASP geflasht.

von Rudi (Gast)


Lesenswert?

Da ich einen Atmega 1284p nutze, habe ich den Mightycore installiert. 
Und die entsprechenden (clock, BOD) Bootloader via USBASP gebrannt. Nun 
habe ich die Fuses mit avrdude geprüft und festgestellt, dass diese 
nicht denen entsprechen, welche in der Boards.txt hinterlegt sind, wobei 
das Brennen der Bootloader immer fehlerfrei verlief.

Die Fuses sind laut Boards.txt:

l: 0xb7
h: 0xd6
e: 0xfd

avrdude zeight mir jedoch völlig andere Werte:

l: 0xb7
h: 0xfe
e: 0xd6

ich wollte jetzt auf folgende Werte fusen:

l: 0xbf
h: 0xd6
e: 0xfd

die highfuses und extended fuses lassen sich aber leider nicht 
umstellen:

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C 
"C:\Program Fil
es (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -P usb -p m1284p 
-c usbasp
 -U lfuse:w:0xbf:m -U hfuse:w:0xd6:m U- efuse:w:0xfd:m

avrdude: warning: cannot set sck period. please check for usbasp 
firmware update
.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.05s

avrdude: Device signature = 0x1e9705
avrdude: reading input file "0xbf"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 
0.02s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xbf:
avrdude: load data lfuse data from input file 0xbf:
avrdude: input file 0xbf contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 
0.02s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xd6"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 
0.02s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd6:
avrdude: load data hfuse data from input file 0xd6:
avrdude: input file 0xd6 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 
0.02s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified

avrdude: safemode: Fuses OK (H:FE, E:D6, L:BF)

avrdude done.  Thank you.


C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>



Kann es an den lock bits liegen? Bin noch nicht ganz so bewandert.

Beitrag #5262636 wurde von einem Moderator gelöscht.
von Rudi (Gast)


Lesenswert?

Habe jetzt einen neuen AVR hergenommen. Mit dem geht es jetzt auch bei 
3,3V und dem FTDI. Der alte AVR war scheinbar verfust. Wie kann soetwas 
passieren? Habe zuvor die Fuses stets über den MightyCore und Arduino 
setzen lassen.

von Einer K. (Gast)


Lesenswert?

Rudi schrieb:
> Wie kann soetwas
> passieren?
Eigentlich nicht!

Wenn du mit den ISP noch drauf kommst, sollten sich auch die Fuses 
setzen lassen können.

Rudi schrieb:
> Habe zuvor die Fuses stets über den MightyCore und Arduino
> setzen lassen.
Bei dem neuen auch, nehme ich mal an.
Sonst hättest du ja den Bootloader nicht drauf(zum laufen) bekommen.

von Rudi (Gast)


Lesenswert?

Ich kann die high und ext Fuses nicht mehr per avrdude setzen (siehe 
Terminalausgabe oben). Die alten werden nicht überschrieben. Nur die low 
Fuses kann ich noch umschreiben.

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.