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
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
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?
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
"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!
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
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!
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
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.