Hallo ich bin neu auf diesem Gebiet und nach langen suchen weiß ich
leider nicht weiter. Ich hoffe ihr könnt mir da weiterhelfen und zwar
habe ich mir eine Schaltung nach Bild 1 erstellt. Nun wollte ich mit dem
FT232RL auf den 20MHz ATMega328P das Sketch hochladen und bekomme eine
Fehlermeldung.
Einstellungen sind board - Adruino diecimila - processor atmega 328p -
com port 4 gewählt - Avrisp mkll
Using Port : COM4
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x11
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x11
Jetzt weiß ich auch nicht ob ich einen Bootloader flashen muss oder
nicht, dies geht allerdings auch nicht.
avrdude: usbdev_open(): did not find any USB device "usb"
(0x03eb:0x2104)
avrdude done. Thank you.
Außerdem habe ich noch gelesen das es evt. am Kondensator liegen kann?
MfG
Wenn du per serieller Schnittstelle da was reinbeamen willst, muss
natürlich erstmal via ISP ein Bootloader geflasht werden, und der muss
zum Quarz passen.
Arduinos laufen üblicherweise mit 16MHz, du brauchst evtl. das
Optiboot-Paket, da müsste ein 20er dabeisein.
Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut,
nachmacht oder verfälscht, insbesondere bei existierenden
Schaltungen die Abblock-Kondensatoren weglässt oder falsch
verschaltet oder selbst solche Schaltungen entwirft, in Verkehr
bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller-
Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom
Mikrokontroller-Forum nicht unter zwei Jahren bestraft.
Bei der Fehlersuche gehst Du am Besten methodisch vor.
Zuerst stecke den FTDI232RL von Deiner Schaltung ab und verbinde TX und
RX um einen Echotest machen zu können. Ich hehme zwar an, daß das
funktionieren wird, aber trotzdem. Wenn nicht mußt Du wahrscheinlich VCC
auf 3-5V bringen weil der IO KOMPLEX des FTDI232 diese Spannung benötigt
falls mich meine Erinnerung nicht trügt.
Ich habe gerade das DABLA des FTDI am iPad nicht parat, aber so weit ich
mich erinnern kann muß die VCCIO mit der Target VCC verbunden sein. Bei
Dir ist der FTDI VCC Anschluß offen.
Ferner, wenn Du nicht genau weißt ob der AVR den Bootloader draufhat,
besorg Dir einen Arduino UNO oder anderes zuverläßiges ICSP
Programmiergerät und übertrage den korrekten Bootloader. Der UNO kann
vom Arduino mit ICSP FW ausgerüstet werden und durch Verbindung mit der
SPI Schnittstelle (wie vorgeschrieben) den AVR neu beladen.
Auch sieht es so aus als ob Du geschummelt hast: der arme AVR hat keine
Vdd keramische Abblock Cs verpasst bekommen. Der einsame 0.1uF und Elko
meilenweit weg sind nicht adäquat. Als besorg Dir zwei 0.1 uF Keramik
Mono Caps und verbinde sie unter der LP mit kürzesten Drahtlängen
zwischen den benachbarten VDD und VSS Pins.
Es ist auch üblich, den RESET pin zwecks Transientunterdrückung durch
das Serien C mit einer Si-Diode mit der Anode nach VCC zeigend zu
verpassen.
Solange der AVR keinen AVRDUDE verträglichen Bootloader hat, wird das
wahrscheinlich nicht funktionieren.
BTW. Der CTS des FTDI232RL bleibt während des Programmieren des AVRs die
ganze Zeit auf Low-Level. Der Zweck der CTS Verbindung über ein C ist,
den AVR zu einen Neustart resetten damit der Bootloader die
Aufforderungs Signale vom AVR Dude empfangen kann. Wenn das nicht
vorhanden ist, beschwert sich der AVRDude.
Am besten wäre es zuerst mit dem FTDI232 und einem funktionierenden
Arduino Pro-Mini zu testen bevor Du ihn an Deine Schaltung anschließt.
Dann weißt Du zumindest, daß alles bis auf Deine Schaltung funktioniert.
Es ist möglich, daß Du CTS als Reset Aufforderungspin verwenden mußt.
Starte den AVRDude und miß welcher pin sofort von High auf Low geht. So
genau weiß ich das ohne Nachschauen nicht. Prinzipiell kann man den AVR
Bootloader wenn man schnell genug ist auch manuell starten so daß
AVRDude funktioniert.
OK. Versuch mal das alles zu beherzigen. Viel Erfolg!
Nachtrag: Du brauchst einen 20Mhz Optiboot oder 16MHz Quarz und die SW
muß richtig für die Quarzfrequenzen eingestellt sein. Nimm lieber zuerst
bis alles geht einen 16MHz Quarz.
Das Übliche schrieb:> Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren> aufbaut,> nachmacht oder verfälscht, insbesondere bei existierenden> Schaltungen die Abblock-Kondensatoren weglässt oder falsch> verschaltet oder selbst solche Schaltungen entwirft, in Verkehr> bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller-> Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom> Mikrokontroller-Forum nicht unter zwei Jahren bestraft.
Sei nicht so hart! Obwohl Du recht hast.
avrdude: usbdev_open(): did not find any USB device "usb"
(0x03eb:0x2104)
Der FTDI scheint auch nicht vorhanden zu sein. Check im Gerätemanager ob
der dort gelistet ist und merk Dir die COM Port Nummer und gib AVRDUDE
in gewohnter Weise diese Com Port Nummer bekannt. Falls Arduino, im IDE
einstellen.
Danke vielmals für die schnelle Rückmeldung. Die Schaltung sollte so
laut Ersteller funktionieren und ich habe nichts verändert! Ein 16mhz
Quartz wurde verbaut. Im Gerätemanager wird Der FTDI als USB Serial Port
angezeigt port 4
Und dies ist schon mal Falsch:
Using Programmer : stk500v2
avrdude: usbdev_open(): did not find any USB device "usb"
(0x03eb:0x2104)
Wie soll ein FTDI232RL Chip diese USB-Kennung haben?
Einen stk500v2 Clone kann man mit einem atmeha32u4/u2 realisieren, der
hat ein Hardware USB Device.
Karl M. schrieb:> Und dies ist schon mal Falsch:> Using Programmer : stk500v2> avrdude: usbdev_open(): did not find any USB device "usb"> (0x03eb:0x2104)>> Wie soll ein FTDI232RL Chip diese USB-Kennung haben?>> Einen stk500v2 Clone kann man mit einem atmeha32u4/u2 realisieren, der> hat ein Hardware USB Device.
Sorry versteh deine Aussage nicht ganz. Was meinst du damit?
Nun du Sprichst über avrdude eine ISP Programmer "stk500v2" an.
Dies ist halt kein Bootloader. Der wird i.a. unter avrdude als "arduino"
angesprochen.
Also kein richtiges Problem, bis auf die paar AVR Hardwaredinge, sondern
das sitzt vor dem Bildschirm an der Tastatur.
Sonst verfahre wie schon im 1.ten Beitrag beschrieben.
Das ist da berühmte Henne - Ei - Problem.
Ohne Arme keine Kekse.
Jens M. schrieb:> Wenn du per serieller Schnittstelle da was reinbeamen willst, muss> natürlich erstmal via ISP ein Bootloader geflasht werden, und der muss> zum Quarz passen.> Arduinos laufen üblicherweise mit 16MHz, du brauchst evtl. das> Optiboot-Paket, da müsste ein 20er dabeisein.
Karl M. schrieb:> Nun du Sprichst über avrdude eine ISP Programmer "stk500v2" an.>> Dies ist halt kein Bootloader. Der wird i.a. unter avrdude als "arduino"> angesprochen.>> Also kein richtiges Problem, bis auf die paar AVR Hardwaredinge, sondern> das sitzt vor dem Bildschirm an der Tastatur.
Wie gesagt für mich ist das hier Neuland und ich habe halt nur die
Fehlercodes gepostet. Dann versuche ich das Ganze über ein Arduino zu
flashen.
Ok, wir sind dir nicht böse, es ist immer die Frage, wo man einen
unbekannte Person abholt.
Tony schrieb:> Wie gesagt für mich ist das hier Neuland und ich habe halt nur die> Fehlercodes gepostet. Dann versuche ich das Ganze über ein Arduino zu> flashen.
Wie soll das nach deinem Wissensstand gehen?
Tony schrieb:> Die Schaltung sollte so> laut Ersteller funktionieren und ich habe nichts verändert!
Kenne ich zur Genüge.
Parallelität zur Aussage eines Software-Fricklers:
"Works on my machine"
Damit will er sagen dass es auf jeden Fall bei jedem
anderen auch funktionieren muss.
Es wird der Tag kommen wo du dich hier wieder meldest und
fragst warum dieser oder jener zufälliger sproradischer
Fehler auftaucht.
Aber die Erfahrung mit Kindern die noch viel lernen (müssen)
ist ja hauptsächlich dass sie selbst erfahren müssen dass
eine heisse Herdplatte weh tut.
Tony,
Maybe it's good to start with the basics to understand about Arduino.
1) uController
An AtMega uController is a chip, with various pins, sold by many shops.
This chip can do a lot of tasks, like setting a pin, readout Voltage at
pins, perform calculations, control LCDs, etcetera.
In order to perform such tasks, the chip requires instructions. Without
instructions, it's just doing nothing, when powered up.
2) Sourcecode
Sourcecode is a piece of program which is made of instructions. There
are several "languages" to write sourcecode in. In your case, it's
something like C++ for Arduino. Sourcecode is basically a list of
instructions for a uController about what to do : pin-settings, control
external devices (LEDs, LCDs or whatever).
When writing sourcecode, this code is in such language, the uController
will not understand. It requires translation into a language the
uController understands. Both task are done in the programming software
: you write sourcecode and then it gets translated into instructions /
language the uController will understand.
3) Code into uCcontroller
As you might understand, when writing sourcecode, translate it into
binary code, will still not make the uController work as you like. The
sourcecode needs to be stored / written into the uController. Upto now,
the sourcecode and binary code are stored onto you PC, and not at your
uController. You need a link between PC and uController.
The "missing link" is a programmer. Atmel developed a device for it :
STK500. This device is linked between a serial port and to certain pins
at the uController. Later, someone (I think it was Roland Walter) came
up with an easy to build replacement, : the ESP12 programmer. This
programmer has to be hooked up to a printerport and the
uController-pins.
Both programmers (STK500 / SP12) work by a special protocol : ISP. The
code is stored from PC to uController.
As you might have noticed, COM-ports and printerports are not that
common anymore for a PC. This is why programmers for USB-ports got
developed.
Some Italian made a smart move, by using a bootloader for each
uCcontroller. This bootloader is a piece of instructions pre-programmed
in the uController of the Arduino-board. This bootloader enables
"direct" writing from PC to uController onboard the Arduino-board.
Now, whenever you buy a uController, it's a blank chip : No program, no
bootloader is present. Only some factory settings for fuses are set.
And here's the problem you ran into. Your blank uController requires a
bootloader to be programmed. And for this,... you need a programmer like
an STK500 or SP12 or any other USB ISP-programmer.
It comes basically down to the following :
1) Write sourcecode (in C++, Basic or whatever language)
2) Convert to binary code (HEX/BIN-file)
3) Create a link between PC and microcontroller
4) Store binary code to microcontroller
And you need : Computer, programming software, (USB)programmer and
microcontroller.
Now, the Arduino skips the programmer-part, because it's "onboard" the
Arduino by using the bootloader. However, a blank uController is empty
and does not contain this bootloader. And to get a bootloader into a
blank uController, requires :
A) a programmer, or
B) An Arduino-board which acts like a programmer, or
C) someone who can program the bootloader for you into your ucontroller.
And this is the "Henne-Ei"-Problem.
Although I wrote this in English, I hope this is valuable info for you.
P.S.1. uController, is in your case : Atmega328p
P.S.2. The FTDI232 is nothing more than a "USB to serial port"
converter. It's not a programmer, it's just a tool which can act as a
front-end for a programmer (in this case).
P.S.3. I'm sure there are people who like to add info about what I
wrote. Feel free, to do so, in order to make things more clear for Tony
and other people who just (plan to) start with uControllers.
Tony schrieb:> Jetzt weiß ich auch nicht ob ich einen Bootloader flashen muss
Ja musst du, und zwar über die ISP Schnittstelle mit einem ISP
Programmieradapter.
> Avrisp mkll
Das wäre so ein ISP Programmieradapter, Passt aber nicht dazu:
> Using Port : COM4> Using Programmer : arduino
Das sind die Parameter für einen AVR mit Bootloader, der seriell über
einen USB-UART wie deinem FT232RL Adapter angeschlossen ist.
> avrdude: usbdev_open(): did not find any USB device "usb" (0x03eb:0x2104)
Das wiederum macht keinen Sinn, wenn über COM4 kommuniziert wird. Für
mich sieht das sehr verwirrend aus. Hast du da die Bildschirmanzeigen
von mehreren Programmaufrufen durcheinander gemixt?
Ja genau wurde gemixt. Ich werde dir Tage nach Weihnachten nochmal den
ftdi232 direkt am atmega anschließen und weiter testen. Wenn dies nicht
geht teste ich das ganze mit einen atmega mit fertigen bootloader. Wenn
sich dort auch nichts zu schreiben geht werde ich mit ein UNO holen.
Erstmal vielen Dank euch allen für die tolle Hilfe m! Echt ein gutes
Forum! Frohe Weihnachten!
Tony schrieb:> Ja genau wurde gemixt. Ich werde dir Tage nach Weihnachten nochmal> den> ftdi232 direkt am atmega anschließen und weiter testen. Wenn dies nicht> geht teste ich das ganze mit einen atmega mit fertigen bootloader. Wenn> sich dort auch nichts zu schreiben geht werde ich mit ein UNO holen.> Erstmal vielen Dank euch allen für die tolle Hilfe m! Echt ein gutes> Forum! Frohe Weihnachten!
Warum Testen?
Du musst doch wissen, ob der Atmel atmega8 leer oder ist oder nicht.
Hallo Tony,
Da du nun bei einem ISP-Programmieradapter angekommen bist,
kannst Du hier einen in DE entwickelten bestellen:
https://www.ehajo.de/bausaetze/programmieradapter/
Z.B. den "AVR-ISP-Stick" oder den "µISP-Stick".
Habe beide im Einsatz seit den ersten Stunden.
Der µISP-Stick bietet etwas mehr für's Geld: "RxD und TxD"
Tony schrieb:> PIN 1 beim atmega?
Nun auf welchen Atmel AVR bezieht sich deine Frage und hast Du dir die
zugehörige Atmel Application Notes angesehen?
Dort werden unterschiedliche Themengebiete für die AVR-Hardwareanbindung
und -umsetzung betrachtet.
Tony schrieb:> Ja dieser ist leer aber ich versuche es erstmal direkt dran ohne der> Schaltung.
Mit einem minimalen Aufbau anzufangen, ist immer erst mal eine gute Idee
um die möglichen Fehlerquellen zu minimiren.
Tony schrieb:> Weil laut verschiedenen tuts hab ich die richtige config. Denke es liegt> an der Schaltung bzw ftdi
Wenn der Chip leer ist ist, so wie ich das verstehe, auch kein
Bootloader drauf. Ohne Bootloader hilft der FTDI auch nichts, denn der
benötigt den Bootloader auf dem Chip, damit man diesen programmieren
kann.
Tony schrieb:> Was ich mich nur noch frage, ist es denn ausschlaggebend einen 100nf> Folien oder Keramikkondensator zu nehmen vor den PIN 1 beim atmega?
Anfangs mag es nicht all wichtig zu scheinen, daß diese Kondensatoren
vorhanden sind, aber diese Abblockkondensatoren sind, vereinfacht
ausgedrückt, dafür da, Spannungsschwankungen, zu unterdrücken, die durch
den Controller selbst verursacht werden. Fehlen diese Kondensatoren,
kommt es zu erst mal unerklärlichen Phänomenen wie abstürzende
Controller, fehlerhafte Programmausführungen unerklärliche Resets und
anderen Dingen.
Deshalb ist es wichtig, an JEDEM Vcc-Pin eines Controllers einen
Abblockkondensator gegen Masse zu schalten und zwar so dicht wie möglich
an den Controllerpins und nicht irgend wo auf der Platine.
Tony schrieb:> Abend danke für deine Auskunft aber laut diesem tut soll es ja möglich> sein den bootloader mit dem ftdi zu flashen?>> https://www.instructables.com/id/How-to-Connect-a-FT232RL-Programmer-to-the-Arduino/
Man kann auf einen leeren Mega328 nichts über die serielle Schnittstelle
flashen. Ohne Bootloader geht das nicht.
Das von dir verlinkte Instructable bezieht sich ja auch dieses
Instructable, in dem gezeigt wird, wie der Bootloader mit Hilfe eines
Arduino auf den Mega328 geflasht wird:
https://www.instructables.com/id/2-Arduino-the-ATMEGA328-As-a-Stand-alone-Easy-Chea/
Der Autor erklärt das auch in dem Video.
Du brauchst auf jeden Fall einen Programmieradapter um den Bootloader
auf den nackten Chip zu flashen. Ob das wie in dem zweiten Instructable,
ein Arduino ist oder ein anderer Programmieradapter, ist dabei egal,
aber der Bootloader muss auf jeden Fall erst mal auf den Chip drauf.
Ja Frank, genau aber das haben wir ja ganz oben schon mehrfach
geschrieben und ich habe ihn auch aufgefordert sich Gedanken zu machen,
was ein ISP Programmieradapter ist bzw. was ein Bootloader macht. Das
hat er bisher nicht verstanden.
Karl M. schrieb:> Ja Frank, genau aber das haben wir ja ganz oben schon mehrfach> geschrieben und ich habe ihn auch aufgefordert sich Gedanken zu machen,> was ein ISP Programmieradapter ist bzw. was ein Bootloader macht. Das> hat er bisher nicht verstanden.
Das scheint mir hier das Problem zu sein.
Auffordern, sich Gedanken zu machen funktioniert bei dem Wissensstand
des TO offenbar noch nicht.
Er ist dem Instructable gefolgt, welches er selbst verlinkt hat und da
wird ein Mega328 mit einem FTDI geflasht. Daß der Autor des
Instructables dabei voraussetzt, daß der Chip bereits einen Bootloader
hat, hat der TO anscheinend übersehen.
Ich bin ganz bestimmt kein guter Lehrer oder gar Erklärer, aber ich habe
im Lauf der Jahre festgestellt, daß man so etwas wie jemanden
auffordern, sich eigene Gedanken zu machen, erst bei einem gewissen
Mindestkenntnisstand machen kann. Dieser scheint mir beim TO noch nicht
erreicht. In solchen Fällen muss man einfach die Tatsachen klarstellen.
Ich habe verstanden, was weiter oben gesagt worden ist und wo das
Problem liegt. Aber das auch nur, weil ich schon mehrere Jahre lang µCs
benutze und programmiere und erst vor Kurzem zu Arduinos gekommen bin.
Jemand, der vollkommen neu in diesem Thema ist, hat damit offenbar noch
Verständnisprobleme.
Bei näherem Nachlesen meiner Aussagen weiter oben muss ich feststellen,
daß es noch klarer geht.
- Der Mega328 hat so, wie er aus dem Laden kommt, keinen Bootloader.
- Diesen muss man erst mit einem Programmer, oder wie in dem von mir
verlinkten Instructable mit einem Arduino auf den Mega flashen.
- Dann erst kann man mit einem FTDI und der Arduino-IDE ein Sketch auf
den Chip spielen, wie in dem vom TO verlinkten Instructable.
Tony schrieb:> Ja dieser ist leer aber ich versuche es erstmal direkt dran ohne der> Schaltung.
Ohne Bootloader kann das nicht funktionieren. Auch nicht an Weihnachten.
Alles klar das habe ich tatsächlich nicht verstanden. Für mich sah es so
aus, das man den bootloader damit einbrennen kann. Alles klar dann
besorg ich mir atmega mit fertigen bootloader, dann muss ich nicht
wieder rumexperimentieren. Vielen Dank für die Mühe! ;)
Frank B. schrieb:> - Diesen muss man erst mit einem Programmer, oder wie in dem von mir> verlinkten Instructable mit einem Arduino auf den Mega flashen.> - Dann erst kann man mit einem FTDI und der Arduino-IDE ein Sketch auf> den Chip spielen, wie in dem vom TO verlinkten Instructable.
Du kannst auch alles auf ein Mal machen:
Geh mal in der Arduino IDE mit der Maus auf den "hochladen"-Button, dann
drück die Shift-Taste
Tony schrieb:> Für mich sah es so> aus, das man den bootloader damit einbrennen kann.
Dann bräuchte man keinen Bootloader, man könnte gleich das Programm
"einbrennen".
Tony schrieb:> Alles klar dann> besorg ich mir atmega mit fertigen bootloader, dann muss ich nicht> wieder rumexperimentieren.
Das alte Lied: Die Leute glauben mit einem Bootloader alleine
werden sie glücklich, und dann kommt doch wieder irgendwann der
Tag wo ein ISP Programmer Gold Wert wäre ....
Mitlesa schrieb:> Die Leute glauben mit einem Bootloader alleine> werden sie glücklich,
Wer glaubt das?
OK, wenn man den FT232RL Adapter nutzen will, ist ein Bootloader
pflicht.
Aber was hat diese Bedingung/Abhängigkeit mit "glauben" zu tun?
Da kannst soviel beten wie du willst, ohne Bootloader wird das nix.
Um den Bootloader drauf zu bekommen, wird man irgendeinen ISP Adapter
verwenden dürfen. Die Auswahl ist hinreichend groß.
Da kann man dann wieder "glauben".
Fest dran glauben, welcher der bessere ist.
Arduino Fanboy D. schrieb:> Da kannst soviel beten wie du willst, ohne Bootloader wird das nix.
Aber gerne doch, ich will ja auch nur meinen Senf dazugeben.
Gut dass du mich aufklärst, bis heute hatte ich keine Ahnung
davon was du geschrieben hast.
So vielen vielen Dank für das ganze hier nochmal von mir der Fuchs läuft
nun komischer weise mit dem Bootloader drauf. Man lernt halt nicht aus.
Aber wie gesagt ich dachte halt man kann den per Serial einbrennen. ;)