Forum: Mikrocontroller und Digitale Elektronik Daten vom PC via USB an PIC senden


von Thomas W. (thomas0906)


Lesenswert?

Hallo

Ich möchte Daten vom PC via USB Anschluß an einen PIC senden, der an 
eine RS232 Schnittstelle mit einem MAX232 angeschlossen ist.

Möglichst mit Excel VBA.

Gibt es da irgendwo schon bewährte Komponenten RS232/USB Wandler, 
Treiber, Software (Excel VBA Zugriff auf RS232) (muß ja einen virtuellen 
ser. Port erzeugen) für Windows 7?

Gruß
Thomas

von Hans W. (stampede)


Lesenswert?

PIC18F4550, PIC18F14K50, FTDI232R, Kabel kaufen, ...

von teto (Gast)


Lesenswert?

-Weitere Bauteile AT90USB, FTD232R.
-Fertige Lösungen wären, Teensy, AT90USBKey.
-Fertige, reine Software-Lösung 
http://www.obdev.at/products/vusb/index-de.html.
Welche Lösung für dich passt, musst du selbst entscheiden. Bei dem 
VBA-Teil musst du wohl selber bei. ;)

von Tobi D. (fanti)


Lesenswert?

ich würde den Pic18f4550 oder den kleinen Bruder 18f2550 verwenden, da 
spart man sich den USB Chip.

Die RS232-Routine gibts von Microchip schon fertig und man kann 
problemlos eigenen Code ergänzen.

Allerdings RS232-Exel habe ich keine Ahnung, ich habe die Kommunikation 
bis jetzt nur mit C++/c# gemacht, da musst du dich wohl selbst 
durchwühlen.

von Thomas W. (thomas0906)


Lesenswert?

Danke für die Antworten.

18F4550 klingt gut.

Wie kriegt man denn bei einem integrierten USB die galvanische Trennung 
zum, PC hin? Bei RS232 ja über Signale/Optokoppler und Spannung DCDC 
Wandler!

Wie erkennt der PC denn den USB Chip. Muß man da nicht erst irgendwelche 
USB Kennugen vergeben und Treiber einspielen u.s.w.?
Bzw. was müßte ich am PC machen, damit ich dann von einem 
Terminalprogramm Hex Werte an meinen PIC senden kann.

Ich wollte USB eigentlich dadurch umgehen, daß ich einen USB/RS232 
Adapter nehme und alles über virtuelle serielle Schnittstelle laufen 
lasse.

Gruß
Thomas

von Εrnst B. (ernst)


Lesenswert?

Thomas W. schrieb:
> Wie kriegt man denn bei einem integrierten USB die galvanische Trennung
> zum, PC hin?

Nicht den integrierten Phy verwenden, sondern einen externen an den PIC 
koppeln (steht im Datenblatt wie das geht).

Oder nach dem internen Phy einen Chip wie den ADUM4160 einsetzen.

http://www.analog.com/en/interface/digital-isolators/ADuM4160/products/product.html

Thomas W. schrieb:
> Ich wollte USB eigentlich dadurch umgehen, daß ich einen USB/RS232
> Adapter nehme und alles über virtuelle serielle Schnittstelle laufen
> lasse.

Dann mach das doch. Tut fast jeder USB->Rs232 Dongle für 5€ aus dem 
Baumarkt.

von Thomas W. (thomas0906)


Lesenswert?

Ich wollte sowas nehmen:

http://www.reichelt.de/USB-Konverter/USB2-SERIELL/index.html?;ACTION=3;LA=444;GROUP=EU5;GROUPID=5253;ARTICLE=58641;START=0;SORT=preis;OFFSET=1000;SID=31xW@fQqwQAR8AABn2SI450d29e208d169087c5b2d233f2ddce08

Da ist die Elektronik drauf und ich kann als RS232 Schnittstelle einen 
MAX232 nutzen mit Optokopplern und SM1-1205 DCDC Wandler.

Gruß
Thomas

von Εrnst B. (ernst)


Lesenswert?

> Da ist die Elektronik drauf und ich kann als RS232 Schnittstelle einen
> MAX232 nutzen mit Optokopplern und SM1-1205 DCDC Wandler.

Jup.
Oder z.B. aus einem FT232 selber bauen. Da entfällt dann die TTL -> ±12V 
-> TTL hin-und-herwandlerei. Wird aber im Selbstbau teurer.

von Frank K. (fchk)


Lesenswert?

Thomas W. schrieb:
> Danke für die Antworten.
>
> 18F4550 klingt gut.
>
> Wie kriegt man denn bei einem integrierten USB die galvanische Trennung
> zum, PC hin? Bei RS232 ja über Signale/Optokoppler und Spannung DCDC
> Wandler!

Galvanische Isolierung gibts auch für USB. Du solltest aber *wirklich 
ernsthaft* darüber nachdenken, ob Du die Isolationsbarriere nicht 
hinter dem PIC ansetzt. Das ist einfacher zu realisieren.

> Wie erkennt der PC denn den USB Chip. Muß man da nicht erst irgendwelche
> USB Kennugen vergeben und Treiber einspielen u.s.w.?
> Bzw. was müßte ich am PC machen, damit ich dann von einem
> Terminalprogramm Hex Werte an meinen PIC senden kann.

Bei USB gibt es die CDC Standardklasse, die in jedem aktuellen 
Betriebssystem enthalten ist. Normalerweise braucht man dafür keinerlei 
spezielle Treiber, nur MS hat es mal wieder versaubeutelt, und man 
braucht zumindest eine .inf-Datei. Bei Mac und Linux kannst Du ein CDC 
Device einfach anstecken, und es funktioniert einfach.

> Ich wollte USB eigentlich dadurch umgehen, daß ich einen USB/RS232
> Adapter nehme und alles über virtuelle serielle Schnittstelle laufen
> lasse.

So ein Umsetzer ist immer nur die zweitbeste Lösung, weil USB und RS232 
zu unterschiedlich sind.

fchk

von Thomas W. (thomas0906)


Lesenswert?

Hi

Bei Sprut hab ich auch noch Infos gefunden.
Der Kerl hat ja wirklich ALLES schon mal angefaßt...

http://www.sprut.de/electronic/interfaces/usb/usb.htm

Gruß
Thomas

von Εrnst B. (ernst)


Lesenswert?

Auch wenn's etwas kleinlich ist:

Frank K. schrieb:
> Bei USB gibt es die CDC Standardklasse

Die ist aber eigentlich für Modems gedacht (Communication Class 
Devices) und explizit nicht für USB->RS232 Umsetzer.
Geht halt trotzdem, indem man manche Komandos einfach am Standard vorbei 
implementiert.

Frank K. schrieb:
> So ein Umsetzer ist immer nur die zweitbeste Lösung, weil USB und RS232
> zu unterschiedlich sind.

Der ist die korrekte Lösung, um ein RS232-Device an USB zu bringen, wenn 
man die Geräteschnittstelle nicht von Grund auf neu für USB entwickeln 
will.

Die "Unterschiede" machen sich erst deutlich bemerkbar, wenn du den 
RS232-Port für NICHT Rs232-Aufgaben verwenden willst, z.B. zum 
Pinwackeln für AVR-ISP etc.

von teto (Gast)


Lesenswert?

Thomas W. schrieb:
> http://www.reichelt.de/USB-Konverter/USB2-SERIELL/...
>
> Da ist die Elektronik drauf und ich kann als RS232 Schnittstelle einen
> MAX232 nutzen mit Optokopplern und SM1-1205 DCDC Wandler.
Hier im Forum gibt es einen Thread zu den Konvertern, ich glaube die von 
DeLock und die von Digitus wurden da als zuverlässiger angegeben.
Ich habe einen von DeLock und bisher keinen Streß damit gehabt, oft 
brauche ich ihn aber auch nicht und er fängt Staub auf dem Regal. ;-)

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.