Raspberry Pi B+ und ADE7758 für Energiemessung (SPI-Kommunikation)

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich war in diesem Forum bisher eher Zaungast, konnte dadurch aber schon einiges lernen. Weiter bin ich RPi-technisch ein blutiger Anfänger und hoffe ihr zerreißt mich für das was jetzt folgt nicht direkt in der Luft... ;)

    Das Ziel meines Projekts ist ein Messgerät für 3-Phasen-Wechselstromnetze. Für die Messung habe ich den ADE7758 ausgewählt. Ein Raspberry Pi B+ soll ausgewählte Daten vom ADE7758 per SPI übernehmen und speichern. Da der RPi über SPI nur bis 3,3 V verträgt, der ADE7758 aber auf 5 V operiert, habe ich einen ADUM1401 als "Dolmetscher" eingesetzt.

    Den aktuellen Stand könnt ihr den angehängten Bildern entnehmen. Der Schaltplan zeigt die Schaltung für die Spannungsversorgung des ADE7758 und des ADUM1401 (die 5V bzw. 3,3V kommen vom GPIO des RPi), sowie die Anbindung des ADE7758 über den ADUM1401 an den RPi mittels SPI-Bus. Außerdem habe ich ein Foto des aktuellen Aufbaus auf einem Breadboard angehängt.

    Ich habe die im Datenblatt geforderten Spannungen am ADE7758 und am ADUM1401. Nun wollte ich die Kommunikation über SPI testen und komme hiermit leider nicht weiter. Mit dem folgenden Python-Programm möchte ich eins der Register des ADE7758 auslesen:

    Laut Datenblatt sollte das gesendete Byte mit einer "0" für "Lesen" beginnen, gefolgt von der Adresse des Registers, welches gelesen werden soll. In meinem Fall wäre dies das Register "OPMODE" (0x13) mit einem Default-Wert (lt. Datenblatt) von 4. Allerdings bekomme ich nur den Wert "0" zurückgegeben und stecke nun bei der Fehlersuche fest.

    Am Code habe ich bereits einiges herumgespielt - ohne Erfolg.

    Außerdem habe ich MOSI und MISO hinter dem ADUM1401 kurzgeschlossen und empfange dann die gesendeten Werte korrekt zurück, was mich annehmen lässt, dass bis zum ADE7758 alles so funktioniert wie gedacht.

    Wie gesagt: Der ADE7758 bekommt die im Datenblatt geforderte Spannung und zieht auch den richtigen Strom. Da ich stark an meinen Lötfähigkeiten zweifel, habe ich Durchgangsmessungen mit dem Multimeter ausgeführt - jeweils zwischen den IC-Beinchen des ADUM1401 und des ADE7758, über welche der SPI-Bus läuft. Auch hier schein alles zu stimmen.

    Hat jemand einen Ansatz, was hier falsch laufen könnte?

    Ich bin über jeden konstruktiven Input dankbar.

    Viele Grüße
    Mathias

  • Raspberry Pi B+ und ADE7758 für Energiemessung (SPI-Kommunikation)? Schau mal ob du hier fündig wirst!

  • Was ist mit dem Widerstand ganz unten auf dem Bild?
    Auf dem Bild sieht es so aus als wäre er im falschen Loch. (Kann mich natürlich täuschen)

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

  • Hi petit_miner,

    die Widerstände dienen nur als zusätzliche Last für den jeweiligen DC/DC-Wandler. ADE7758 und ADUM1401 benötigen so wenig Strom, dass die Wandler ohne die zusätzliche Last eine zu hohe Spannung liefern würden. Der untere Widerstand ist schon im richtigen Loch, da täuscht der Schatten im Bild etwas.

    Trotzdem vielen Dank! :thumbs1:

    Gruß
    Mathias

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!