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?
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.
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?
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?
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.
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?
Gerade nochmal testweise mit 5 V ohne Kerko probiert. Dort ist dann auch dieses Verhalten, dass der Atmel nicht "in sync" ist.
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?
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.
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.
Hmmm, das schaue ich mir heute Abend nochmal an. Ist ne Idee.
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.
Wird der ATmega mit 16MHz getaktet? Dann sind die 3.3V eventuell zu wenig...
Frickelfritze schrieb: > Dem FTDI Chip kann man nicht viel Strom abverlangen (habe > gerade keine Daten dafür parat). sind 50mA.
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).
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..
Bootloader wurde entsprechend gebrannt.
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.
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
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.
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.
Habe mit intern 1 MHz und extern 8 MHz geprüft. Beides funktionierte nicht.
Hast du ein original FT232 zum testen? Ein Schaltplan zum FT232 vielleicht?
Leider nein. Ich habe heute eine Nachricht an den Verkäufer geschickt. Mal schauen was er meint.
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 | }
|
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....
Bootloader werden, der Konfiguration entsprechend (1MHz, 8MHz, ...), über die Arduino IDE per USBASP geflasht.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.