Forum: Mikrocontroller und Digitale Elektronik AD5290 SPI klappt nicht richtig (mega328 und Arduino IDE)


von Nik A. (nik_a)


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

von Sven B. (scummos)


Lesenswert?

100pF Kondensatoren von CS, MOSI, MISO nach GND direkt neben dem 
Empfänger einlöten? Immer ein guter erster Schritt wenn SPI komisches 
Zeug macht ...

von Nik A. (nik_a)


Lesenswert?

kann ich morgen mal probieren, wobei das Signal erst mal sauber aussieht
deswegen tippe ich irgendwie auf SPI-config-Fehler, kann es mir selbst 
wegen fehlender Praxis nicht zusammenreimen :)

von spess53 (Gast)


Lesenswert?

Hi

>SPI_MODE1

Wieso das? Für mich ist das Mode 0.

MfG Spess

von Nik A. (nik_a)


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 
...

von Nik A. (nik_a)


Lesenswert?

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

von spess53 (Gast)


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

von Nik A. (nik_a)


Angehängte Dateien:

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"

von Michael U. (amiga)


Lesenswert?

Hallo,

Nik A. schrieb:
> das Bild im Anhang ist eine gesendete "250"

also 1111 1010,
auf dem Oszibild, soweit erkennbar, auch. Mode 0, Übernahme mit 
steigernder Clock-Flanke.

Wie der Oszi auf 245 (1111 0101) kommt, ist mir unklar.

Gruß aus Berlin
Michael

von Nik A. (nik_a)


Lesenswert?

Jedenfalls sollte ich mich das nächste Mal besser zurechtfinden :)
Danke Euch :)

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.