USB-UART Wandler & der CTS / uC-RESET

OP #7214410
Lesenswert?

Hallo zusammen,


ich habe ein Thema dass ich gern lösen möchte und würde gern erstmal das 
Konzept verstehen CTS & dem RESET bei einem Arduino/Atmega Controller 
über UART.

Kann mir jemand sagen, warum hier der CTS von IC4 verwendet wird für den 
RESET den der Atmega braucht um dann die Daten rüber an den 
Ardu-Bootloader zu schicken?

Der CTS ist doch an IC4 ein Input, wie also kann der Sender hier (USB 
Device hinter dem IC4) also überhaupt einen RESET auslösen über CTS? Das 
ist mir ein Rätsel :-)

Frage deswegen, weil ich ebenfalls einen USB-UART Chip habe und (nein 
nicht diesen IC4 Typen, leider auch kein FTDI (keine Verfügbarkeit), 
sondern einen CP2102N und ich bekomm es nicht gebacken mit dem die Daten 
über UART an den uC zu übertragen automatisch, es funktionier NUR wenn:

a.) nach dem ersten mal programmieren über Ardu IDE nachdem Bootloader 
frisch aufgespielt wurde. Danach gehts nicht mehr.

b.) wenn ich manuell meinen Reset-Button drücke, hier funktioniert es 
manchmal, jenachdem wann genau man diesen auslöst und wie lange.

--> es ist irgendein Problem mit der RESET-Leitung und komm nicht 
dahinter warum. Daher erstmal die Verständnisfrage mit CTS.


Gruß,
MG

P.s. schematics bei Bedarf verfügbar;-)
Gast #7214415
Lesenswert?

Marten M. schrieb:
> Kann mir jemand sagen, warum hier der CTS von IC4 verwendet wird

Wo genau? Ich sehe nichts.

> Der CTS ist doch an IC4 ein Input

Wenn du das sagst ... vor mir liegt gerade ein Arduino Board mit ATmega, 
das hat gar keine 4 ICs.

Braucht man heute keine Schaltpläne mehr? Und welche Produkte es konkret 
sind ist auch scheißegal? Dann bin ich wohl zu alt geworden.
Gast #7214437
Lesenswert?

Marten M. schrieb:
> https://www.arduino.cc/en/uploads/Main/ADK_MEGA_2560-Rev2-sch.pdf
> Schematic kann ich grad nicht einfügen mit dem Telefon ;-)

Das ist blöd, denn aus diesem Plan geht überhaupt nicht hervor, was du 
anders gemacht hast.

Marten M. schrieb:
> Kann mir jemand sagen, warum hier der CTS von IC4 verwendet wird für den
> RESET den der Atmega braucht um dann die Daten rüber an den
> Ardu-Bootloader zu schicken?

Immerhin das kann ich dir erklären. Über diese Leitung kann die Arduino 
IDE den Mikrocontroller resetten. Der Bootloader wartet nach dem Reset 
nur etwa eine Sekunde lang auf Kommandos, danach startet das eigentliche 
Anwendungsprogramm (wenn kein Kommando kommt).
#7214442
Lesenswert?

Normalerweise wird über die DTR(!) Leitung des UARTs ein Reset beim AVR 
ausgelöst, damit der in den Bootloader springt und neue Firmware 
entgegennimmt. In Deinem Beispiel ist ein Mega8U2 als USB-UART-Bridge 
verbaut - andere Boards haben einen FTDI FT232R, einen CP2102, einen 
CH340, aber egal. Der PC pulst die DTR-Leitung, und der nachgeschaltete 
Kondensator macht daraus einen kurzen Reset-Impuls, der den AVR neu 
starten lässt.

Reset ist normal high - das solltest Du messen können. Eventuell musst 
Du DTR in Deinem PC-Programm auf High setzen (Win32 API: 
SetCommState()).

fchk
Gast #7214444
Lesenswert?

Frank K. schrieb:
> Normalerweise wird über die DTR(!) Leitung des UARTs ein Reset beim AVR
> ausgelöst

Die Leitung ist außerhalb des IC auch mit DTR beschriftet.

Aber innerhalb des IC mit CTS. Ich denke die Beschriftung innerhalb des 
IC ist in diesem Fall irreführend. Schau da gar nicht hin.
OP #7214511
Lesenswert?

Stefan F. schrieb:
> Frank K. schrieb:
>> Normalerweise wird über die DTR(!) Leitung des UARTs ein Reset beim AVR
>> ausgelöst
>
> Die Leitung ist außerhalb des IC auch mit DTR beschriftet.
>
> Aber innerhalb des IC mit CTS. Ich denke die Beschriftung innerhalb des
> IC ist in diesem Fall irreführend. Schau da gar nicht hin.

Oder über den RTS? Habe noch einen Adapter im Labor gefunden, dort ist 
am RTS-Pin die Leitung für den Reset dran. War auch kurz mit dem Oszi 
dran, hab aber auf die Schnelle im Normalzustand ein HIGH gesehen, beim 
Upload dann die ganze Zeit LOW.

Das im IC mit der CTS Beschriftung ist ja seltsamerweise bei rev2 UND 
bei rev3 im Schaltplan, das wäre schon ein fast ein gewollter Fehler ;-)
OP #7214512
Lesenswert?

Stefan F. schrieb:
> Ich habe da gerade so ein dummes Bauchgefühl:
>
> Hast du überhaupt einen Bootloader in den Mikrocontroller installiert?
> Und wenn ja, ist es der richtige? Hast du Fuses dazu passend
> eingestellt?

Bootloader ist drauf und funktioniert auch, Heartbeat geht und wie 
gesagt ich kann die Firmware auch aufspielen manchmal, jenachdem wann 
ich den Reset manuell drücke.

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