Atmega 328p und FT232RL Problem

Gast #6084148
Lesenswert?

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

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

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.
Beitrag #6084177 wurde von einem Moderator gelöscht.
#6084181
Lesenswert?

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

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

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

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

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

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

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

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

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

Frage Dich bitte was ein ISP Programmer "stk500v2" und ein Bootloader 
sind.

Siehe dazu:
1) http://dokuwiki.ehajo.de/artikel:ateval
2) https://github.com/Optiboot/optiboot

Wo sind elektrisch/ technisch und funktional die Unterschiede?

Wann nutzt man einen von den beiden Methoden?

Als Grundlage setzen alle "Helfer" voraus, dass Du da aktuelle 
Datenblatt zu deinem Atmel AVR µC immer zur Hand hast.
Es sollte immer offen sein und deine erste Anlaufstelle bedeuten.

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
Gast #6084333
Lesenswert?

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

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

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

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!
Gast #6084849
Lesenswert?

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

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

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

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

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

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! ;)
Gast #6085231
Lesenswert?

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

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

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

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. ;)

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