AD5290 SPI klappt nicht richtig (mega328 und Arduino IDE)

OP #4541402
Lesenswert?
• ▲
▼
Hallo alle!

Es gibt zwar bisher schon wenige threads zum AD5290, mir halfen die aber 
nicht weiter :)

Ich hab Probleme, den Potis (hier sind es 4) Werte zuzuweisen.
Aktuell betreibe ich sie mit 12V, SPI kommt vom mega328, den ich mit der 
Arduino IDE beschreibe.

Im WWW finde ich verschiedene Angaben zu den SPI settings, laut 
Datenblatt wohl MSB first. SPI-Mode bin ich nicht ganz sicher, aber 
egal, was ich einstelle, es passiert immer das gleiche.

Nach dem Einschalten ist der Wert zwischen A und W etwa 5k5.
Sobald ich irgendetwas hinschicke, geht dieser Wert auf 10k5 und ändert 
sich nicht mehr.

SPI habe ich konfiguriert:
SPISettings settingsA(2000000, MSBFIRST, SPI_MODE1);

Daten schicke ich aktuell so:

SPI.beginTransaction(settingsA);
digitalWrite(CS_DC2, LOW);
SPI.transfer(255);
digitalWrite(CS_DC2, HIGH);
SPI.endTransaction();

Ich hatte mit SPI bisher sehr wenig zu tun, ich lerne auch hier Neues 
dazu.

Mittels Oszi dekodiere ich gerade die SPI-Daten, vielleicht helfen die 
Angaben:
CH1: SDA, polarity _|1|_ (ich vermute das bedeutet positiv)
CH2: SCL, fallende Flanke
data bits: 8
Endian: MSB
Format: DEC

Wenn ich nun also mit obigem Code eine 255 sende, sagt mir mein Oszi: 
255
genauso stimmt der Oszi mit allen anderen gesendeten Werten überein.

Die Daten gehen an Pin7 (SDI) von Poti und es ist die MOSI-Leitung am 
mega328 (D11, PB3)

Sieht schon jemand den Fehler bzw einen Config-Fehler, falls da einer 
ist?

Ich bin aktuell ratlos, warum sich der Wert vom Poti nicht ändert ...

Danke für Hilfe!

Schöne Grüße,
Nik
OP #4541653
Lesenswert?
• ▲
▼
teste ich auch noch mal gezielt morgen, aber ich hab eigentlich schon 
alle Kombinationen durch ^^

nur um sicherzugehen: wie genau deute ich das?
steigende Flanke von clock im Diagramm des Datenblatts, also CPOL=0
und dann seh ich nicht genau durch, auf was ich im Diagramm gucken muss 
...
Gast #4542192
Lesenswert?
• ▲
▼
Hi

>also mit mode 0 seh ich keine Übereinstimmungen auf dem Oszi, egal, was
>ich einstelle, der gesendete Wert ist nicht das, was beim Decodieren
>rauskommt

Vielleicht stimmt dein Decoder nicht. Mach male in Bild.

Ich habe schon seit über 15 Jahren Digitalpotis mit SPI von AD in den 
Fingern. Und die laufen alle im Mode 0.

MfG Spess
OP #4542262
Lesenswert?
• ▲
▼
glaub ich Dir, vorallem, wenn sie keine Macke haben ...
Ich hab jetzt einfach mal einen neuen genommen und bekomme nun die Werte 
eingestellt ... -_-;;

auf dem Oszi bekomm ich es allerdings nicht decodiert, vielleicht ein 
Bug von Rigol ...

Ich hab mir nochmal die verschiedenen SPI-Modi angesehen, so 100%ig sehe 
ich noch immer nicht durch, aber ich meine, wenn die Datenblöcke nicht 
verschoben sind, dann ist es CPHA = 1 bzw wenn die clk-Flanke halb im 
Datenblock ist, dann ist es 0?

das Bild im Anhang ist eine gesendete "250"
Angehängte Dateien:

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