Forum: Mikrocontroller und Digitale Elektronik Analog Devices AD2S1210 will kein SPI sprechen


von Christoph N. (christoph_n)


Lesenswert?

Hallo,

zur Zeit plage ich mich mit folgendem Problem, bei dem ich überhaupt 
keine Lösung finden kann:

Ich habe einen ADC für Resolver vom Typ AD2S1210 auf einem Eval-Board. 
Dieser funktioniert mitsamt Resolver auch im Parallel-Betrieb und dem 
Dazugehörigen FPGA-Board mit der Windows-Software auch. Nun soll der 
Chip aber nicht im Parallel-Betrieb, sondern per SPI verwendet werden.

Im SPI Betrieb erzeugt der Chip kein Erreger-Signal, was vermutlich 
darauf zurückzuführen ist, dass ich die entsprechenden Register nicht 
per SPI beschreiben kann. Im (funktionierenden) Parallel-Betrieb konnte 
ich heute morgen die Initialisierung mittels Logic-Analyzer beobachten:

Es wird in das Control-Register (0x92) ein neuer Wert 0x76 geschrieben. 
Dieser unterscheidet sich vom Startwert darin, dass die Messauflösung 
geändert wurde.
Danach wird das Fault-Register (0xFF) Adressiert, aber es wird nichts 
gelesen. Danach macht er ein Erreger-Signal.

Das SPI-Signal erzeuge ich mit einem BusPirate von Dangerous Prototypes.
Wenn ich versuche z.B. das Control-Register zu lesen, kommt vom Chip ein 
0x0 zurück. Also kein 0xFF. Also nimmt der Chip meinen Leseversuch zur 
Kenntnis, aber es gibt keine vernünftige Antwort.
Der Verdacht liegt nahe, dass es vielleicht an einem verkehrtem SPI-Mode 
liegt. Anhand des Datenblattes (S.28 / S.29) vermute ich, dass es sich 
um SPI-Mode 3 handelt.

Die Konfigurtion des Bus Pirate ist folgende:
1
1. HiZ
2
2. 1-WIRE
3
3. UART
4
4. I2C
5
5. SPI
6
6. 2WIRE
7
7. 3WIRE
8
8. LCD
9
x. exit(without change)
10
11
(1)>5
12
Set speed:
13
 1. 30KHz
14
 2. 125KHz
15
 3. 250KHz
16
 4. 1MHz
17
18
(1)>1
19
Clock polarity:
20
 1. Idle low *default
21
 2. Idle high
22
23
(1)>1
24
Output clock edge:
25
 1. Idle to active
26
 2. Active to idle *default
27
28
(2)>2
29
Input sample phase:
30
 1. Middle *default
31
 2. End
32
33
(1)>2
34
CS:
35
 1. CS
36
 2. /CS *default
37
38
(2)>
39
Select output type:
40
 1. Open drain (H=Hi-Z, L=GND)
41
 2. Normal (H=3.3V, L=GND)
42
43
(1)>1
44
Ready
45
SPI>W P
46
POWER SUPPLIES ON
47
Pull-up resistors ON

Leider finden sich im Internet wenige Quellen, wie der Chip vernünftig 
verwendet wird und langsam gehen mir die Ideen aus. Ich wäre für jede 
Hilfe sehr dankbar.

Viele Grüße

Christoph

von Christoph N. (christoph_n)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe das Problem noch mal weiter beleuchtet und es scheint definitiv 
an der nicht korrekt abgewickelten SPI-Kommuniktaion zu liegen.
Man kann die Register auslesen, indem man die Adresse schickt. Im 
nächsten Zyklus kann man den Registerinhalt lesen. Ich habe dem Dinge 
eine 0x88 geschickt, in dreier-Gruppen und das Ganze wiederholt. Die 
Antwort sollte von der Theorie her immer die Gleiche sein. Im Bezug auf 
die Dreierguppe ist es so, dass die Daten innerhalb der Gruppe 
variieren, die Gruppen ansich aber immer identisch sind.
Ich glaube, dass das irgendwie an Timing, oder der Art von SPI, wie sie 
abgewickelt wird liegt. Screenshots vom LA sind im Anhang.

Evtl. hat ja hier noch jemand eine Idee.

Vielen Dank und Viele Grüße

Christoph

von Hans23 (Gast)


Lesenswert?

Christoph N. schrieb:
> Im SPI Betrieb erzeugt der Chip kein Erreger-Signal, was vermutlich
> darauf zurückzuführen ist, dass ich die entsprechenden Register nicht
> per SPI beschreiben kann.

Der Chip sollte eigentlich auch ohne Konfiguration ein Erregersignal 
erzeugen.
Bei mir macht er das auch im SPI-Modus.

Hast du das "EVAL-AD2S1210"-Board? Hast du nochmal alle Jumper 
überprüft?
Hast du auch /SOE auf low und /RD auf high geklemmt?

Ja ich weiß, deine Frage ist schon ein ganzes Weilchen her, aber falls 
es bei dir nicht mehr aktuell ist, interessiert es vielleicht wen 
anderen.

Grüße,
Hans

von Falk B. (falk)


Lesenswert?

Liegt vielleicht am No-SPI Abkommen mit der NSA ;-)

von Michael U. (amiga)


Lesenswert?

Hallo,

die Selektion durch A0/A1 machst Du richtig?

Habe das Datenblatt zu SPI nur überflogen, in Deinen Samples fehlen die 
Pegel zu diesen Leitungen ja.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Hans23 (Gast)


Lesenswert?

Folgendes Problem hat mich auch eine Weile beschäftigt.
Hier die schnelle Problemlösung, falls jemand auch dieses Problem hat:

https://ez.analog.com/thread/8891?tstart=0

Grüße aus Stralsund,
Hans

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.