ADS8344 und HCS12

May 10, 2006 6 Replies

(WIE?) Kann ich den A/D-Wandler ADS8344 (16-bit-Ausgang) an das SPI-Modul des MC9S12C32 (ChipS12 / HCS12) anbringen?



Es widerspricht meinem Logikverst=E4ndnis, da=DF ein 16-bit langes Signal von einem 8-bit SPI-Modul verstanden (geschweige denn akzeptiert) werden kann, aber vielleicht gibts da einen Trick oder ich habe etwas falsch verstanden? Schlie=DFlich ist dieser =B5C ja ein sogenannter 16-bit-Controller.... ?!



Ich bin f=FCr jede konstruktive Anregung dankbar!!



Die Datenubertragung des ADS8344 braucht 24/25/32 Taktwechsel. Mit 4 * 8 bits kannst Du die 32 Taktwechsel erzeugen...

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Du musst

1) Zwei Mal 8bit lesen (=16 Bit) 2) Oder wie Uwe sagt vier Mal 3) Dir einen Namen kaufen

Gruss

Claudius

Erstmal vielen Dank f=FCr die schnelle Antwort.

Leider verstehe ich sie aber nicht, habe bisher noch nie mit SPI gearbeitet, deshalb denke ich jetzt einfach mal laut und Du schreist STOP wenn was daneben geht, ja?

Nun bekommt mein ADS8344 =FCber den Din-Kanal beispielsweise gesagt, da=DF er die Spannung an Kanal x aufnehmen und umwandeln soll. Das tut er nat=FCrlich auch ganz brav und sobald die Konversion abgeschlossen ist, schickt er den abgelesenen Spannungswert umgewandelt in 16 bit (auf dem Kanal Dout) los. Das Register meines =B5C verkraftet aber nur 8 bit und platzt also nach der H=E4lfte der =DCbertragung aus allen N=E4hten.

Ich mu=DF dem =B5C doch eigentlich nach 8 bit sagen: "jetzt verdau das erstmal und dann reden wir weiter", oder?

Oder hei=DFt Dein 4*8=3D32, da=DF ich insgesamt vier Durchg=E4nge =E0 8 bit verschicke? Wie w=FCrde ich das nun wiederum meinem ADS8344 sagen?

Wo denke ich falsch?

DANKE im Voraus!

Oki, aber wie mache ich das denn? Wie sag ich meinem =B5C da=DF er nach 8 Bit eine Pause machen und danach erst weiteressen soll?

  • snipped-for-privacy@myums.de [2006-05-10 15:16]:

Lies dir das Datenblatt deines Controllers oder einen beliebigen Text über SPI durch. Der Controller arbeitet als Master und gibt den Takt vor. Kein Takt, kein Bit. Buffer voll, kein Takt.

Pseudocode fuer z.B. fuer einen AVR

SPI Parameter setzten

  1. Bit zum Uebertragen an den ADS8344 an SPI uebergeben(die ersten acht bit aus dem Datenblatt des ADS8344)
  2. zuruckgelesene Byte verwerfen
  3. Byte uebertragen (kann 0 sein)
  4. zuruckgelesene Byte enthaelt die hoechstwertigen 7 Bit
  5. Byte uebertragen(kann 0 sein)
  6. zuruckgelesene Byte enthaelt die Bits 9-1
  7. Byte uebertragen(kann 0 sein) Oberstes Bit des 43. zuruckgelesene Byte ist LSB des ADC Datum

Bye

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required