Forum: Mikrocontroller und Digitale Elektronik Daisy-Chaining - Flankenproblem


von PIC-Besitzer (Gast)


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

von PIC-Besitzer (Gast)


Lesenswert?

Ich dachte jetzt fast schon an einen Inverter im Clock Zwei nach den 
ADGs...?

von PIC-Besitzer (Gast)


Lesenswert?

Keine eine Idee?!

von Georg (Gast)


Lesenswert?

PIC-Besitzer schrieb im Beitrag #3719525:
> somit kann ich diese zwei Bausteine wohl nicht kaskadieren, oder?

Wozu? Die können doch unabhängig voneinander angesprochen werden.

Georg

von PIC-Besitzer (Gast)


Lesenswert?

mein Controller hat nur einen SPI Bus? ich kaskadiere die ADGs und an 
letzter Stelle kommt der PGA.

Oder meinst du ich sollte mit zwei SYNC Leitungen arbeiten?

von Georg (Gast)


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

von PIC-Besitzer (Gast)


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!

von Georg (Gast)


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

von PIC-Besitzer (Gast)


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!

von Georg (Gast)


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

von Easylife (Gast)


Lesenswert?

Wohl kaum.
Die einfachste Lösung wäre für beide Chips getrennte CS Leitungen. Dann 
kannst du auch die Clockpolarität beliebig anpassen.

von Praktiker (Gast)


Lesenswert?

PIC-Besitzer schrieb im Beitrag #3722276:
> Fragt sich nur wo ich einen Pin herkriege :-) Mein Controller ist voll
> belegt...

Dann muss man vielleicht einmal ganzheitlich über die Schaltung 
nachdenken.

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.