PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADS7844 Daten auselsen?



largefeet
12.12.2005, 10:56
Hallo Leute,

ich hab da so n problem, ich brauch bei meiner joystick
ansteuerung (HFX- Joysticks) einen A/D wandler (AD7844).
Jetzt hab ich aba keine ahnung wie ich nun die Daten von
diesem Wandler in meinen uC einlesen kann

hat jemad von euch shcon erfahrungen mit diesem AD-Wandler? :-s


greez Largefeet

Ratber
12.12.2005, 11:12
Der AD7844 ist mir unbekannt und ich finde im Web auch nix darüber.

Haste mal nen Datenblatt ?


Oder meintest du "ADS7844" ?

largefeet
13.12.2005, 07:42
oops, ja, hab das "S" vergessen :S sorry...

Ratber
13.12.2005, 11:32
Prima.

Ich hab mit diesem Modell auch keine Erfahung aber wir können das ja mal zusammen durchkauen.

Im Anhang mal ein Datenblatt was ich gefunden habe.
Damit haben wir ne gemeinsame Basis.
Sorry dafür das es gepackt ist aber hier sind nur Anhänge bis 400K erlaubt und das Dokument war dummerweise genau 1K zu groß ](*,)

Wie du deinen Joystick an die AD-Eingänge schaltest und welche Referenzspannung angelegt wird weißte vermutlich.
Spannungsversorgung dürfte auch klar sein.

Gehen wir zu den übriggebliebenen Pinnen.

SHDN:

Wenn de den auf Low ziehst dann stellt der Wandler den Betrieb ein und fährt in den Stromsparmodus.
Ist interessant für Batteriebetriebene Geräte.


BUSY:

Darüber Teilt der ADC mit das er gerade Beschäftigt ist und damit nicht reagieren wird.


CS:

Mit dem Chip Select Eingang wird der ADC ausgewählt.
Dh. du kannst mehrere dieser Chips Parallel an die ´Datenleitungen hängen und wählst den den du haben willst über diese Leitung aus.


DIN/DOUT/CLK:

Über Data-IN und Data-OUT wird die komplette Komunikation abgewickelt und an CLK liegt der Takt für die Serielle Komunikation.

Dh. der Chip kann zb. über das SPI-Interface des Controllers (SCK,MOSI,MISO und eine Selectleitung) angesprochen werden.

Einen entzsprechenden Anschlusshinweis gibt es in Figure 1 auf Seite 9.

Bevor ich zum Protokoll komme möchte ich gerne wissen ob du soweit folgen kannst oder ob es da noch Probleme gibt.

largefeet
13.12.2005, 14:18
ok, bis hier hab ich alles verstanden :-)

Ratber
13.12.2005, 16:14
Gut,dann ist der Rest schon ein Kinderspiel.

Das Datenformat ist recht simpel wie bei fast allen einfachen Seriellen Geschichten.


Schau mal auf Seite 11,da sind alle bötigen Informationen zusammengezogen.
In Table III ist das Kommandobyte beschrieben.
Startbit (7),Drei Adressbits (6,5,4),dann das nicht genutzte Bit (Bit 3).
Dann entscheidet Bit 2 über Einfach (Eingang gegen Masse) oder Differenzialmessung (Zwei Eingänge gegeneinender).
Dazu sind auf Seite 9 in Table I und II sowie auf Seite 10 Figure 2 zu beachten die erklären wie gemessen wird.
Anschließen wird noch mit den Bits 1 und 0 der Powerdownmodus festgelegt was in Tabelle IV aud Seite 12 erläutert ist.
Hier wird aber nur Entschieden ob der Wandler immer voll da ist oder ob er zwischen den Wandlungen schlafen geht.

Das war es schon zum Kommandobyte.
Das dürfte recht eingängig sein.
Wenn du nun auf Seite 11 auf Figure 3 und 4 sowie auf Seite 122 auf Figure 6 schaust dann hast du die Datendiagramme der einzelnen Möglichehcn Wandlungen vorliegen.

Damit das jetzt nicht zu kompliziert wird beschränken wir uns auf Figure 3 also der 24 Bit Übertragung.

Das liest sich eigentlich recht einfach.
Zuerst zieht der Controller die CS-Leitung auf Low und wählt damit den Chip an (CS=Chip Select)
Ist das der Einzige Chip den du an den Datenleitungen hast dann kannste den Anschluss auch permanennt auf Masse ziehen und so einen Port sparen.
Danach sendet er das Kommandobyte getaktet (CS,Dclock,DIN werden vom Controller gesteuert,die anderen beiden vom Wandler).
Den empfang eines kompletten kommandobytes bestätigt der Wandler mit einem Highpegel auf der Busy-Leitung dier er High hält solange er Busy=Beschäftigt ist die Wandlung vorzunehmen.
Das Busysignal wir vom Controller erkannt und seinerseits mit "einem" Takt bestätigt (Wandler und Controller sind eben höfliche Chips).
Wenn die Wandlung fertig ist geht die Busy-Leitung wieder auf Low und der Wandler ist bereit zum Senden.
Sobald der Controller nun Taktet fängt der Wandler an die entsprechenden Daten auf der Leitung "DOUT" zu senden.
Da wir einen 12Bit Wandler habenb sind das ebenfalls 12 Bit die übertragen werden (aWAt nen Zufall ne?)

Sind alle Bits übertragen dann kann der Controller die Taktleitung fröhlich weitertakten aber es passiert nix weiter bis er wieder ein Kommando schickt.

Wenn du das bis jetzt Geschluck,verdaut und auch verstanden hast dann sind die Methoden in Figure 4 und 6 kein Akt mehr.
Nur kurz dazu:
Man kann schon das nächste Kommandobyte schicken wärend die Ausgabe noch läuft um so mehr Conversionen pr Zeit zu bekommen.
Dabei muß darauf geachtet werden das die nötigen Zyklen eingehalten werden.
Schicke ich Zwei Kommandos unmittelbar hintereinander dann geht eine Konversion ganz oder Teilweise flöten.
Erklärungsversuch:
Spiel mal Ein Stück mit Winamp.
Drückste nach dem Start gleich nochmal auf Play dann bricht er ab und startet das Stück sofort neu.
Dh. ein Datenstrom wurde abgebrochen.
Beim AD-Wandler wäre das ein Unvolständiger Datensatz da du nur die Höherwertigen Bits
(MSB) bekommst.
Andererseits kann man diesen Umstand für Spezielle Aufgaben auch ausnutzen aber schieb das mal nach hinten bis du es komplett verstanden hast.



Ja,das wars dann eigentlich schon.

Ich hab zwar ne Menge Worte geschrieben aber wenn du dir das Datenblatt einigemale an den Stellen durchliest dann wird irgendwann der Groschen fallen das das lächerlich einfach ist.

Alles andere wie Timings kannst du dann anhand der eingezeichneten Beschriftungen aus den Tabellen und den Elektrischen Eigenschaften holen.


Lies dir das erstmal durch und sag bescheidt obs was genutzt hat.

largefeet
20.12.2005, 15:10
ok, deine beschreibung hat mich wirklich weitergebracht :DDDD
danke dir viel mals :)

grüsse Tom

Ratber
20.12.2005, 15:20
Yo,Kein Problem