Ich habe diesen DAC beschalten:(Seite 22 Register)
http://www.ti.com/lit/ds/symlink/dac7634.pdf
Anbei der Schaltplan.
Ich habe mit dem KO nachgemessen, es werden drei Bits gesenden mit den
richtigen Inhalten. Es sollte eig. alles stimmen ich krieg jedoch bei
VoutC 0V, anstelle von 2.5V sieht jemand ein fehler?
Das Unterprogramm:
Rebi schrieb:> Anbei der Schaltplan.
So wie ich das entziffern kann ist da MOSI und MISO vertauscht...
Der MOSI "Master Out, Slave In" muss an SDI "Serial Data IN"
Und MISO "Master In, Slave Out" bekommt Daten vom SDO "Serial Data Out"
> Ich habe mit dem KO nachgemessen
Und? Lass doch mal sehen...
Lothar Miller schrieb:> Der MOSI "Master Out, Slave In" muss an SDI "Serial Data IN"> Und MISO "Master In, Slave Out" bekommt Daten vom SDO "Serial Data Out"
Danke hab ich irgendwie vertauscht werde ich gleich ändern.
Rebi schrieb:> Funktioniert jetzt, nochmals danke.
Rückblickend ist der Thread-Titel mal wieder voll daneben.
Denn der suggeriert ja dass der DAC kaputt ist ......
>> DAC liefert immer 0V
Arduinoquäler schrieb:> Denn der suggeriert ja dass der DAC kaputt ist ......
Nein, er suggeriert, dass da nur 0V herauskommen.
Rebi schrieb:> Funktioniert jetzt, nochmals danke.
Und was wars? Die MISO-MOSI-Sache?
Arduinoquäler schrieb:> Nein, ein DAC der immer 0V ausgibt muss kaputt sein.
Nun ja, man kann Haare auch der Länge nach spalten...
> ein DAC der immer 0V ausgibt muss kaputt sein.
Durchaus nicht. Es würde ausreichen, wenn er niemals angeschlossen oder
immer falsch angesteuert wird. Oder er wird korrekt angesteuert, aber in
einer Art, dass er immer 0V ausgibt...
Lothar Miller schrieb:> Durchaus nicht. Es würde ausreichen, wenn er niemals angeschlossen oder> immer falsch angesteuert wird. Oder er wird korrekt angesteuert, aber in> einer Art, dass er immer 0V ausgibt...
Die Aussage "immer" schliesst ja genau all diese anderen Fälle aus.
Lothar Miller schrieb:> Und was wars? Die MISO-MOSI-Sache?
Ja daran lag es.
Arduinoquäler schrieb:> Nein, ein DAC der immer 0V ausgibt muss kaputt sein.
Bevor ich die Leitungen getauscht hatte gab er immer 0V.
Noch eine Frage:
Wieso funktioniert nur die erste Anweisung? Nach der ersten erhalte ich
2.5V am Ausgang, nach dem 2ten Tastendruck habe ich immeer noch 2.5V.
Was mache ich falsch?
Rebi schrieb:> PORTB |=((1<< PB4) | (1<<PB0) | (1 << PB1)); // Chip Select LDAC und> LOAD
Ich hab jetzt im Datenblatt nicht nachgesehen. Aber meistens sind
derartige Leitungen flankgesteuert. Damit eine Flanke zustande kommt,
muss aber eine Leitung, die auf High geht, irgendwann aber auch wieder
mal auf Low zurück gehen.
Chip Select wird statisch auf High bleiben können. Aber irgendwelche
'Load' Leitungen reagieren oft auf Flanke und nicht auf Pegel.
Karl Heinz schrieb:> Ich hab jetzt im Datenblatt nicht nachgesehen. Aber meistens sind> derartige Leitungen flankgesteuert. Damit eine Flanke zustande kommt,> muss aber eine Leitung, die auf High geht, irgendwann aber auch wieder> mal auf Low zurück gehen.
Stimmt hatte ich vergessen, Danke.
Noch letze Frage(Hoffentlich)
Jetzt habe ich das Problem wenn ich zuerst DAC A beschreibe und dannach
DAC B, hat DAC A denn falschen Wert.
Also nach einem Tastendruck DAC A --> 2.5V
zweiter Tastendruck Dac B --> 1.1V und DAC A --> 1.1V
Wieso bleibt DAC A nicht 2.5V? Ich resete ihn nirgends.
Code gleich wie oben ausser:
Rebi schrieb:> Noch letze Frage(Hoffentlich)
Zitat aus Datenblatt:
---------------------------------------------------------
The first two bits select the input register that is
updated when LOAD goes LOW.
---------------------------------------------------------
Das interpretiere ich so dass du erst deine 24 Bit senden musst,
und dann LOAD auf low setzen, damit der Baustein weiss welcher von
den vier DACs angesprochen werden soll.
Also Funktionseintritt mit LOAD = High
- 24 Bit senden
LOAD = Low
_delay_us (whatever)
LOAD = High
_delay_us (whatever)
LDAC = High
Arduinoquäler schrieb:> Das interpretiere ich so dass du erst deine 24 Bit senden musst,> und dann LOAD auf low setzen, damit der Baustein weiss welcher von> den vier DACs angesprochen werden soll.
Der Code funktioniert ja, ausser das DAC A (überschrieben?) wird wenn
ich DAC B beschreibe. Wenn ich LOAD vorher auf HIGH setzt passiert
nichts, 0V.
Rebi schrieb:> Wenn ich LOAD vorher auf HIGH setzt passiert> nichts, 0V.
Sry hab es falsch gemacht. Hab es vorhin nochmals probiert, funktioniert
jetzt danke.