Kommunikation µC <-> PC

OP #5023507
Lesenswert?

Hallo,

es steht mein erstes Projekt an, bei dem ich kleine Datenmengen 
(Stellung von Schaltern, ADC-Werte, ...) zum PC übertragen möchte bzw 
andersherum Werte setzen möchte (zB PWM-Werte, LEDs, ...).

Wichtig: Das ganze soll möglichst einfach zu implementieren sein und 
lange Zeit funktionieren. Auf PC-Seite hätte ich die Daten dann gerne 
mit einer eigenen Software (die gibt es noch nicht) aufgefangen.

Habe gestern V-USB getestet. Als HID-Gerät lief das ganz gut - leider 
wären da einige Anpassungen (inkl. eigener Treiber) nötig, um 
ordentliche Daten zu übertragen.

Das ganze ist ein Hobby-Projekt und ich bin kein Profi, deshalb steht 
Einfachheit im Vordergrund.


Welche Möglichkeit zur Kommunikation sollte ich nutzen?
Dachte an UART -> RS232 (MAX232), aber an welchen PC kann man das 
heutzutage noch anschließen. Und die USB-Wandler machen häufig Mucken 
wie ich hörte...

Gruß
Gast #5023517
Lesenswert?

Michael N. schrieb:
> Und die USB-Wandler machen häufig Mucken
> wie ich hörte...

Dann sammel eigene Erfahrungen. Es gibt Millionen von USB-Wandlern, die 
gut funktionieren. Du musst dir überlegen, was für einen Wandler du 
einsetzen möchtest und worauf du Wert legst.

Beim PL2303-Clone hast du z.B. unter Windows 10 das Problem, dass 
Microsoft beim automatischen Update den funktionierenden Treiber 
gnadenlos durch einen nicht funktionierenden ersetzt. Unter anderen 
Betriebssystemen, die dem Nutzer nicht derart in seine Konfiguration 
reinpfuschen, wird das anders aussehen.

Die vielen Arduinos mit direktem USB-Wandler auf dem Board oder mit 
native USB funktionieren auch problemlos.
Bei einem modernen PC auf eine native RS232-Schnittstelle (ohne internen 
USB-Wandler) zu hoffen, halte ich für nahezu aussichtslos.
#5023530
Lesenswert?

#5023542
Lesenswert?

Servus,

zum Basteln, v.A. auch, wenn evtl. die gebastelte Schaltung gleich vom 
USB-Port des PCs mit Spannung versorgt werden soll, würde ich aber einen 
USB-Seriell-Wandler mit Logikpegeln vorziehen. Was soll denn die 
umständliche hin -und hertransformierei mit MAX232 o.ä. auf beiden 
Seiten?
Notfalls kann man sich sowas ja auch noch selber stricken, wenn man eh 
schon am Basteln ist... 
https://www.reichelt.de/USB-CAN-BUS-Controller/FT-232-RL/3/index.html?ACTION=3&GROUPID=2946&ARTICLE=64399
Persönliche Seite #5023550
Lesenswert?

Also HID ist doch recht einfach. Das wuerde ich fuer den Anfang nehmen. 
Bei HID ist es ja gerade der Vorteil, dass man sich um den Treiber nicht 
kuemmern muss, da jedes Betriebssystem den standardmaessig schon dabei 
hat. Also wenn die Datenraten nicht zu hoch sind wuerde ich bei HID 
bleiben. Ich kenne jetzt allerdings V-USB nicht, ich hatte erst 
kuerzlich einen PSoC ueber HID an meine Anwendung angebunden.
Gast #5023570
Lesenswert?

Wolfgang schrieb:
> Michael N. schrieb:
>> Und die USB-Wandler machen häufig Mucken
>> wie ich hörte...

> Die vielen Arduinos mit direktem USB-Wandler auf dem Board oder mit
> native USB funktionieren auch problemlos.

Diese Wandler funktionieren sogar ohne Arduino, nämlich an jedem uC mit 
UART-Schnittstelle. Und man kann mit 2 Optokopplern PC und uC einfach 
trennen, so brennt im Zweifelsfall nur der uC ab. Absolut 
empfehlenswert!

> Bei einem modernen PC auf eine native RS232-Schnittstelle (ohne internen
> USB-Wandler) zu hoffen, halte ich für nahezu aussichtslos.

Ein Gerücht oder gibt es eine Trendwende?
heise.de/preisvergleich schrieb:
> Fujitsu D3313-S5 (...) Anschlüsse extern: 1x DVI-I, 1x DisplayPort 1.2,
> 4x USB-A 2.0, 2x Gb LAN (Realtek RTL8111G), 2x Klinke, 1x PS/​2 Tastatur,
> 1x PS/​2 Maus, 2x seriell (...) Gelistet seit: 19.04. 2017, 17:36

In Wirklichkeit hat das Board intern noch eine dritte RS232...

https://www.heise.de/preisvergleich/fujitsu-d3313-s5-a1610879.html
(Firma: EleLa - www.elela.de) #5023572
Lesenswert?

Hier gibt es diverse Seriell To Ethernet/Wifi/BlueTooth Module:
http://www.usriot.com/p/serial-uart-ethernet-module/

Recht günstig und benötigt auf der µC Seite nur einen UART.

Würde ich ebenfalls empfehlen.
Damit muss der PC nicht unbedingt neben der Elektronik stehen UND der PC 
ist nicht direkt verbunden mit der Elektronik (Stichwort Überspannung 
usw.).

Keinen USB-Seriell Adapter, wäre mir zu unsicher.
Gast #5023574
Lesenswert?

Schau dir mal HLDC an. Damit bist du zum Teil vollkommen unabhängig von 
deiner Schnittstelle (WLAN, Bluetooh, UART, RS422, RS485, RS232, SPI, 
i2c,...) und du bekommst deine Informationen sauber übertragen denn in 
der Regel baut man hier auch gleich noch CRC ein.
Gast #5023582
Lesenswert?

Ich habe eine HiFi Fernsteuerung welche kabelgebunden dann Daten an den 
PC senden soll seriell angeklemmt.

RemoteCtrl -> Verstärker -> Kabel -> ATmega -> rs232 -> RS232USB -> 
LinuxPC

56800Baud
Rückkanal in Planung zur Anzeige aktueller Musiktitel auf kleinem LCD 
oder so.
Gast #5023744
Lesenswert?

> Wolfgang schrieb:
> ...
>> Bei einem modernen PC auf eine native RS232-Schnittstelle (ohne internen
>> USB-Wandler) zu hoffen, halte ich für nahezu aussichtslos.
>
> Ein Gerücht oder gibt es eine Trendwende?
> heise.de/preisvergleich schrieb:

Das versuchte ich durch "nahezu" auszudrücken. Es gibt einige wenige, 
die das haben, beispielsweise im Bereich der Industrie-PCs. Aber gehe 
mal in den Laden und mach eine Statistik über den Anteil der 
PCs/Motherboards/Tablets mit originärer RS232-Schnittstelle.
Gast #5023748
Lesenswert?

H-G S. schrieb:
> Das Problem mit USB könnte auf PC-Seite sein: Du brauchst ein Programm
> mit USB-Treiber etc.

Wenn jemand unbedingt ein Nischenbetriebssystem einsetzen muss, für das 
der Chipherstellern keine Treiber anbietet, kann das natürlich ein 
Problem sein.

Wenn der TO sich mal äußern würde, auf welchen Betriebssystemen er seine 
Schnittstelle ggf. nutzen möchte, würde das die Auswahl erheblich 
erleichtern.
#5023755
Lesenswert?

Wolfgang schrieb:
> Aber gehe
> mal in den Laden und mach eine Statistik über den Anteil der
> PCs/Motherboards/Tablets mit originärer RS232-Schnittstelle.

Tablets natürlich nicht. Aber bei den meisten PCs/Motherboards lässt sie 
sich noch auf dem Board finden und kann mit einem Kabel herausgeführt 
werden.

Allerdings nur eine.

Ansonsten gibt es Steckkarten.

Aber mit den USB-Dingern habe ich bisher nie Probleme gehabt. Und die 
liegen hier zu hauf aus den USB-Ports.


Gruß
Jobst
Gast #5023789
Lesenswert?

Alexander F. schrieb:
> Reginald L. schrieb:
>> Wie wärs mit ethernet?
>
> Oder WLAN, falls das vorhanden ist.
> Ich habe hier ein paar NodeMCU (ESP8266). Die lassen sich in Python
> programmieren.

Der ESP8266 ist keine so schlechte Lösung. Ich verwende ihn (ohne jemals 
die Firmware geupdatet zu haben) in einem aktuellen Projekt als 
WLAN->UART-Wandler.

Vom ESP her macht man einen Acesspoint auf und startet einen 
Telnet-Server. Das ist mit dem AT-Protokoll über eine UART nicht 
wirklich schwierig.

PC-Seitig kann man sich mit Putty in den Server einwählen und einfach 
lostippen.

Sicherheitstechisch ist das natürlich der absolute Killer (keine 
Verschlüsselung, keine Anmeldung, Funk), aber meine Messwerte sind weder 
geheim noch gefährlich.

Sonst kann ich generell noch FT232RL empfehlen. CP210x verwende ich sehr 
viel in der Arbeit, ebenfalls ohne ein einziges Problem bisher.
Beim FT232 sind Fakes im Umlauf. Die also bei Reichelt oder Conrad 
kaufen, nicht beim Chinesen.
OP #5024250
Lesenswert?

Vielen Dank bereits für die vielen Antworten und Ideen.

Ich möchte für diverse Betriebssysteme (Windows, Linux, optional 
Android) die Möglichkeit zusätzliche Taster, Drehregler, ... 
anzuschließen.
Da dies an einer möglichst großen Bandbreite an Endgeräten funktionieren 
soll, scheidet RS232 aus.

Toll (auf lange Sicht) wäre eine Art variable Schnittstelle: Der 
Mikrocontroller (kein Arduino - geht hier um eine reine µC-Schaltung) 
sendet seine Befehle per UART und je nach angeklemmten Baustein (ESP8266 
für WLAN, USB-Wandler, ...) werden die Befehle verschickt.

Für den Anfang würde ich aufgrund der Einfachheit auf eine 
kabelgebundene Lösung setzen wollen (Stromversorgung über PC, kein Ärger 
mit WLAN, ...).
Hier fiel mal der Begriff eines "USB-seriell-Wandlers mit Logikpegeln" - 
das schien mir für dieses Ziel sehr passend. Gibt es da Empfehlungen?
Gast #5025119
Lesenswert?

Michael N. schrieb:
> Für den Anfang würde ich aufgrund der Einfachheit auf eine
> kabelgebundene Lösung setzen wollen (Stromversorgung über PC, kein Ärger
> mit WLAN, ...).
> Hier fiel mal der Begriff eines "USB-seriell-Wandlers mit Logikpegeln" -
> das schien mir für dieses Ziel sehr passend. Gibt es da Empfehlungen?


Die CP210x serie oder der FT232RL sind genau das.
#5025144
Lesenswert?

> Da dies an einer möglichst großen Bandbreite an Endgeräten funktionieren
soll, scheidet RS232 aus.

> Hier fiel mal der Begriff eines "USB-seriell-Wandlers mit Logikpegeln" -
das schien mir für dieses Ziel sehr passend. Gibt es da Empfehlungen?


Ist natuerlich Quatsch oder auch nicht.
Die Uebertragung ist per Comport. Mittlerweile auf dem PC als 
USB-to-Serial realisiert. Die PC software sieht ein Comport.

Auf dem Device geht es per UART. Mit der UART Ansteuerung.

Nun kann man sich noch ueberlegen, will man den USB-to-UART Umsetzer als 
USB-to-UART Adapter in den PC einstecken, und dann per serieller 
Schnittstelle dh RS232, RS422, RS485 ueber das Kabel oder will man
ein USB Kabel und einen USB-to-UART Chip auf dem Device.

Dazu ist anzumerken.
USB ist limitiert auf 5m. Und wenn man keinen sauberen GND hat, dh 
Spannungsdifferenzen ueber den GND, zB in Industrieumgebung, hat USB ein 
Problem. Abhilfe waere eine Potentialtrennung. auf dem Device zwischen 
USB Kabel, und dem UART auf TTL Basis. Und USB ist Punkt-zu-Punkt.

Zum Vergleich sind alle Seriellen, dh RS232, RS422, RS485 toleranter 
geben GND Spannungen im Bereich von wenigen Volt. Die Kabellaenge laesst 
ein mehrfaches zu, abhaengig von der Geschwindigkeit. Und bei RS422, 
RS485 kann man auch mehrere Devices an ein Comport des PC anbinden.

Ich empfehl Seriell ueber das Kabel.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren