Forum: Mikrocontroller und Digitale Elektronik STM32 M3 Serielles Interface Nr. 3 an Pin T3C1 bis 4


von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Hallo Zusammen,

ich bin fürchterlich neu in STM32. Ich bastel gerade mit einem STM32 M3 
rum
Für ein Projekt brauche ich neben dem USB mit dem ich die Verbindung zum 
PC halte, GPS an der 2. Seriellen Schnittstelle noch eine 3. Serielle 
Schnittstelle.

Diese möchte ich an T3C1, T3C2, T3C3 oder T3C4 realisieren.
Da ich bei der Programmierung noch nicht soweit fortgeschritten bin, 
suche ich dazu einen Einstieg. Gibt es irgendwo ein Beispielcode für so 
eine Lösung?

Achso, es soll/muss eine Schnittstelle über eine Leitung werden, sprich 
der Pin wird nach dem Empfang auf Senden umgestellt, und nach dem Senden 
wieder auf Empfang.

Danke für die Hilfe

Carsten

von Uwe Bonnes (Gast)


Lesenswert?

Huch, einen STM32M3 kenne ich nicht.

Aber die STM32 U(S)ARts kennen einen "Single-wire half-duplex 
communication" Modus, der Dein Problem vielleicht direkt loest.

Tschuess

von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Das genaue Modell heißt:
STM32F103CBT6
Und der hat halt nur 2 Serielle Schnittstellen, die ich beide schon im 
Einsatz habe.

Gruß
Carsten

von Juergen G. (jup)


Lesenswert?

Carsten Giesen schrieb:
>  noch eine 3. Serielle Schnittstelle.

Serielle Schnittstelle ist sehr relativ.
Muss es denn unbedingt eine mit einem U(S)ART sein.

Wenn ja bleibt nur es in Software zu realisieren. Allerdings wird es in 
der STM32 Klasse wohl nicht viel Beispielcode geben, da die STM32 
reichlich Varianten mit ueppiger Periphery haben.
Aber Du kannst Dir aus der Atmega Welt ein Beispielcode nehmen und Ihn 
auf den STM portieren.

ju

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Der STM32F103CBT6 hat doch 3 serielle Schnittstellen. Wo ist jetzt das 
Problem?

von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Markus Müller schrieb:
> Der STM32F103CBT6 hat doch 3 serielle Schnittstellen. Wo ist jetzt das
>
> Problem?

das es laut Datenblatt einfach nicht stimmt.
Die STM32F103Tx haben zwei
Die STM32F103Cx, STM32F103Rx, STM32F103Vx haben drei.

Quelle: 
http://datasheet.octopart.com/STM32F103CBT6-STMicroelectronics-datasheet-10330614.pdf

von CS (Gast)


Lesenswert?

Carsten Giesen schrieb:
> Das genaue Modell heißt:
> STM32F103CBT6

Carsten Giesen schrieb:
> Die STM32F103Cx, STM32F103Rx, STM32F103Vx haben drei.

Was fuer einen hast du nun genau?

von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Mist, da habe ich mich vertan. Sorry.
Ich habe den 48Pin also den mit den 3 Seriellen Schnittstellen.
Aber auf Pin 21 & 22 habe ich I2C am laufen um div. Sensoren abzufragen.

In der Tat ist es einfach so, dass ich ein fertiges Board (Naze32 für 
Quadrokopter) hier liegen habe, wo die Software OpenSource ist. Und die 
Pins 16-19 liegen günstig und sind frei.
Auf einem dieser Pins würde ich jetzt gerne mit meinem Empfänger über 
eine Leitung kommunizieren. Das Protokoll ist ein normales Serielles 
Signal, aber eben über EINE Leitung.

Der Vorteil es so zu machen, wäre, dass niemand am Board rum löten 
müsste.

Ich könnte noch den Port nehmen, wo auch USB drüber läuft, aber ich 
glaube das gibt Stress zu erkennen, wer denn jetzt am Zug ist.

Gruß
Carsten

von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Hallo Zusammen,

ich möchte nochmal auf dieses Thema zurück kommen.

Das wir drei Serielle Schnittstellen auf besagten Board haben ist ja nun 
geklärt.

Die sind aber aus diversen Gründen alle für mich nicht zu benutzten, da 
sie auf der ein oder anderen Art schon im Einsatz sind.

Ich suche also immer noch so etwas wie ein Softwareserial wie es für den 
Arduino ja auch gibt.

Meine Suche in der weiten Welt von Google hat mich leider nicht weiter 
gebracht. Meine Kontakte konnten mir auch leider nicht weiter helfen!

Gruß
Carsten

von Frank K. (fchk)


Lesenswert?

Du hast ja I2C am laufen. Es gibt I2C-UARTs:

http://ics.nxp.com/products/bridges/i2c.spi.slave.uart.irda.gpio/
http://www.maximintegrated.com/datasheet/index.mvp/id/6463

Damit solltest Du 1-2 zusätzliche serielle Ports hinbekommen.

fchk

von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Hallo Frank,

das ist eine Idee, wenn gar nichts anderes mehr geht!
Lieber wäre mir aber wirklich etwas wo ich (andere) nicht noch basteln 
müssen.

Ich bin wirklich erstaunt, dass es in dieser Richtung nichts gibt. Oder 
suche ich einfach nur falsch?

Gruß
Carsten

von Juergen G. (jup)


Lesenswert?

Brauchst Du denn den zusaetzlichen UART fuer Ein und Ausgabe oder nur in 
einer Richtung.

Ich komme dann nochmal auf das zurueck was ich oben schon mal 
geschrieben habe.

Es ist nicht schwer einen Code der fuer den AVR existiert auf einen 
STM32 zu portieren.
Ich habe viele der Libs die ich fuer die AVR's habe auf STM32 portiert.

Im allgemeinen machst Du folgendes:

I/Os und deren Initialisierungen anpassen dabei gleich per defines die 
GPIO's auf die Namen mappen die Du in der AVR Lib verwendest.

Timer im STM32 aussuchen und configurieren
ISR dieses Timers auf Deine ISR Funktion der AVR Lib mappen.

von Carsten G. (Firma: K(B)lick-Punkte) (cgiesen)


Lesenswert?

Ich brauche den Port in beide Richtungen, allerdings auf einem Pin.
Ich brauche ihn für Telemetrie:
1.) Frage vom Receiver: Gib mir mal die GPS Daten
2.) Antwort vom STM32: Alle GPS Daten

Und das alle in 19200 Baud.
Das heißt ich muss den Pin zunächst auf Empfang haben und dann zum 
Antworten umschalten, und wenn es dann fertig ist, wie auf Empfang 
gehen.

von Juergen G. (jup)


Lesenswert?

Ich glaube mich zu erinnern das Peter Dannegger hier mal sowas fuer den 
AVR gepostet hat.

Es gibt aber auch mehrere threads die sich damit befassen.

Such mal nach "One Wire UART"

Ju

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.