Forum: Compiler & IDEs auslesen des ADC - MAX127


von MAX127 (Gast)


Angehängte Dateien:

Lesenswert?

Erst einmal ein frohes Fest.

Ich habe einen ATmega8 mit 16Mhz und möchte einen MAX127 (ADC) auslesen. 
Dieser wird mit I2C angesteuert. Als Pullp habe ich die internen des 
ATmega aktiviert. Die TWI Bibliothek, welche ich verwende, habe ich 
schon mehrfach bei anderen Projekten eingesetzt und da hat immer alles 
einwandfrei funktioniert. Das Problem diesmal ist, das ich zwar Daten an 
den MAX127 senden kann und auch jedes mal ein ACK erhalte, aber ich 
keine Datene auslesen kann. Also die START-Condition geht noch und beim 
auslesen geht der ATmega dann ins timeout.

Die Beschaltung habe ich aus dem Datenblatt Seite 1 entnommen. Da der 
MAX127 2xVdd besitzt war ich ein wenig irretiert, habe aber nur eines 
auf +5V gelegt.

Danke schon mal im voraus
Das Projekt und das Datenblatt hänge ich an den Beitrag an.

von MAX127 (Gast)


Lesenswert?

keiner ne Idee oder macht ihr Feiertage ;)

von Bernhard R. (barnyhh)


Lesenswert?

1. Die beiden VDDs sollte man miteinander verbinden.
2. SDA und SCL verdienen vernünftige Abschlußwiderstände nach VDD (1,7 k 
... 4,7 k). Die AVR-internen Pull-Ups sind ausschließlich dann sinnvoll, 
wenn unbenutzte Eingänge des AVR auf ein definiertes Potential gelegt 
werden sollen.

Sind Abblockkondensatoren u.ä. sinnvoll angeordnet?
Passen die Wartezeiten zwischen Anstoßen einer AD-Konversion und Abholen 
des Ergebnisses?

Bernhard

von MAX127 (Gast)


Lesenswert?

Die Ablockkondensatoren sind natürlich direkt am ADC angeordnet. Die 
beiden Vdd werd ich auch noch mal verbinden, wobei ich meine das schon 
probiert zu haben. Mit der Wartezeit ist das so eine Sache. Laut 
Datenblatt ist die conversion time max. 10µs. Da ich in der TWI_read_ack 
bzw. TWI_read_nack ja den timeout von 250ms drin habe, sollte das schon 
passen. Das Schreiben des Konfigurationsregisters klappt ja auch. 
Deswegen scheint die Kommunikation grundsätzlich zu funktionieren. Aber 
ich werd auch mal richtige Pullups probieren.

von MAX127 (Gast)


Lesenswert?

Ich habs gerade ausprobiert, auch mit richtigen Pullups bekomme ich beim 
Auslesen ein timeout.

von MAX127 (Gast)


Lesenswert?

noch jemand eine Idee?

von MAX127 (Gast)


Lesenswert?

Ich habe meine TWI Bibliothek jetzt noch um die Statuscodes erweitert. 
Das Problem ist anscheinend, dass ich beim zweiten TWI_Start zum Lesen 
des ADC Wertes eine 0x48 (TWI_MasterRX_ADR_NACK) zurück erhalte. Es 
sollte aber eigentlich eine 0x40 (TWI_MasterRX_ADR_ACK) sein.

von Bernhard R. (barnyhh)


Lesenswert?

Das tun viele TWI-Slaves:
Wenn sie intern beschäftigt sind, liefern sie auf ihre Adresse "NACK" 
zurück.

Lösung: Auf dem NACK loopen, bis die interne Operation abgeschlossen ist 
und das Device wieder antwortet.

Bernhard

von 6300 (Gast)


Lesenswert?

Wenn ich das mache, bleibe ich in einer Endlosschleife hängen, da 
ständig die 0x48 zurückkommt.

von I. E. (anfaenger69)


Lesenswert?

Ich vermute du wartest vergeblich auf das ACK, weil beim TWIRead eine 
andere Zieladresse existiert als beim TWIwrite:

        .
        .
        .
  uint8_t tmp=0;

  error=TWI_start(>>>>>>>>>0b0101000<<<<<<<<<<<,TWIwrite);

        .
        .
        .
        .
        .
        .

        {error=TWI_start(>>>>>>>>>0b1001000<<<<<<<<<<<,TWIread);}

  if (error!=true) {error=TWI_read_ack(&vor);}
        .
        .
        .

Der MAX127 reagiert nur auf die Adresse 0b0101xxx

von MAX127 (Gast)


Lesenswert?

verdamte Sch....
und daran hab ich nun 4 Tage gesessen ;)

von roboter (Gast)


Lesenswert?

hmmm..., ich möchte mir auch den Max127 anschaffen von Reichelt:
http://such001.reichelt.de/?SID=11TV-mA38AAAIAAGleGrYb12e160e05d626dc32664c76d1dc43d2;ACTION=444

Ist der das da oben für ca 23 Euro?

Der wird aber an SCK , MOSI, MISO angeschlossen.

Gruss

von roboter (Gast)


Lesenswert?

hmmm, gebt bitte mal ein bei Reichelt : Max127

Irgendwie funktionier mein Link nicht dorthin.

Gruss

von Remote O. (remote1)


Lesenswert?

Max127 und Max1270 ist schon ein Unterschied.

Max127: I2C und 8ksps
Max1270: SPI und 110ksps (daher auch die 23€)

Der Rest ist beim groben Überfliegen des DB gleich

von roboter (Gast)


Lesenswert?

Wo kann man eigentlich den Max127 kaufen?

Finde keine deutschen Händler.
Wer kennt eine deutsche Adresse für das teil?

Gruss

von Max127 (Gast)


Lesenswert?

Nimm doch erst einmal ein sample von Maxim direkt.

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
Noch kein Account? Hier anmelden.