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


von Markus (Gast)


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

von Tom (Gast)


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 ?

von Tom (Gast)


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)

von Markus (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Thomas L. (tom)


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 ...

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.