Forum: Mikrocontroller und Digitale Elektronik Python Programmierung 8 Kanal 12 Bit DAC


von Andreas V. (keki9387)


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

von Dennis S. (eltio)


Lesenswert?

Steht doch im Datenblatt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

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.

von Andreas V. (keki9387)


Lesenswert?

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 ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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.

von Andreas V. (keki9387)


Angehängte Dateien:

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])

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

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.

von Andreas V. (keki9387)


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 
?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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?

von Andreas V. (keki9387)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.