Daisy-Chaining - Flankenproblem

Gast #3719525
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 #3722025
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
Gast #3722038
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?
Gast #3722078
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
"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
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
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
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
Gast #3723484
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.