mikrocontroller.net

Forum: PC-Programmierung Kommunikation zw. AVR und PC (LabVIEW7.1) über USB


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich arbeite an einem Studien_Projekt, bei dem ein AVR Controller
(ATMega128) Messwerte an einen PC senden soll. Die Software des PC soll
mit LabVIEW implementiert werden.
Gemessen wird z.B. die Temperatur und dieser Wert soll direkt an den PC
über UART/USB gesendet werden.

Meine Frage ist, wie ich mit LabVIEW diese Bytes empfangen und
darstellen kann. Die Beispiele von LV behandeln leider nur die
Kommunikation mit NI-USB Geräten.
Bisher habe ich aber schon heraus gefunden, dass ich einen USB RAW
driver erstellen muss, was ich auch gemacht habe und installiert habe.
Aber leider kann ich auf der PC-Seite nichts empfangen.

Mein Mikrocontroller sendet derzeit dauernd nur ein byte über UART.

Hat jemand für mich einen Tip, bzw. wo ich ein LabVIEW-Beispiel zum
lesen und auch schreiben von char/bytes auf Nicht-NI-USB-Geträte finden
kann?

Vielen Dank schon mal an eure Hilfe!
Markus

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo :)

Nachdem ich bereits ein grösseres Projekt hinter mir habe (zwar nicht
genau in dem Bereich, aber ich konnte Erfahrung sammeln) kann ich
vielleicht ein wenig weiterhelfen.

Auf der einen Seite sagst du über UART, auf der anderen über USB - wie
ist das jetzt zu verstehen ? Vielleicht ein USB Chip der eine serielle
Schnittstelle zur Verfügung stellt ?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ich noch sagen wollte ...

Natürlich .. UART ist ein weit gefächerter Begriff ... schliesst ja USB
nicht aus ...

aber du schreibst dass dein µC sendet .. und der atmega128 hat imho
keinen usb support ...


Muss es denn USB sein, würde nicht auch die serielle Schnittstelle
reichen ? (dazu würde Lab View eigentlich alles mitbringen)

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Tut mir leid, da hab ich mich wohl etwas zu ungenau ausgedrückt.

UART bzw USART ist ja die asynchrone, serielle Schnittstelle, die u.a.
der Atmega128 zur Verfühung stellt. Ich arbeite mit einem
Controller-Board, auf dem bereits ein UART zu USB interface-chip
integriert ist (silicon labs CP2102). Deshalb braucht man sich über
USB auf seiten des Controllers nicht so viele Gedanken zu machen.

Mein Problem ist mehr, wie ich mit LabVIEW die gesendeten Daten vom
Controller erkennen bzw. empfangen kann. Das Ganze sollte
Interrupt-gesteuert ablaufen, d.h. wenn Daten im Empfangsregister
vorhanden sind, sollen sie abgeholt werden usw..

Das Projekt an dem ich arbeite, fordert leider die Kommunikation über
eine USB-Schnittstelle.

Vielen Dank für die Unterstützung!

Grüße, Markus

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du einen USB-Seriell-Adapter (CP2102 oder FT232 etc.) verwendest,
dann musst Du mit LabView auch nur 'ne serielle Schnittstelle
ansteuern. Nämlich die, die der Devicetreiber des USB-Seriell-Adapters
zur Verfügung stellt.
Daß da physikalisch irgendwo USB verwendet wird, ist für LabView
irrelevant.
Dein Programm, wenn es denn mit einer "echten" seriellen
Schnittstelle funktioniert, sollte ohne (größere) Änderungen auch
direkt mit der simulierten seriellen Schnittstelle des
USB-Seriell-Adapters klarkommen.

Tip am Rande: COMn mit n > 9 spricht man als \\.\COMn an.

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus:
ich kenne den CP2102 nicht, aber was ich grad eben so gesehen habe, ist
das nichts anderes als ein USB/Seriell Converter. Sprich: du hast in
deinem System einfach eine zusätzliche, serielle Schnittstelle.

Demzufolge kannst du in LabView auch sagen, dass du einfach gern eine
serielle Schnittstelle ansprechen willst (vergiss das ganze USB Zeug -
du musst nur wissen, welche Nummer die serielle schnittstelle hat ->
gerätemanager).

Du findest in Labview die Funktionen für die serielle im BlockDiagram
unter AllFunctions -> InstrumentIO -> Serial


Du brauchst dann ein VISA Configure Serial Port, dort kannst du baud
rate usw. angeben (wie beim uC wahrscheinlich). Dann kannst du mit dem
channel "duplicate VISA reasource name" auf ein VISA Write oder VISA
Read gehen und daten lesen oder schreiben ...

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.