Hallo Leute, ich hätte eine Frage bezügliche eines 8 Kanal 12 Bit dac den ich mit SPI und Python ansteuern möchte, hier bei handelt es sich um einen DAC 128S085 und mein Problemn ist ich weis nicht was es mit dem WRM / WTM aufsich hat. Danke für eure Hilfe
Andreas V. schrieb: > ich weis nicht was es mit dem WRM / WTM aufsich hat. Mit dem Register Mode schreibst du z.B. Werte für alle 8 Kanäle in ein Pufferregister und kannst die DAC Ausgänge dann auf ein weiteres Kommando gleichzeitig aktualisieren. Mit dem Write Through Mode wird der Ausgang des jeweils beschriebenen DAC sofort aktualisiert.
Danke für die schnelle Hilfe, das heißt dann das ich zuerst im das WTM Register setzen muss das ja 0x90 0x00 ist und anschließend schreibe ich ihm die Daten welcher der 8 Ausgänge beschrieben wird und anschließend hat der die gewünschte Spannung richtig ?
Andreas V. schrieb: > das heißt dann das ich zuerst im das WTM Register setzen muss das ja > 0x90 0x00 ist und anschließend schreibe ich ihm die Daten welcher der 8 > Ausgänge beschrieben wird und anschließend hat der die gewünschte > Spannung richtig Fehlen da irgendwelche Satzzeichen? > richtig Ja, so steht es im Datenblatt auf Seite 19. Weil der Baustein beim PowerUp im Register Modus ist, musst du ihn über das WTM Register in den Through Modus umstellen. > ? Bitte nicht Plenken! Ein Fragezeichen hat keine eigene Zeile verdient.
Also ich habe jetzt versucht den DAC anzusprechen aber irgendiwe zuckt da nichts. Zuerst schicke ich ihm wie gewollt die 0x90 0x00 und anschließend 0x15 0xFF das ist ja die Vollaussteuerung des ersten Kanales oder irre ich mich da ? unten habe ich mein Code mal reinkopiert. Wenn ich mit meinem Oszi an dem DAC messe kommen die daten dort auch an, aber der DAC verarbeitet sie nicht /: Hoffe ihr könnt mir weiterhelfen. import RPi.GPIO as GPIO import time import spidev GPIO.setmode(GPIO.BOARD) GPIO.setup(29, GPIO.OUT) GPIO.setup(31, GPIO.OUT) GPIO.setup(33, GPIO.OUT) #Led farbe Grün GPIO.setwarnings(False) spi = spidev.SpiDev() spi.open(0, 0) #! Hier wird kanal 0 des SPI gescahlten spi.mode = 0b11 # Negativ Flanken gesteuert #spi.max_speed = 5000 GPIO.output(29, False) # DMUX Kanal 5 Schalten GPIO.output(31, False) GPIO.output(33, True) while(1): spi.writebytes([0x90 , 0x00]) spi.writebytes([0x15 , 0xFF])
Andreas V. schrieb: > Wenn ich mit meinem Oszi an dem DAC messe kommen die daten dort auch an Du hast den falschen SPI Modus. Laut Datenblatt muss die Datenleitung an der fallenden Taktflanke stabil sein.
Lothar M. schrieb: > Andreas V. schrieb: >> Wenn ich mit meinem Oszi an dem DAC messe kommen die daten dort auch an > Du hast den falschen SPI Modus. Laut Datenblatt muss die Datenleitung an > der fallenden Taktflanke stabil sein. Ich bin gerade alle 4 Modis durchgegangen aber kein Modus bringt mir das was ich dann laut Datenblatt brauche. Oder muss es einer der 4 Modi sein ?
Andreas V. schrieb: > was ich dann laut Datenblatt brauche. Oder muss es einer der 4 Modi sein > ? Mit Sicherheit. Denn es gibt mit 2 Bit nur diese 4 Möglichkeiten. Und zur Übung: bitte nicht Plenken... > Ich bin gerade alle 4 Modis durchgegangen Du musst den Modus finden, wo der Takt zu Beginn high ist und die Daten mit steigender Flanke ausgegeben werden. Das ist Mode 1 oder Mode 2. Du kannst ja mit dem Oszi einfach kontrollieren, ob dein Timing zum Datenblatt passt. Andreas V. schrieb: > irgendiwe zuckt da nichts. Der DAC ist wie im Datenblatt versorgt und aufgebaut?
Hallo, also es funktioniert, der Fehler lag echt an den Modis, ich hatte Modus 3 und nun mit Modus 2 Funktioniert es und er bringt mir den voll ausgesteuerten Spannungswert am Ausgang. Von der Verdrahtung ist es fast ähnlich wie im Datenblatt. Danke für deine Hilfe =)
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.