max6620 am arduino i2c

Hallo zusammen,

ich möchte einen max6620 über den ic2 bus mit einem Arduino verbinden. Den IC habe ich über eine Firma auf einem Breakout Board löten lassen, so dass ich mit ihm testen kann. Leider bekomme ich die Kommunikation nicht hin.

Mach dem Datenplatt habe ich Pin 1 mit SCL und Pin 2 mit SDA des Arduino verbunden. Pin 27 ist am V5 und GND and GND. Alle anderen Pins habe ich aktuell nicht verbunden, somit ist die Adresse 0x52. Leider scheint der Controller nicht zu antworten. Zum test habe ich eine RTC ebenfalls angeschlossen (an den selben bus, diese reagiert adequat.

In der Konsole wird die Schleife für das auslesen der Antwort erst garnicht gestartet, daher gehe ich davon aus, keine Antwort kommt.

Ich habe es insgesamt mit 2 Controllen probiert immer das gleiche ergebniss. Daher meine Frage ob ich einen Denkfehler im Programm habe und die Kontrolle adequat reagieren…

Danke schon mal für alle Tipps und Ideen.

Steve

#include <Wire.h>

#define max6620 0x52
#define rtclock 0x68
int counter =0;

void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop()
{
  Wire.beginTransmission(max6620);
  Wire.write(0);
  Wire.endTransmission();
  
  Wire.requestFrom(max6620, 8);    // request 6 bytes from slave device #2
  Serial.println("New Try:");
  
counter = 0;
  while (Wire.available())   // slave may send less than requested
  {
    char c = Wire.read(); // receive a byte as character
    counter++;
    Serial.print("Counter: ");
    Serial.println(counter);         // print the character
  }

  delay(1000);
  Serial.println("------");
  Serial.println("");
}

MAX6620.pdf (276 KB)

Lade dir mal den I2C Scanner auf den Arduino dann kannst du sehen ob der IC auf irgendeine adresse Antwortet I2cScanner Evtl beim Auflöten gegrillt oder doch versehntlich Adressbytes irgendwie auf Potential gezogen. Gruß DerDani

In der Konsole wird die Schleife für das auslesen der Antwort erst garnicht gestartet, daher gehe ich davon aus, keine Antwort kommt.

Meine Glaskugel sagt: (Fast) Falsch! Der Bus kommt gar nicht in den "Frei" Zustand. Also geht noch nicht mal die Anfrage raus.

Höchstvermutlich: Die Pullups vergessen.

Brauche ich denn pullups bei einer direkten verbindung? Dachte die bräuchte ich da nicht?

Scanner wird ausprobiert danke

Chaos_Lord: Brauche ich denn pullups bei einer direkten verbindung? Dachte die bräuchte ich da nicht?

I2C ohne Pullups? Nein! Definitiv unmöglich.

So pullups mit jeweils 4,7K eingebaut, selbes ergebniss, eben so wenn ich den scanner laufen lasse, kommt kein Device :(

Wie gesagt die Breakoutboards sind iinklusive des ICs bestückt worden sprich nicht selber, daher wäre es unwahrscheinlich das beide defekt wären... Ok nichts ist unmöglich.....