Hi, Ich möchte gerne mehrere MCP3208-CI_SL über 1 SPI Bus in Daisy-Chain auslesen, bin mir aber nicht sicher ob das geht. Plan B wäre ein Shift Register auf CS, aber mit Daisy Chain würde ich nochmals massiv Traces sparen bei großer Anzahl Chips. Jemand eine Idee, ob Daisy Chain des SPI mit dem MCP3208-CI_SL klappt? Wie es ausschaut, geht nur DIN in ein Shift Register und dann nach DOUT, wenn ich aber die CLK an allen ICs gleichzeitig anlege, lesen die Müll ein bis DOUT des letzten ICs mit den richtigen Start Infos kommt. Datenblatt: https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/21298e.pdf Grüße, Bert
Bert S. schrieb: > Jemand eine Idee, ob Daisy Chain des SPI mit dem MCP3208-CI_SL klappt? Ich kenne keinen einzigen ADC/DAC, der sowas kann. Es müßten ja alle weiteren Eingangsbits durchgereicht werden. Es wird aber immer nur das eigene Ergebnis ausgegeben.
Bert S. schrieb: > Wie es ausschaut, geht nur DIN in ein Shift Register und dann nach DOUT Wo meinst du das zu erkennen? Ich lese das Protokoll so, dass DIN nie nach DOUT geschoben wird. Also wird in einer Chain das eingetaktete Konfigurationswort nicht an den nachfolgenden ADC weitergegeben.
Gib jeden SPI slave seinen eigenen CS. Alle andere signalen von SPI bus koennen parallel. Wieviel ADCs brauchst du ? Dann hat man auch die moeglichkeit zB alle ADCs gleich zu starten und nachdem individuel aus zu lesen. Daisy Chaining ist hier nicht fuer geeignet; das wird z.B benutzt fuer individuelle LEDs die mit eine (art von) SPI angesteuert werden. Oft kann man DIN und DOUT noch parallel schalten. Es sieht so aus das diesen Chip das auch kann. Patrick aus die Niederlande
:
Bearbeitet durch User
Lothar M. schrieb: > Wo meinst du das zu erkennen? Ich lese das Protokoll so, dass DIN nie > nach DOUT geschoben wird. Also wird in einer Chain das eingetaktete > Konfigurationswort nicht an den nachfolgenden ADC weitergegeben. Danke, habe gerade gesehen, dass dem nicht so ist. Also bleibt nichts anderes als individuelle CS. Im Endeffekt brauche ich 20 x 8 ADCs, also 20 solcher Chips. Dann halt mit einem Shift Register.
Peter D. schrieb: > Ich kenne keinen einzigen ADC/DAC, der sowas kann. z.B. der ADS1299 Aber der hat außer dem DIN noch ein extra ein DAISY_IN.
Bert S. schrieb: > Im Endeffekt brauche ich 20 x 8 ADCs Für >8 Eingänge nehme ich Multiplexer (74HC4051). Um die Multiplexer zu wählen, noch einen 74HC595. Du brauchst also 2 /CS Anschlüsse für das SPI. Für 160 Eingänge: 20 * 74HC4051 + 1 * 74HC595.
Peter D. schrieb: > Ich kenne keinen einzigen ADC/DAC, der sowas kann. https://www.analog.com/media/en/technical-documentation/data-sheets/AD7902.pdf
Bert S. schrieb: > Im Endeffekt brauche ich 20 x 8 ADCs, also > 20 solcher Chips. Dann wuerde ich mich nicht so sehr sorgen machen ueber extra control lines aber mehr ueber power distribution, groesse der Platine in kombination mit connector-inputs fuer die analoge signalen, geschwindigkeit/sample rate usw... Erzahl mal etwas ueber die gesammt applikation bitte
Bert S. schrieb: > Im Endeffekt brauche ich 20 x 8 ADCs, also 20 solcher Chips. Mit 20 von den Chips hast du genau 20 ADCs, weil jeder von denen nur genau einen ADC enthält (Datenblatt S.1). Jeder Chip kann dann wiederum zwischen 8 Analogeingängen per Multiplexer auswählen (falls du sie auf single endet konfigurierst, sonst nur 4). Daisy Chain geht mit denen definitiv nicht (Kap. 3.5/3.6 DS). Manche DACs können das, falls sie über den SPI nur die Daten für die Ausgabe erhalten. Da ist dann aber keine Multiplexersteuerung erforderlich.
Ohne jetzt das Datenblatt verglichen zu haben: Wir verwenden 20 Stück der AD7766BRUZ hintereinander in DaisyChain-Konfiguration. Das funktioniert zuverlässig und sehr solide. Benötigt allerdings einen µC der auch ein entsprechendes Peripheral zum Auslesen der vielen Bits hintereinander hat. In unserem Fall ein DSP der TMS320 Familie. Der hat ein Multichannel-Peripheral das sowas in Kombination mit dem DMA unterstützt. Andere µC haben heutzutage oftmals "CustomLogic"-Peripherals, eine Art µFPGA, mit dem sich sowas evtl. realisieren lässt.
Du kannst das CS Signal und das Din Signal mit einem Schieberegister verzögern und zum nächsten MCP führen, das CMOS 4517 IC hat zum Beispiel 2 Schieberegister mit 64 Stufen integriert. Da es Abgriffe bei 16, 32, 48 und 64 Stufen gibt, kannst du mit einem 4517 gleich 2 ADCs "daisychainen". Benötigt zwar ein zusätzliches (halbes) IC, aber spart viele Leitungen, wenn das ganze dezentral mit mehreren Modulen verwirklicht werden soll. Anbieten würden sich Module mit 2 MCPs auf einer Platine. (Siehe angehängtes Schema) Die einzelnen ADCs lassen sich nacheinander nach jeweils 32 Clocks Verzögerung abfragen, und antworten alle auf der einen MISO Leitung. Du musst halt zuerst CH0 von allen ADCs abfragen, dann CH1 von allen usw. Andi
Clock ist im Schema nicht eingezeichnet. Er wird halt mit allen Clock Eingängen verbunden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.