Forum: Mikrocontroller und Digitale Elektronik USB-USART mit NUCLEO-F103RB - wie Anschließen?


von Holger D. (hodoe)


Lesenswert?

Moin, ich bin gerade dabei mich mit den STM32-Mikrocontrollern 
anzufreunden. Bisher nur 8-Bit-AVR in Assembler. Nun was neues und C.

Ich habe ein NUCLEO-F103RB und mit der STM32CubeMX IDE habe ich die 
ersten Schritte gewagt. Blinkende LED, Interrupt-Auswertung des blauen 
Tasters und ein 16x2 LCD mit Huckepack I2C-Controller waren meine ersten 
kleineren Einstiegsprojekte.

Nun soll es mit der Datenübertragung via USB weitergehen. Wenn ich das 
NUCLEO-Board anstecke, dann wird auch ein virtueller COM-Port angelegt. 
So wie ich das bisher sehe, ist dieser aber nicht vom Mikrocontroller 
aus ansprechbar, sondern wird vom ST-Link-Boardabschnitt bereit 
gestellt. Wozu auch immer?

Ich habe dieses Turotial 
https://controllerstech.com/send-and-receive-data-to-pc-without-uart-stm32-usb-com/ 
verwendet, um erst einmal nur Daten zu senden. Aber über die bisherige 
virtuelle Schnittstelle kommt nichts.

Laut Datenblatt sind die Anschlüsse PA11 und PA12. Kann ich da einfach 
ein USB-Kabel anschließen? Und muss dann auf dem Board noch X3 bestückt 
werden.


Gruß
Holger

von dummschwaetzer (Gast)


Lesenswert?

>Kann ich da einfach ein USB-Kabel anschließen?
nein. DP braucht noch einen 1,5kOhm nach 3,3V
>noch X3 bestückt
ich bin grad etwas faul, das für dein nucleo rauszusuchen. Orientiere 
dich an der CUBE_MX Takte-Unterseite.

von Holger D. (hodoe)


Lesenswert?

Moin,

vielen Dank für die Info. Mit dem Hinweis habe ich etwas gesucht und 
habe nun die korrekten Verbindungen.

Quarz X3 braucht man in diesem Fall nicht.

Ich habe ein USB-Verlängerung abgeschnitten und zum Glück durchgemessen. 
Die Farben sind rot/schwarz/weiß/blau für + 5 V/D+/D-/GND.

Die D+ und D- habe ich jeweils über 22 Ohm an PA12 und PA11 
angeschlossen. Dann D+ über 1,5 KOhm an +3,3 V. GND auf GND.

Die +5 V vom PC über eine Diode an +5 V wird nur bei externer 
Spannungsversorgung des NUCLEO-Bords benötigt. Ich nehme die 5 V aus dem 
ST-LINK. Also die 5 V vom PC-seitigen USB-Kabel sind in meinem Fall 
jetzt nirgends angeschlossen.


Gruß
Holger

von Stefan F. (Gast)


Lesenswert?

Der USB-UART Adapter des ST-Link ist mit USART2 vom Mikrocontroller 
verbunden. Siehe http://stefanfrings.de/stm32/stm32f1.html#usart

Infos zum USB Port kommen etwas weiter unten auf der selben Webseite.

von Holger D. (hodoe)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der USB-UART Adapter des ST-Link ist mit USART2 vom Mikrocontroller
> verbunden. Siehe http://stefanfrings.de/stm32/stm32f1.html#usart

Aha. Dann werde ich mich mal daran machen, die Daten von einem Port auf 
den anderen zu schaufeln und umgekehrt (Übung). Momentan klappt über 
PA12/PA11 die Eingabe und die 1:1 Ausgabe. Mein Ziel ist es, drei 
Schnittstellen miteinenader zu verknüpfen. Das was über eine 
Schnittstelle reinkommt, soll 1:1 dann an die beiden anderen ausgegeben 
werden.

Input 1: Output 2/3
Input 2: Output 1/3
Input 3: Output 1/2


Wie funktioniert das eigentlich mit den Baud-Einstellungen? Momentan 
sieht das so aus, als ob der STM32 alles automatisch erkennt.

von Stefan F. (Gast)


Lesenswert?

Holger D. schrieb:
> Wie funktioniert das eigentlich mit den Baud-Einstellungen? Momentan
> sieht das so aus, als ob der STM32 alles automatisch erkennt.

Du meinst vermutlich den virtuellen COM Port von USB CDC, der hat 
tatsächlich keine Baudrate. Die Übertragungsgeschwindigkeit wird vom USB 
bestimmt. Was du hierbei im Terminalprogramm einstellst, spielt keine 
Rolle.

Bei USART <-->  USB-UART Adapter hast du natürlich eine bestimmte 
Baudrate auf der "echten" seriellen Schnittstelle. Die wird nicht 
automatisch erkannt.

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.