Forum: Mikrocontroller und Digitale Elektronik USB-UART Wandler & der CTS / uC-RESET


von Marten M. (mcgonahy148)


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

von Stefan F. (Gast)


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.

von Marten M. (mcgonahy148)


Lesenswert?

Sorry, link nicht mit kopiert :-I

https://www.arduino.cc/en/uploads/Main/ADK_MEGA_2560-Rev2-sch.pdf

Schematic kann ich grad nicht einfügen mit dem Telefon ;-)

Also egal ob Rev2 oder 3, das Atmega Board hat im Schatic einen IC4.

von Stefan F. (Gast)


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

von Frank K. (fchk)


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

von Stefan F. (Gast)


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.

von Stefan F. (Gast)


Lesenswert?

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?

von MaWin (Gast)


Lesenswert?

Ist doch logisch:
Rechts oben der IC3. Genau. Der in der Mitkopplung.

von Marten M. (mcgonahy148)


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

von Marten M. (mcgonahy148)


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.

von Marten M. (mcgonahy148)


Lesenswert?

MaWin schrieb:
> Ist doch logisch:
> Rechts oben der IC3. Genau. Der in der Mitkopplung.

?

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.