Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
30.04.2011, 15:44 (Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2011 15:47 von thodel.)
Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Hallo,
ich habe mich schon in verschiedenen Themen belesen und komme derzeit einfach nicht weiter:
Ich möchte am Digitalen Ausgang meines USB-6008 ein Rechtecksignal ausgeben.
Nun habe ich einen analogen Impulsgenerator gewählt und will das Signal A/D umwandeln.
Am Ende soll, wie beim analogen Signal, eine Pulsfolge mit Low = 0 V und High = 5 V herauskommen.
Nur erstellt mir das Programm mehrere Leitungen die von 0,5 V bis 1,5 V reichen.
Ich hab nun die Auflösung auf 1 runter geschraubt, damit ich nur eine Leitung als Signal erhalte.
Wenn ich mehrere Leitungen ausgebe, ist der Pegel meines empfangenen Signals (DI1) stets nur 1, also High. Ich habe dann auch nur 1 Leitung, obwohl ich 2 Ausgebe.
Kann ich den Pegel ändern oder könnt ihr mir sagen, was ich falsch mache ?
Sollte ich vielleicht anders herangehen ? Es gibt ja bereits mehrere Tutorials bzw. Programme, die PWM ausgeben. Wären die besser ?
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Keine Ahnung, was du da mit "mehrere Leitungen" etc. meinst.
Aber dir sollten die Limitationen deiner DAQ-Karte bewußt sein:
Die 6008 kann bei DIO keinen Hardware-Takt, sondern "nur" Lesen und Schreiben mit Software-Takt.
Die Zeitinfos, die in einer digitalen Waveform enthalten sind, verarbeitet die Karte also gar nicht.
Bei dir pro Schleifendurchlauf: Du schreibst eine Waveform auf einen DO, das wird dann (wahrscheinlich) so schnell wie möglich von der Karte abgearbeitet. Gleichzeitig liest du 1 Sample auf dem DI, da wirst du natürlich nur ein High-Signal sehen.
Gruß, Jens
P.S.: Schon oft hier im Forum besprochen, eine Ausgabe eines PWM-Signals mit hoher Frequenz und eine 6008/6009, das passt nicht zusammen.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Danke für die schnelle Antwort.
Ich möchte 1 bis 60 Hz ausgeben, ist das schon zu schnell ?
Ich hab ein Bild angehangen, da seht ihr, was ich mit "Leitungen" meine, in dem Falle wären es bei einer Auflösung von 3 Bit => 3 Leitungen. Sagt mir das, dass jedes Bit die gleichen Infos bzgl. Waveform enthält, oder gebe ich 3 Signale aus ?. Da ich die karte grad nicht angeschlossen hab, seht ihr im unteren rechten Diagramm nichts, da wäre dann nur eine Leitung und permanent eine "1 - High".
Die Karte erkennt also die digitalen Rechteckimpulse nicht, und kann sie auch nicht so schnell ausgeben? Oder würde es in meinem Frequenzbereich funktionieren?
Würde sich das an den analogen I/O anders verhalten ? (bin am testen)
Ich werde gleich selbst nochmal ins Datenblatt schauen und im Forum stöbern.
Was ich aber noch nicht verstehe: Kann ich die 5 V digital ausgeben, oder warum bleibts beim 0,5 ... 1,5 V Verlauf ? Könnte ich das mit einem Pull-up Widerstand beheben ?
edit: Ich hab nochmals ein Test-Programm erstellt, das einfach ein logisches "High", also 5 V ausgeben soll, es kommen aber nur ca. 3,58 V am AI an. Ist vielleicht die Masse falsch verbunden ?
Grüße
Thomas
01.05.2011, 17:20 (Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2011 17:28 von GerdW.)
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Hallo Thomas,
Zitat:Kann ich die 5 V digital ausgeben, oder warum bleibts beim 0,5 ... 1,5 V Verlauf ?
In deinem Bild kann ich nirgends einen "0,5-1,5V"-Verlauf entdecken. Dein AI zeigt 0-5V an, dein DI garnichts und dein DO zeigt 3 "lines" an, die jeweils zwischen LOW und HIGH pendeln...
Also: wo siehst du einen 0,5-1,5-Verlauf?
Zitat:Ich hab nochmals ein Test-Programm erstellt, das einfach ein logisches "High", also 5 V ausgeben soll, es kommen aber nur ca. 3,58 V am AI an.
Wie sollen wir das beurteilen - wir kennen weder dein Testprogramm noch wissen wir, was du wie verschaltet hast...
Zitat:Ist vielleicht die Masse falsch verbunden ?
, siehe oben
Zitat:Sagt mir das, dass jedes Bit die gleichen Infos bzgl. Waveform enthält, oder gebe ich 3 Signale aus ?
Wieso "oder"? Da gehört ein "und" hin...
Laut deinem VI oben erzeugst du ein digitales Signal mit nur einem Bit. Laut deinem Bild erzeugst du aber ein digitales Signal mit 3 Bit.
Also hast du dein VI geändert, ohne es uns mitzuteilen. Und wir sollen jetzt rumraten...
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
danke für die Antwort!
Ich hatte es oben geschrieben, dass ich 3 Lines bekomme, wenn ich 3 Bit einstelle, und nur eine mit 1 Bit. Das Bild ist mit 3 Bit und entsprechend 3 Lines, da kommt beim Digital In, aber stets nur ein High an. Bei einer Line und 1 Bit kommt ein zwischen High und Low wechselnder Verlauf raus.
Ich habe die Skala auf 0 V bis 5 V eingestellt, und der High-Low Pegel pendelte dabei zwischen 0,5 V und 1,5 V. Das Signal bei DI entsprach sozusagen einer Line bei Digital Out.
Beim Analog In entsprach der Peak-Wert 3,58 V und nicht 5 V. Ach: ist das vielleicht der Effektivwert ? Dann würde es passen, und am Digital Out kommen wirklich die 5 V raus, wie du gesagt hast.
Das Testprogramm hab ich angehangen. Ich hab DIO mit AI0 und DI1 verbunden.
Wenn ich die 5 V am digitalen Ausgang haben möchte, geb ich doch lediglich ein "True" auf den DO, oder ?
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Hallo Thomas,
in deiner While-Schleife fehlt eine Wartefunktion. Außerdem gibt es eine Palette mit boolschen Operatoren, unter anderem auch ein NOT (RubeGoldberg läßt grüßen)!
Deine Whileschleife läuft unbegremst, du toggelst ständig den DO-Ausgang. Nun sollte der lt. TTL-Spezifikation in <50ns umschalten - was aber nicht bedeutet, dass dein AI ebensoschnell auf Änderungen reagiert. Vielleicht ist der AI einfach zu langsam, um die schnellen Änderungen deines DO zu verfolgen und zeigt dir deshalb nur ~3.5V an (quasi Tiefpaß-geglättet)?
Pack doch einfach mal eine Wartezeit von 50ms in deine Schleife...
Zitat:Ich habe die Skala auf 0 V bis 5 V eingestellt, und der High-Low Pegel pendelte dabei zwischen 0,5 V und 1,5 V.
Welche Skala? Die des AI? Der zeigt doch ein Signal von 0 bis 5V an!?
Oder redest du von den DigitalGraphen? Die zeigen keine Volt-Pegel, sondern nur High/Low-Pegel für mehrere Bits an...
P.S.:
Deinen VIs würde ein kurzer Klick auf den Aufräum-Knopf zu viel mehr Lesbarkeit verhelfen...
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Danke für den Hinweis mit dem Aufräumen, kannte ich noch nicht.
Ich hatte vergessen zu erwähnen, dass der Graph, übrigens auch mit der Wait-Funktion, zwischen 3,58 V und ca. -1,4 V schwankt. Der Peak-Peak-Abstand wären dann ja die 5 V. Woran könnte es liegen, dass der Graph verschoben ist ? An einer fehlenden Ground-Beziehung vielleicht ?
Und ich meinte den Digital-Graphen, entschuldige. Hab prinzipiell alle Skalen von allen Graphen gemeint. Sitz nur schon so lange dran, dass ich solche Feinheiten vergess.
Hier erstmal der Graph:
Die Wartefunktion bringt leider keinen Unterschied diesbezüglich.
edit:
Mit meinem richtigen Programm sieht es dann so aus: Der Analog-In zeigt einen Rechteck-Verlauf und schwankt aber zwischen 3,58 V und -1,4 V:
Nochmal die Diagramme erklärt:
Oben rechts - das erzeugte Analoge Signal
Mitte links - das erzeugt analoge Signal in ein digitales gewandelt, mit 1 Bit Auflösung.
Mitte rechts - das digital gemessene Signal von mitte links
unten - das analog gemessene digitale Signal von mitte links
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
So wird das nichts.
Nochmals: Die 6008 kann die Zeitinfo, die in der Digital-Waveform drinsteckt, nicht verarbeiten. Dafür musst du selber sorgen.
Dein VI aus Beitrag #5 ist "totales" Chaos. Du kannst nicht an einem DO_Task eine Counter-Definition anschließen.
Ich empfehle dir, dich tiefergehend mit Datenerfassung und DAQmx vertraut zu machen: http://www.labviewforum.de/Thread-Gettin...h-NI-DAQmx
Dass du 3,58V und -1,4V misst, liegt mglw daran, dass du die Massen nicht korrekt verbunden hast. Oder du hast etwas in den MAX-Tasks für AI falsch definiert. Es wäre gut, wenn du vor dem nächsten Upload diese Kanäle durch DAQmx-Code ersetzt (einfach Rechtsklick -> Generate Code).
So, und zum Anschluss noch ein Upload, der mit einer 6008 funktionieren sollte:
RE: Digitalen Rechtecksignalverlauf ausgeben, zu viele Leitungen, 1,5 V Pegel statt 5 V ?
Danke nochmal für das VI, Jens!
Ich habs gestest, aber nachdem ein mal ein Peak (nach verbinden der Masse) mit 5 V bzw. 1-High ankam, bleibt das Signal bei Low bzw. ca. 0 V.
Ich dachte mir, dass die 'Flache Sequenzstruktur' nicht erneut abgearbeitet wird (sah im Highlight-Modus so aus), drum hab ich nochmals eine While-Schleife drumgelegt. Auch das ändern/verschieben der vorhandenen Timings bzw. das hinzufügen zur neuen While-Schleife (weil ich dachte, dass eine Operation nicht hinterher kommt), hat nur dazu geführt, dass entweder immer um die 5 V bzw. High oder um die 0 V bzw. Low ausgegeben wurden.
Ich hatte auch überlegt die Write-Tasks zurückzusetzen, aber da fällt mir keine Stelle ein, wo ich die Operation einfügen sollte, zumal das sicher gar nicht nötig ist (?).
Verbunden ist DO0 mit DI1 und AI1, dessen Bezug auf GND liegt( also AI1- an GND). Das sollte stimmen.
Erkennt jemand mit geschultem Blick, was noch nicht stimmt? Ich hoffe, dass es nicht ein generelles Problem ist.