Python Programmierung 8 Kanal 12 Bit DAC

OP #5067980
Lesenswert?

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
Moderator (Firma: Titel) Persönliche Seite #5067988
Lesenswert?

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.
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #5068112
Lesenswert?

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.
OP #5068341
Lesenswert?

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])
Angehängte Dateien:
OP #5068417
Lesenswert?

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 
?
Moderator (Firma: Titel) Persönliche Seite #5068445
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren