Daisy-Chaining - Flankenproblem

Gast #3719525
Lesenswert?

Hallo,

ich möchte gerne einen ADG1438 nutzen. Dahinter sollte ein PGA via SPI 
angesteuert werden.

blöderweise hat der ADG den "read" bei der fallenden Flanke:
http://www.analog.com/static/imported-files/data_sheets/ADG1438_1439.pdf

wenn ich mir jetzt die PGAs ansehe, wie den MCP6S91, lesen diese ja bei 
der steigenden Flanke:
http://ww1.microchip.com/downloads/en/DeviceDoc/21908a.pdf

somit kann ich diese zwei Bausteine wohl nicht kaskadieren, oder? Das 
einzige was ich mir überlegt habe ist, dass ich einfach ein "sinnloses" 
Bit raustakte, dann müsste ich dennoch trotzdem 16 Bit in den MCP6S91 
kriegen, das eine Bit geht verloren.

Geht das?

Alternativ: Gibt es PGAs (1-2 Kanäle, rail2rail in/out, SPI, 5V Single 
supply, sonst nichts weltbewegend genaues o.ä.), welche genauso lesen 
wie der ADG? Diesen brauche ich leider zwingend, hier gibt es keine 
Alternativen (maximalspannung, etc)

Bin gespannt!

Viele Grüße
Gast #3722078
Lesenswert?

PIC-Besitzer schrieb im Beitrag #3722038:
> Oder meinst du ich sollte mit zwei SYNC Leitungen arbeiten?

Ja, d.h. sternförmig. Die Chips benutzen nicht das gleiche Protokoll, 
aber ohne aktives CS ist ihnen egal was passiert. Du musst 
wahrscheinlich jeweils deine SPI-Schnittstelle anpassen, wenn du das 
Interface nicht gleich zu Fuss betreibst.

Georg
Gast #3722276
Lesenswert?

"Du musst
wahrscheinlich jeweils deine SPI-Schnittstelle anpassen, wenn du das
Interface nicht gleich zu Fuss betreibst."

was meinst du damit?

ich hätte jetzt zwei Pins für den Sync geopfert, DataIn/Clock jeweils 
beiden gleich gegeben.

Fragt sich nur wo ich einen Pin herkriege :-) Mein Controller ist voll 
belegt...

Ein kleiner Miniinverter im Clock-Zweig ala:
http://www.mouser.com/ds/2/302/74LVC1G14-188382.pdf

funktioniert nicht? Wohl schon, oder?

Dann könnte ich mir den Pin sparen und 0,8 x 0,8 mm habe ich gerade noch 
so frei ;);)

Grüße!
Gast #3722384
Lesenswert?

PIC-Besitzer schrieb im Beitrag #3722276:
> wenn du das
> Interface nicht gleich zu Fuss betreibst."
>
> was meinst du damit?

Ich dachte, du verwendest eine fest eingebaute SPI-Schnittstelle. Wenn 
nicht, geht es auch so (eben zu Fuss):

1. Datenausgang umschalten
2. Tsetup warten (wenn nötig, sind nur ns)
3. SClk lo setzen
4. Tsclklo warten
4. SClk hi setzen

 usw. dann setzt du die Daten und erzeugst anschliessend einen Lo impuls 
auf SClk, der eine Chip übernimmt die Daten bei der fallenden, der 
andere bei der steigenden Flanke.

Tdo musst du auch noch beachten, je nachdem welcher Chip zuerst kommt.

Georg
Gast #3722490
Lesenswert?

okay, jetzt haben wir aneinander vorbeigeredet. Ich verwende die in 
meinem PIC18 verbaute SPI Schnittstelle!

Aber der Weg ist ja ähnlich... einmal den einen Sync low ziehen und 
takten, dann den anderen...

mal sehen.

Der Inverter funktioniert nicht?

Grüße!
Gast #3722886
Lesenswert?

Hallo,

ich sehe da relativ dunkelgrau: im Daisy-Chain-Modus braucht der MCP an 
2. Stelle 16 Nullen, die gibt der ADG aber nicht aus. Und wenn nicht 
genau 16 Clks auf einen Befehl kommen, verwirft der MCP den Befehl. 
Vielleicht gibt es ja eine trickreiche Möglichkeit, das mit einem 
gemeinsamen /CS hinzubekommen, aber ich sehe sie nicht.

Das Chaining beim MCP funktioniert nur deshalb, weil er die ersten 16 
Nullen als NOP betrachtet. Die ersten 8 Bit an SDO des ADG sind aber 
"undefined". Vermutlich funktioniert das Daisy Chaining nur von einem 
MCP zum nächsten.

Georg

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