Forum: Mikrocontroller und Digitale Elektronik Kommunikation zwischen Arduino und STM32


von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

Hallo,

ich bin Newcomer in Mikroelektronik und bastle erstmal an verschiedenen 
Projekten herum.
Ein Projekt erfordert die Kommunikation zwischen
Arduino Nano Every und einem STM320F072B Discovery-Board. Ich bevorzuge 
serielle Datenübertragung da die Pinanzahl des Arduino sehr knapp 
bemessen ist.
Gibt es irgendein Interface das auf beiden Seiten einfach einzusetzen 
ist und mit Befehlen aus Cube HAL/Arduino funktioniert?

von chris_ (Gast)


Lesenswert?

>STM320F072B Discovery-Board
Warum nimmst Du nicht beidseitig das Arduino-Framework?
https://github.com/stm32duino/Arduino_Core_STM32

von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

chris_ schrieb:
>>STM320F072B Discovery-Board
> Warum nimmst Du nicht beidseitig das Arduino-Framework?
> https://github.com/stm32duino/Arduino_Core_STM32

Hm...  Eine gute Idee. Aber mir geht es eher um eine Datenübertragung 
zwischen zwei Boards. Wie könnte ich das dann mit dem Arduino-Framework 
realisieren?

von Malte _. (malte) Benutzerseite


Lesenswert?

Möglichkeit a:
Auf beiden Seiten UART. Jeweils TX mit RX verbinden. Das erfordert zwei 
Pins pro Controller und eventuell je einen Quarz, damit die Baudraten 
immer passen.
Möglichkeit b:
Einer ist SPI Master, der andere Slave. Erfordert drei Pins pro 
Controller aber, der Takt ist recht egal.

Achte darauf, dass der STM32 3.3V benötigt, der Arduino aber vermutlich 
5V. Hier ist gegebenenfalls eine Pegelanpassung notwendig.

von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

Ja aber der Arduino unterstützt nur ein UART.

von Wolfgang (Gast)


Lesenswert?

Das wüsstet ihr G. schrieb:
> Ja aber der Arduino unterstützt nur ein UART.

Dann nimm ein Soft-UART dazu.
Es kommt auf die Anwendung an, ob das praktikabel wäre.

von Veit D. (devil-elec)


Lesenswert?

Das wüsstet ihr G. schrieb:
> Ja aber der Arduino unterstützt nur ein UART.

Dem kann man abhelfen. Verwende das MCUdude Package.
https://github.com/MCUdude/MegaCoreX
Lies alles durch inkl. Pinout

Für den Datenaustausch denkst du dir ein Protokoll aus was auf beiden 
Controllern verwendet wird. Vielleicht gibts noch etwas zu beachten mit 
der Byte Ausrichtung, mir fällt jetzt nicht der Fachbegriff ein, da ich 
8Bit AVR only programmiere.

: Bearbeitet durch User
von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

Wolfgang schrieb:
> Dann nimm ein Soft-UART dazu.
> Es kommt auf die Anwendung an, ob das praktikabel wäre.

JA gute Idee.
Die Anwendung wäre die Übertragung von Gleitkommazahlen und Integern.

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.