Hallo zusammen, da ich dazu keine zufriedenstellende Antwort im Datenblatt finde, hoffe ich, dass einer von euch einen Hinweis hat. Der TI support hatte auch keine Ahnung! Ich habe 3x ADS1299 AD-Wandler. Diese sind in der Standard-Konfig., sprich ohne Daisy-Chain. Soweit funktioniert alles, DRDY läuft synchron. Problem: Egal welchen Chip ich nun abfrage, die beiden anderen Chips setzen ebenfalls ihr DRDY Signal auf high. So als hätte der CS dabei gar keine Bedeutung. Klar, die Daten liefert nur der Chip mit CS, aber warum wechseln die beiden anderen ebenfalls in den Zustand (Daten noch nicht bereit). Übersehe ich da etwas. Anbei ein Mitschnitt. - rot, orange, gelb: Der Zeitpunkt wo ich den jeweiligen CS setze und lese - grün , blau, violett: Zustand des jeweiligen DRDY Signals
\CS bezieht sich beim ADS1299 IMHO nur auf die SPI-Schnittstelle, aber nicht auf Start und \DataReady (Blockschaltbild Fig. 9.2 auf S. 19 im DS)
Adam P. schrieb: > Egal welchen Chip ich nun abfrage, die beiden anderen Chips setzen > ebenfalls ihr DRDY Signal auf high. So als hätte der CS dabei gar keine > Bedeutung. Äh, DRDY ist aktiv low. Das muss währen des Samplens high sein und sieht bei Dir merkwürdig aus - als wäre automatisches Triggering mit hoher Datenrate an. > - rot, orange, gelb: Der Zeitpunkt wo ich den jeweiligen CS setze und > lese Es wäre besser gewesen diese Signale direkt abzugreifen. Falls Du das bereits tust: Auch diese Signale sind aktiv low und wären dann total falsch. Ansonsten: Schaltplan, bitte.
Jim M. schrieb: > Äh, DRDY ist aktiv low. Das muss währen des Samplens high sein und sieht > bei Dir merkwürdig aus - als wäre automatisches Triggering mit hoher > Datenrate an. Ja, das ist mir bewusst. DRDY ist aktiv low. Das Sampling läuft mit 4k und auch kontinuierlich...die Pause/erste Sampling nach jedem START wäre zeitlich nicht machbar (zu lange). Jim M. schrieb: > Es wäre besser gewesen diese Signale direkt abzugreifen. Dabei handelt es sich nicht um den CS, sondern um meinen Task (Funktion). Desalb heißen die Kanäle ja "ADS x read" und nicht "ADS x CS". ...das alles ist aber auch nicht das Problem. Ich hätte einfach nicht (wie Wolfgang sagte) gedacht, dass sich die anderen Chips angesprochen fühlen und somit ihren Status von DRDY zu (ah ich bin noch am sampeln) ändern, obwohl ich die gar nicht anspreche...somit muss ich nun immer warten, obwohl es eigentlich vom prinzip gar nicht nötig wäre. edit: Ich muss die 3 Chips jede 1ms abfragen. Würden die anderen Chips ihren Status nicht mitändern, dann würde auch eine Config. der Chips mit 1kHz/2kHz wohl ausreichen, aber so ist es dann die Sampling-Zeit zu lang, wenn die anderen sich immer mit angesprochen fühlen und neu beginnen. Hätte TI meiner Meinung nach anders umsetzen sollen... CS ist nun mal für mich CS und nicht nur für Datenkommunikation. Also beleiben mir wohl nur 2 Möglichkeiten: - es so belassen mit dem "Oversampling" - oder Umbau auf Daisy-Chain Sehe ich das richtig?
:
Bearbeitet durch User
Adam P. schrieb: > Hätte TI meiner Meinung nach anders umsetzen sollen... > CS ist nun mal für mich CS und nicht nur für Datenkommunikation. CS heißt bei SPI immer CS, nicht ahnend, dass ein Hersteller auf die Idee kommt, den Chip nicht nur über SPI zu steuern ;-) Zum Glück gibt es Datenblätter und Blockschaltbilder, aus denen man soetwas ablesen kann ...
Wolfgang schrieb: > CS heißt bei SPI immer CS, nicht ahnend, dass ein Hersteller auf die > Idee kommt, den Chip nicht nur über SPI zu steuern ;-) > > Zum Glück gibt es Datenblätter und Blockschaltbilder, aus denen man > soetwas ablesen kann ... Ja ok...dass würde ich ja alles einsehen, ergibt ja auch alles Sinn - und doch ist es ein Widerspruch in sich! Wenn CS lediglich für SPI ist, was ja auch ok ist, dann sollten Chips die nicht "selected" sind, dass SPI auch ignorieren...und nicht trotzdem ihren Status ändern (DRDY Signal). edit: Im Datenblatt steht, DRDY ändert den Status zu high beim ersten Takt-bit von SPI & wenn SPI nur bei CS gilt - folgt der Logik nach: Kein CS, kein SPI, keine Änderung an DRDY. Wenn ein Datentransfer per SPI nicht per CS für diesen Chip gedacht ist, sollte diese Änderung nicht eintreffen... Daran ist doch alles logisch. Wolfgang schrieb: > auf die Idee kommt, den Chip nicht nur über SPI zu steuern Man kann ihn starten, stoppen, reseten, aber SPI braucht man nun mal um die Daten auszulesen und da sollten sich andere Chips nicht angesprochen fühlen. ;-)
:
Bearbeitet durch User
Adam P. schrieb: > ... und nicht trotzdem ihren Status ändern (DRDY Signal). Sag das TI. Die werden das Verhalten gerne für dich ändern, wenn du ihnen einen Liefer-Rahmenvertrag anbietest, den sie nicht ablehnen wollen. Im Datenblatt steht "The CS signal has no effect on the data ready signal". Und Recht scheint es zu haben - beschwere dich nicht.
Beitrag #5159650 wurde vom Autor gelöscht.
...OK, nun seh ich es auch. Vielen Dank! Hätte es so jedoch nicht erwartet, ist unschön in der Handhabung - bringt nur Zeitverzögerungen. edit: Und doch verwirrend - unter der Grafik steht: "Figure 41. DRDY with Data Retrieval (CS = 0)" somit doch mit CS. Ich werde es nun mal so hinnehmen und das beste drauß machen... danke Wolfgang.
:
Bearbeitet durch User
Adam P. schrieb: > Und doch verwirrend - unter der Grafik steht: > "Figure 41. DRDY with Data Retrieval (CS = 0)" > > somit doch mit CS. Ist doch alles gut. Halte mal Wandler und SPI auseinander. Ohne CS wird aus DOUT nichts raus kommen. Und ohne DRDY hat der Wandler nichts (gültiges?), was mit der steigende Flanke von SCLK für die SPI-Ausgabe ins Latch übernommen werden könnte.
Adam P. schrieb: > Egal welchen Chip ich nun abfrage, die beiden anderen Chips setzen > ebenfalls ihr DRDY Signal auf high. So als hätte der CS dabei gar keine > Bedeutung. Schau Dir doch mal Figure 36 im ADS1299 Datenblatt an. Der nDRDY geht beim Samplen kurz hoch, damit neue Daten per fallender Flanke signalisiert werden können. Da passiert auch ganz ohne jedes Lesen der Daten.
Jim M. schrieb: > Da passiert auch ganz ohne jedes Lesen der > Daten. Ja das stimmt und funktioniert auch so, wenn ich nicht lesen. ABER: Angenommen, dieser Impuls kommt alle 10ms und das Sampling würde 3ms dauern, dann sieht es wie folgt aus wenn ich doch lese: 0ms: Impuls ... 5ms: lese Chip#1 (ALLE Chips ziehen DRDY nach high) 6ms: alle high 7ms: alle high 8ms: DRDY wechsel zu low (aller Chips) 8/9ms: alle wieder low und ich kann nun erst Chip#2 lesen, da dieser durch das lesen von Chip#1 ebenfalls neu zu sampeln begonnen hat. -> Wie auf meinem Screenshot zu sehen.
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.