www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programm -> USB -> ATMega


Autor: Florian G. (aenimatronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich wühle mich schon seit ein paar Tagen durchs I-Net, finde aber nichts 
passendes. Deshalb möchte ich mal euch befragen, denn ich bin mir 
sicher, dass irgendwer von euch davon einen Plan hat ! :-)

Also:
Ich möchte unter Visual Studio 2008 und Vista ein Programm mit C++ 
schreiben, das dann via USB mit einem ATMega kommuniziert.

Ich stelle mir das nun so vor:
Ich binde so einen "SeriellPort" aus der Toolbox in mein Programm ein, 
wobei ich dann die dazugehörigen Funktionen dazu bei msdn finde.
Von der Controllerseite her, würde ich an die RS-232-Schnittstelle einen 
IC anbinden, der mir RS-232 auf USB umsetzt. Soweit passt ja schonmal 
alles zusammen.

Aber was fehlt mir jetzt zwischen dem SerialPort aus der Toolbox und dem 
USB-Anschluss am Rechner, damit das Programm auch mit dem Controller 
kommunizieren kann?

Klappt das überhaupt so ?

Ich bin für jede Hilfe und Input dankbar!!!

Danke schonmal im Vorraus ! :-)

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian G. schrieb:
> Von der Controllerseite her, würde ich an die RS-232-Schnittstelle einen
> IC anbinden, der mir RS-232 auf USB umsetzt.

Ich denke dieser "Umsetzer" hat einen Treiber der dir eine virtuelle 
Serielle Schnittstelle simuliert: sprich du hast einen Com3 oder KA was. 
Den kannst du das mit dem "SeriellPort" ansprechen.

Gruß Marc

Autor: Florian G. (aenimatronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE ! :-)

Das hört sich doch schon mal super an und es klingt so, als würde das 
die Lücke schließen :-)

Ich werde deinem Tipp gleich nachgehen ! :-)

Für weiter Tipps bin ich ebenfalls dankbar!

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn Platine USB haben soll

PC<-USB->FT232<-UART->ATmega

Häufig verwendet bewährt

oder V-USB Google hilft.

oder

PC<-USB->USB-RS232-Wandler<-RS232->MAX232<-UART->ATmega

Platine hat dann einen Ser. Port

Autor: Florian G. (aenimatronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ganze soll so realisiert werden:

PC<-USB-Kabel->FT232<-RS232->ATmega



@ Marc

Ich kann mir jetzt aber noch nicht wirklich vorstellen, wie denn nun der 
SeriellePort(aus der Toolbox) den Kontakt zu dem Treiber-"Port" 
herstellt. Ich meine, woher weiß der eine Port von der Existenz des 
Anderen und dem Umsatnd, dass sie miteinander kommunizieren sollen? Hast 
du da auch noch eine Erklärung für ?

Autor: Heinz Brill (Firma: Privat) (hbrill)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kauf dir doch einfach so ein USB->Seriell Kabel.
Hab einen Stecker (Digitus) vom großen C. Funktioniert
auch. Kommt drauf an, was du für ein Experimentierboard
hast. Mit serieller Schnittstelle wäre das optimal.
Aufpassen : Hab die Erfahrung gemacht, daß meine beiden
(Digitus + Vivanco) ein Nullmodemkabel brauchen.

PS: Frage an die anderen :
Kann Windows nur auf einer Schnittstelle senden ?
Hatte mir mal ein kleines Windows-Programm geschrieben,
das 2 Schnittstellen öffnet. Konnte aber nur mit der
Schnittstelle senden, die als erstes geöffnet wurde.

Hat jemand auch schon diese Erfahrung gemacht ?

Autor: blubb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
unter windowes wird dein visual studio dir das schon abnehmen

es gibt bereits fertige libs wo man nur sagen muss welchen COM port man 
öffnen will

wenn das klappt gibts nen einfaches write und read vom COM ...
was du mit diesen daten dann anstellst is wiederum deine sache

was im hintergurnd passiert mit FTDI treibe rund so .. is DIR egal
das macht das betriebssystem


die libs bieten hierfür meist ganz einfache funktionen
nach der art : int OpenCOM( char *comport );
rückgabewert ist eben 1 wenns geklappt hat , 0 wenn der COM nicht 
existiert
so kann man zB listboxen erstellen mit COM die im system existieren

vlt is das ganze eine fertige klasse unter C++
dort wirds dann wieder was mit -->  geben ...

prinzip is immer das selbe

COM abfragen im betriebssystem
COM öffnen
Baudrate einstellen

fetrig



dann musst du dir für die kommunikation ein protokoll überlegen
entweder ganz stur über ASCII
( man kanns beim debuggen auch mal mitlesen .)
oder man baut sich protokolle zusammen

0x10 <länge> <datenblock> <checksumme> 0x80
oder sowas in der art

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.