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
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 ?
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)
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
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.
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.