Forum: Mikrocontroller und Digitale Elektronik FTDI R232L zu Hterm


von Sven T. (theoretiker87)


Angehängte Dateien:

Lesenswert?

Hallo,
habe folgendes Problem, ich sende über einen FTDI eine Zeichenkette aus. 
Diese wird mit Hterm eingelesen. Allerdings gibt es da ein Problem mit 
dem ASCii, da ich keine Zeichenfolge bekomme (siehe Bild). Habe schon 
alles Probiert, auch das Programm für den UART funktionieren.
Vielleicht hat jemand einen Tipp woran es liegen könnte.
Vielen Dank

Theoretiker87

: Bearbeitet durch User
von nfet (Gast)


Lesenswert?

Falsche baudrate eingestellt

von Sven T. (theoretiker87)


Lesenswert?

Hallo,
habe ich auch gedacht, aber auf den Controller ist eine Baudrate von 
9600 und auf Hterm auch.
Auch auf dem COM-Port sind 9600 eingestellt.

MFG
Theoretiker87

von Frickelfritze (Gast)


Lesenswert?

Sven A. schrieb:
> ich sende über einen FTDI eine Zeichenkette aus.

Über welchen? Wenn er selbst aufgebaut ist könnte er evtl.
(noch) nicht richtig funktionieren.

Rx und Tx vertauschen ist bei solchen Chips auch ein
beliebter Fehler.

von Stefan F. (Gast)


Lesenswert?

Vielleicht hast du bei deinem Mikrocontroller die Baudrate oder den 
Taktgeber falsch konfiguriert. Bei AVR ist die CLKDIV8 Fuse ein 
typischer Knackpunkt.

von Jim M. (turboj)


Lesenswert?

Stell mal auf 1200 Baud und staune. CLKDIV8 wurde ja schon genannt...

von Christian M. (Gast)


Lesenswert?

nfet schrieb:
> Falsche baudrate eingestellt

Das erste was man ausprobiert!

Sven A. schrieb:
> habe ich auch gedacht,

Mach's einfach!

Gruss Chregu

von Sven T. (theoretiker87)


Lesenswert?

Hallo,
vielen Dank für die zahlreichen Antworten,
Die Veränderung der Baudrate zu 1200 oder auch zu 300 hat nix gebracht 
:(
Ich verwende das STM32F407 Discovery board und einen Vorgefertigten FTDI 
232RL dieser ist richtig auf dem PCB.

Es stimmt einfach die Zeichenkette nicht zu ASCii, verstehe den fehler 
nicht, dass Programm funktioniert mit dem gleichen Mikrocontroller auf 
einem PCB layout perfekt, nur nicht auf dem Disco Board mit dem gleichen 
Controller....


MFG
Theoretiker 87

von nfet (Gast)


Lesenswert?

Dann sicher falsche clocks eingestellt (anderer externer Oszillator HSE) 
oder gar keiner...

von Sven T. (theoretiker87)


Lesenswert?

Hallo,

welche clocks meinst du genau ??

MFG
Theoretiker

von Frickelfritze (Gast)


Lesenswert?

Sven A. schrieb:
> welche clocks meinst du genau ??

Wenn du keine Clocks bewusst eingestellt hast dann ist das
dein Fehler. Du musst dich darum kümmern.

nfet schrieb:
> (anderer externer Oszillator HSE)

Er meint vermutlich dass du auf den beiden verschiedenen
Boards eine unterschiedliche Taktquelle hast.

von Sven T. (theoretiker87)


Lesenswert?

Hallo,

wie ändere ich die Taktquelle ??
Welche Timer soll ich ändern ??
Woher weiß ich welcher Frequenz der FTDI hat.
da ich auf dem STM  Board den Timer für den UART fest eingestellt sind.
auch die Frequenz der GPIO sind fest.....




mfg
Theoretiker

von Frickelfritze (Gast)


Lesenswert?

Sven A. schrieb:
> wie ändere ich die Taktquelle ??

RTFM

Sven A. schrieb:
> Woher weiß ich welcher Frequenz der FTDI hat.

Der FTDI Chip bekommt vom PC über USB die Datenrate eingestellt.

Sven A. schrieb:
> da ich auf dem STM  Board den Timer für den UART fest eingestellt sind.

Es gibt keinen Timer für UARTs.

Sven A. schrieb:
> auch die Frequenz der GPIO sind fest.....

Das ist in diesem Zusammenhang belanglos.

--> Kümmere dich um die Takt-Einstellung. Lerne wie das
zu konfigurieren ist. Deine Antworten lassen darauf
schliessen dass du dein System bei Weitem noch nicht
im Griff hast.

von Stefan F. (Gast)


Lesenswert?

Alle STM32 Mikrocontroller haben ein sehr variables Taktsystem. Sie 
starten mit einem internen 8Mhz R&C Oszillator. Per Software solltest du 
auf einen externen Quarz umschalten, da R/C Oszillatoren für serielle 
Schnittstellen nur bedingt geeignet sind (zu ungenau, vor allem bei 
Spannungen ungleich 3,3V oder wenn die Temperatur von 25°C abweicht).

Die Quarz-Frequenz kann durch eine PLL intern erhöht werden. Dann gibt 
es zahlreiche Vorteiler, mit denen man den Takt wieder reduziert. Aus 
diesem eventuell reduzierten Takt gewinnt die USART Schnitstelle ihre 
Baudrate.

Das Programm Cube HAL stellt dieses Takt-Sytsem sehr übersichtlich dar 
und erzeugt Dir per Mausklick entsprechenden Initialisierungs-Code.

Du solltest dennoch das Refecence Manual 
(www.st.com/resource/en/reference_manual/dm00031020.pdf) durchlesen. 
Zumindest die Kapitel

2.1.11 AHB/APB bridges
3.5.1 Relation between CPU clock frequency and Flash memory read time
3.9.1 Flash access control register (FLASH_ACR)
7.2 Clocks
7.3 RCC registers
30 Universal synchronous asynchronous receiver transmitter (USART)

Wenn Dir das zu kompliziert erscheint, empfehle ich mit einem STM32F103 
anzufangen. Denn dazu findest du mehr Anfänger-Anleitungen im Internet. 
Das gelernte kannst du dann später auf deinen STM32F407 übertragen, denn 
die Unterschiede sind gering. Aber um das viele Lesen wirst du nicht 
herum kommen.

Bei STM wirst du sehen, dass sich die meisten Anleitungen auf das 
veraltete SPL Framework beziehen. Nur die neueren Anleitungen (ab ca 
2015) beziehen ich auf das aktuelle Cube HAL Framework. Das soll die 
Arbeit sehr erleichtern, aber leider muss man das umfangreiche 
Reference-Manual trotzdem lesen und HAL richtig anzuwenden.

Ich habe gerade mit dem STM32F103 angefangen, nachdem ich das Gefühl 
habe, die AVR's in und auswendig zu kennen (was natürlich sicher nicht 
ganz stimmt). Meine Notizen zum STM32F103 findest du hier: 
http://stefanfrings.de/stm32/index.html

Beim STM32F407 wird vieles ähnlich sein, aber eben nicht gleich. 
Deswegen gehe bitte nicht davon aus, dass meine Ausführungen für dein 
Discovery Board passen.

Falls Du nicht gut genug Englisch kannst, würde ich Dir raten, mit 8bit 
AVR Controllern anzufangen. Denn deren Datenblätter sind sehr viel 
kürzer und es gibt reichlich deutsche Literatur.

von Sven T. (theoretiker87)


Lesenswert?

Hallo,
vielen Dank für die Antworten, besonders diese von Stefan US. Diese war 
sehr hilfreich, da ich in  ich den Lib. die Frequenzen verändern musste: 
“cmsis_boot/stm32f4xx.h” “cmsis_boot/system_stm32f4xx.c”, diese müssen 
auf 8kHz gestellt sein, sowie der Prescaler für die BaudRate muss danach 
eingestellt werden.
Da ich da schon vorher probiert habe, hatte ich einen 16kHz Oszi 
eingestellt und nicht ein 8kHz.


MFG
Sven

von Frickelfritze (Gast)


Lesenswert?

Sven A. schrieb:
> diese müssen auf 8kHz gestellt sein,

Nein.

Sven A. schrieb:
> Da ich da schon vorher probiert habe, hatte ich einen 16kHz Oszi
> eingestellt und nicht ein 8kHz.

Ich wette dass die gewünschte Baudrate weder mit 16kHz noch
mit 8kHz eingestellt werden kann.

Sven A. schrieb:
> Sven A.
> (Firma: Student)
> (theoretiker87)

Ist das ein Student der die Zehnerpotenzen nicht auseinander
halten kann?

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.