Forum: Mikrocontroller und Digitale Elektronik ADUM1401 - SPI-Problem (SCLK auf MISO)


von Mathias S. (mths)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein Problem mit dem ADUM1401. Der Baustein soll dazu verwendet 
werden, den SPI-Bus zwischen einem ADE7758 und einem Raspberry Pi 
galvanisch zu trennen und die Pegel der beiden Komponenten (3,3V beim 
RPi / 5V beim ADE7758) anzupassen.

Aktuell teste ich das Ganze noch ohne den ADE7758. Ich habe ein kleines 
Python-Programm geschrieben, das ein Byte (0x13) versendet und mir die 
Aktivität meiner SPI-Pins am Raspberry mit PiScope visualisieren lassen. 
Wie ihr im Anhang seht, machen CE, SCLK und MOSI das was sie sollen. Was 
ich allerdings nicht verstehe ist das MISO-Signal, welches scheinbar dem 
SCLK Signal entspricht. Meiner Meinung nach dürfte ich auf MISO in 
diesem Zustand gar nichts empfangen. Die Beschaltung des ADUM1401 mit 
dem SPI-Bus findet ihr im Anhang (wie gesagt: der linke Teil, die 
Verbindung zum ADE7758 existiert aktuell noch nicht). Weiter findet ihr 
ein Bild des aktuellen Aufbaus im Anhang. Ich habe bereits geprüft ob 
SCLK und MISO irgendwo verbunden sind, konnte aber nichts finden.

Kann sich dieses Verhalten jemand erklären und würde mir weiterhelfen?

Viele Grüße
Mathias

von mr (Gast)


Lesenswert?

Häng mal an den offenen MISO einen Pullup- oder Pulldown-Widerstand, 
oder hat der ADUM1401 welche an den Eingaängen integriert?
Ein unbeschalteter Eingang kann sich ja alle möglichen Signale 
Einfangen.

von Mathias S. (mths)


Lesenswert?

Hi,

ich finde im Datenblatt des ADUM1401 nichts zu Pull-Up /-Down 
Widerständen, lediglich die Aussage "The ADuM140x digital isolator 
requires no external interface circuitry for the logic interfaces".

Wenn ich MOSI und MISO hinter dem ADUM1401 kurzschließe bekomme ich das 
gesendete Signal korrekt zurück. Das lässt mich annehmen, dass die 
Schaltung prinzipiell funktioniert, also 3V3-Signal in 5V-Signal wandeln 
und das Ganze umgekehrt. Warum ich im unbeschaltenen Zustand aber exakt 
die SCLK-Signale auf MISO zurück bekomme ist mir ein Rätsel!? :/

VG
Mathias

von Wolfgang (Gast)


Lesenswert?

Mathias S. schrieb:
> lediglich die Aussage "The ADuM140x digital isolator
> requires no external interface circuitry for the logic interfaces".

Dann ist vielleicht der Umkehrschluss zulässig, dass der ADuM bei 
offenem Eingang, d.h. wenn kein Logiksignal anliegt, macht was er will.

von Mathias S. (mths)


Lesenswert?

Wolfgang schrieb:
> Dann ist vielleicht der Umkehrschluss zulässig, dass der ADuM bei
> offenem Eingang, d.h. wenn kein Logiksignal anliegt, macht was er will.

Mysteriös, aber es scheint tatsächlich so zu sein. Ich habe eben MISO 
auf Masse (0) und auf 5V (1) gezogen und empfange am Raspberry die 
entsprechenden Logiksignale.

Mal sehen wie sich das Ganze gestaltet, wenn ich den ADE7758 in die 
Schaltung integriere... :/

VG
Mathias

von Mike A. (Gast)


Lesenswert?

Mathias S. schrieb:
> Warum ich im unbeschaltenen Zustand aber exakt
> die SCLK-Signale auf MISO zurück bekomme ist mir ein Rätsel!? :/

Wahrscheinlich, weil es von allen verfügbaren Signalen am stärksten 
einstreut.

von Mathias S. (mths)


Lesenswert?

Ich habe jetzt mal den ADE7758 in die Schaltung eingebaut und mir den 
SPI-Bus mit PiScope darstellen lassen. Das Resultat sieht genauso aus 
wie in meinem Eröffnungspost: MISO entspricht SCLK und ich bekomme eine 
"0" zurückgemeldet (wobei das Register das ich anspreche einen Wert von 
4 haben sollte).

Ich hab dann die Clock-Frequenz von 10kHz auf 1MHz erhöht. Jetzt krieg 
ich zwar keine 0 mehr zurück, aber auch nicht die erwartete 4 sondern 
reichlich Datenmüll. Mit PiScope kann ich Transfer mit solchen 
Frequenzen nicht mehr visualisieren.

Ich denke das Beste wird sein, sich mit einem Oszi anzusehen was während 
des Transfers passiert, oder habt ihr noch andere Ansätze?

Viele Grüße
Mathias

von uwe (Gast)


Lesenswert?

Hast du auch schön Master MOSI mit slave MOSI verbunden und Master MISO 
mit slave MISO. Es ist flasch master MOSI mit slave MISO zu verbinden 
und master MISO mit slave MOSI. Wenn du das getan hast wäre ein 
hochohmiger input mit einem hochohmigen input verbunden, also als wäre 
nichts angeschlossen. Und das würde ja den Fehler erklären.

von Mathias S. (mths)


Angehängte Dateien:

Lesenswert?

Hallo Uwe,

der ADE7758 (Slave) hat kein MISO/MOSI, sondern ein DOUT(Data Out) und 
ein DIN(Data In). Meine Verbindung sieht aus wie folgt:

DOUT(ADE7758)-->Input D(ADUM1401)-->Output D(ADUM1401)-->MISO(Raspberry 
Pi)

DIN(ADE7758)<--Output B(ADUM1401)<--Input B(ADUM1401)<--MOSI(Raspberry 
Pi)

SCLK(ADE7758)<--Output C(ADUM1401)<--Input C(ADUM1401)<--SCLK(Raspberry 
Pi)

CS(ADE7758)<--Output A(ADUM1401)<--Input A(ADUM1401)<--CE(Raspberry Pi)

Ich dachte eigentlich nicht, dass ich hier einen Fehler gemacht habe, 
oder seh ich das falsch?! :/

Weiter hatte ich kurzfristig die Möglichkeit ein Oszi zu nutzen. Aus 
Zeitgründen habe ich es heute nur geschafft zwischen ADE7758 und 
ADUM1401 zu messen. Das Ergebnis seht ihr im Anhang (D4=CS, D3=DIN, 
D2=SCLK, D1=DOUT). Den Schwellenwert für eine logische 1 habe ich, wie 
im Datenblatt des ADE7758 gefordet) für die Inputs (CS, DIN, SCLK) auf 
2,4V und für den Output (DOUT) auf 4V eingestellt. DOUT gibt also keinen 
Ton von sich.

Viele Grüße
Mathias

von Sebastian W. (wangnick)


Lesenswert?

Mathias S. schrieb:
> DOUT gibt also keinen Ton von sich.

"Data is shifted into the ADE7758 at the DIN logic input
on the falling edge of SCLK. Data is shifted out of the ADE7758
at the DOUT logic output on a rising edge of SCLK."

Dein RasPi setzt MOSI auf fallender SCLK-Flanke. Das ist anscheinend der 
falsche SPI-Modus, MOSI sollte für den ADE7758 auf steigender 
SCLK-Flanke gesetzt werden, um dann vom ADE7758 auf fallender 
SCLK-Flanke gelesen zu werden.

Du liest also eventuell nicht Register 0x13, sondern irgendein anderes 
0b00xx0x1x, das eventuell default 0 ist.

Überprüfe diese Vermutung doch mal mit einem Pullup von DOUT zu VDD2.

HTH.

LG, Sebastian

: Bearbeitet durch User
von Mathias S. (mths)


Lesenswert?

Hi Sebastian,

vielen Dank! Das werde ich morgen gleich mal checken.

Viele Grüße
Mathias

von Mathias S. (mths)


Lesenswert?

Hallo zusammen,

nach Sebastians Anmerkung habe ich jetzt den SPI-Modus 1 (CPOL=0, 
CPHA=1) in mein Testprogramm übernommen. Der ADE7758 bekommt jedes Bit 
an DIN jetzt wie im Datenblatt gefordert (mit der fallenden Flanke von 
SCLK). Leider bekomme ich trotzdem nicht die gewünschte Antwort, sondern 
es wird mir 255 zurückgemeldet. Eine Analyse mit PiScope zeigt mir noch 
immer ein Abbild der Logik von SCLK auf MISO. Ich habe schon geprüft, ob 
es irgendwo einen Kurzschluss zwischen den beiden Leitungen gibt und ich 
konnte keinen erkennen bzw. messen. Ist für dieses Verhalten noch eine 
andere naheliegende Ursache, auf die ich nicht von selbst komme, 
denkbar?

Werde nächste Woche noch mal das Oszi bemühen und sowohl zwischen RPi 
und ADUM als auch zwischen ADUM und ADE messen. Vielleicht gelingt es 
mir dann endlich mein SPI-Problem zu lösen. Ist mein "erstes Mal" und 
ich hab mir das echt nicht so schwer vorgestellt! ;)

Viele Grüße und ein schönes Wochenende
Mathias

von Mathias S. (mths)



Lesenswert?

Hallo zusammen,

ich bin langsam am verzweifeln mit der Geschichte... :/

Habe heute wieder einen Tag am Oszi verbracht und wie angekündigt 
zwischen ADE und ADUM als auch zwischen ADUM und RPi gemessen. Bei der 
Messung zwischen ADE und ADUM das gleiche Bild wie beim letzten Mal 
(siehe mein Beitrag vom 05.03.2015). Dann hab ich mir das Datenblatt des 
ADUM nochmal näher angesehen und bemerkt, dass der Schwellenwert für 
eine logische 1 beim Input bei 1,6 V liegt. Also hab ich den 
Schwellenwert des Oszis für den Datenausgang des ADE (DOUT) auf 1,6 V 
runtergeschraubt. Wie ihr im Anhang seht, habe ich auf DOUT 1,6 V 
Signale die beim genaueren Hinsehen den Flanken von SCLK sehr ähnlich 
sehen. Die Messung zwischen ADUM und RPi zeigt mir entsprechend ein 
Abbild des SCLK-Signals auf MISO. Wenn ich das richtig deute, macht der 
ADUM seine Aufgabe also ordentlich.

Was mache ich falsch, dass diese 1,6 V Pegel auf DOUT kommen? Kann ich 
auf einen Defekt des ADE7758 schließen, da von diesem ja anscheinend 
kein Signal ausgegeben wird?

Ich hab den Aufbau auf dem Breadboard bereits variiert, wodurch ich das 
Problem leider nicht beheben konnte... :/

Ich würde mich freuen, wenn mir jemand helfen könnte.

Viele Grüße
Mathias

Zu den Bildern:
D1: DOUT
D2: SCLK
D3: DIN
D4: CS

von Mathias S. (mths)


Angehängte Dateien:

Lesenswert?

Hier noch ein Bild meines aktuellen Aufbaus. Möglicherweise hilft das 
dabei, die Ursache meines Problems zu identifizieren.


Der SPI-Bus vom RPi zum ADE7758:

blaues Kabel: MISO (RPi) << OUT-D (ADUM1401) << IN-D (ADUM1401) << DOUT 
(ADE7758)

gelbes Kabel: SCLK (RPi) >> IN-C (ADUM1401) >> OUT-C (ADUM1401) >> SCLK 
(ADE7758)

lila Kabel: MOSI (RPi) >> IN-B (ADUM1401) >> OUT-B (ADUM1401) >> DIN 
(ADE7758)

graues Kabel: CE (RPi) >> IN-A (ADUM1401) >> OUT-A (ADUM1401) >> CS 
(ADE7758)

Kabellänge (insgesamt): 30 cm


Spannungsversorgung:

gelbe Kabel: +3,3 V
orange Kabel: +5 V
grüne Kabel: jeweils Ground

Viele Grüße
Mathias

von temp (Gast)


Lesenswert?

Ich tippe mal darauf, dass der ADE7758 den DOUT erst dann vom tristate 
in den aktiven Modus schaltet, wenn er was senden will. Sicher nur als 
Antwort auf deinen Input, und den versteht er wohl nicht. Solange DOUT 
aber im Tristate ist, fängts du dir da alles mögliche ein. Leg doch mal 
wie weiter oben beschreiben ein R (1k?) von DOUT gegen Masse. Wenn es 
dann weg ist, solltest du dich nochmal mit dem Datenblatt des ADE7785 
beschäftigen.

von Pandur S. (jetztnicht)


Lesenswert?

Der Schemazeichner war nicht wirklich begabt ... irgendwie kommt beim 
1401er Symbol nicht heraus, dass drei Kanaele in einer Richtung und der 
Vierte in anderer Richtung geht. Ein moegliche Quelle von Problemen, die 
teuer werden koennen.

Ich wuerd nun mal den ADE7758 an 5V haengen und den ADUM1401 durch 
Bruecken ersetzen.

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Die versendete Nachricht waere auch noch interessant. Ich denke aus dem 
ADE kommt nur was raus, wenn da was raus kommen soll. Irgendwas 
reinzulassen bringt nichts.

Die Datenblaetter von Analog Devices haben den Anspruch, dass teilwese 
jedes einzelne Wort wichtig ist und verstanden werden muss. Die 
Registerliste umfasst nur 0x50 register ... und davon musst du 
schliesslich jedes Einzelne verstanden haben.
Es scheint noch ein weiter Weg zu sein.

Ich wuerd mir uebrigens die galvanische Trennung sparen, sie ist nicht 
noetig, siehe Seite 17

: Bearbeitet durch User
von temp (Gast)


Lesenswert?

Was soll das bringen wenn die Signale die zum ADE7758 gehen richtig 
aussehen und DOUT (relativ) hochohmig ist?
Hast du mal die ganze restliche Beschaltung des ADE7758 untersucht? Sind 
alle Spannungen, AGND, DGND wirklich richtig angeschlossen? Was hat er 
allein für eine Stromaufnahme? Hast du einen Quarz dran und 2 Cs oder 
einen exteren Takt? Wenn Quarz, schwingt der auch?
Bis dahin können wir nur im Kaffeesatz lesen.

Noch eine andere Frage: Was möchtest du mit dem ADE7758 realisieren und 
hast du die nötigen Messmittel um das Teil zu kalibrieren? Ich hatte so 
was auch mal vor, da es aber fertige Geräte für ca. 90€ gibt, war es mir 
den Zeitaufwand nicht wert.

von Sebastian W. (wangnick)


Lesenswert?

Hallo Mathias,

es scheint ja dass der ADE gar nicht antwortet. Dann bleibt der 
(tri-state) DOUT auf Z. Der ADUM kann aber kein tri-state, und macht 
dann daraus am Output D entweder Low oder High, je nach Einkoppelung von 
Energie aus der Umgebung an Input D.

Was passiert, wenn du DOUT per 10k-Pullup mit VDD2 verbindest?

Was passiert, wenn du DOUT per 10k-Pullup mit GND2 verbindest?

Und noch eins: Ist GND1 des ADUM direkt mit GND des RasPi verbunden?

LG, Sebastian

von Mathias S. (mths)


Angehängte Dateien:

Lesenswert?

temp schrieb:
> Leg doch mal
> wie weiter oben beschreiben ein R (1k?) von DOUT gegen Masse. Wenn es
> dann weg ist, solltest du dich nochmal mit dem Datenblatt des ADE7785
> beschäftigen.

Habe jetzt mal einen Pull-Up von DOUT gegen Masse eingefügt. Im 
"Ruhezustand" lese ich somit dauerhaft High auf MISO. Lasse ich mein 
Programm laufen, habe ich wieder eine Abbildung des SCLK-Signals auf 
MISO (siehe Anhang).

Jetzt Nicht schrieb:
> Der Schemazeichner war nicht wirklich begabt ... irgendwie kommt beim
> 1401er Symbol nicht heraus, dass drei Kanaele in einer Richtung und der
> Vierte in anderer Richtung geht. Ein moegliche Quelle von Problemen, die
> teuer werden koennen.

Welches Schema meinst du genau? Dass der ADUM1401 drei Kanäle in eine 
Richtung und einen in die entgegengesetzte Richtung hat ist mir aber 
bewusst. Letzteren (Kanal D) nutze ich für die Verbindung DOUT des 
ADE7758 zum Raspberry. Das sollte so passen.

Jetzt Nicht schrieb:
> Ich wuerd nun mal den ADE7758 an 5V haengen und den ADUM1401 durch
> Bruecken ersetzen

Der ADE7758 hängt an 5V. Den ADUM1401 kann ich nicht durch Brücken 
ersetzen, weil der Raspberry keine Pegel über 3,3 V verträgt, der Output 
des ADE7758 für eine logische 1 aber laut Datenblatt mindestens 4 V 
beträgt.

Jetzt Nicht schrieb:
> Die versendete Nachricht waere auch noch interessant. Ich denke aus dem
> ADE kommt nur was raus, wenn da was raus kommen soll. Irgendwas
> reinzulassen bringt nichts.

Das Programm sendet ein Byte mit führender Null (Kennzeichen, dass 
nächste Aktion "Lesen" ist) und der Adresse des Registers das ich lesen 
möchte (Register: OPMODE, Adresse: 0x13, Wert: 4). Anschließend schicke 
ich noch zwei Dummybytes (0x00) an den ADE7758. Beim ersten sollte ich 
dann eigentlich die Antwort empfangen - das zweite stammt noch aus der 
Zeit in der ich die Hoffnung hatte auch mal Multibyte-Register zu 
lesen... ;)

temp schrieb:
> Hast du mal die ganze restliche Beschaltung des ADE7758 untersucht? Sind
> alle Spannungen, AGND, DGND wirklich richtig angeschlossen? Was hat er
> allein für eine Stromaufnahme? Hast du einen Quarz dran und 2 Cs oder
> einen exteren Takt? Wenn Quarz, schwingt der auch?
> Bis dahin können wir nur im Kaffeesatz lesen.

Ja, ich habe die Beschaltung mehrmals geprüft. Wenn ich nicht total 
blind bin, ist alles so beschalten wie es das Datenblatt vorgibt. AVDD 
zu AGND, sowie DVDD zu DGND jeweils 5,05 V, also innerhalb der Vorgabe. 
Die Stromaufnahme an AVDD ist 9,2 mA (laut Datenblatt maximal 8 mA) und 
an DVDD 9,4 mA (laut Datenblatt maximal 13 mA). Alles gemessen mit einem 
Multimeter. Ja, als Taktgeber wird ein 10 MHz Quarz mit je einem 22 pF 
Kondensator an jedem Beinchen verwendet (siehe Fotos). Möglicherweise 
etwas naiv, aber da das Quarz neu ist, habe ich bisher nicht daran 
gezweifelt, ob es schwingt. Müsste ich mit dem Oszi testen, oder gibt es 
da eine schnelle Möglichkeit mit dem Multimeter?

temp schrieb:
> Noch eine andere Frage: Was möchtest du mit dem ADE7758 realisieren und
> hast du die nötigen Messmittel um das Teil zu kalibrieren? Ich hatte so
> was auch mal vor, da es aber fertige Geräte für ca. 90€ gibt, war es mir
> den Zeitaufwand nicht wert.

Ein Messgerät für 3-phasige Wechselstromnetze. Die Messmittel und ein 
wachsames Auge sind vorhanden. Hab zwar Erfahrung in E-Technik, bin aber 
bei weitem kein Experte. Allerdings sollte ich jetzt erstmal eine 
Kommunikation zwischen RPi und dem ADE7758 zustande kriegen, sonst 
brauch ich mir über weitere Aktivitäten gar keine Gedanken machen! ;)

Viele Grüße
Mathias

von Sebastian W. (wangnick)


Lesenswert?

Hallo Mathias,

ich glaube, der Grund für das Problem ist der 3.3V MEE1S. Er erzeugt ein 
isoliertes Potential, zu dem MISO/MOSI/SCLK/CE des RasPi nicht mehr in 
Beziehung stehen.

Nimm den mal raus und speise die 3.3V-Seite des ADUM direkt vom RasPi. 
Oder brücke zumindest GND des RasPi und GND1 des ADUM.

LG, Sebastian

: Bearbeitet durch User
von Mathias S. (mths)



Lesenswert?

Hi Sebastian,

Sebastian Wangnick schrieb:
> Was passiert, wenn du DOUT per 10k-Pullup mit VDD2 verbindest?
>
> Was passiert, wenn du DOUT per 10k-Pullup mit GND2 verbindest?
>
> Und noch eins: Ist GND1 des ADUM direkt mit GND des RasPi verbunden?

Ein 11k-Pullup von DOUT zu VDD2 bringt MISO im Ruhezustand High. Was 
passiert, wenn das Programm läuft siehst du im Anhang.

Ein 11k-Pulldown von DOUT zu GND2 bringt MISO im Ruhezustand Low. Das 
bleibt er auch bei laufendem Programm - zumindest nahezu, wie man im 
Anhang sieht.

Nein, die Seite mit 3,3 Volt des ADUM1401 hing, wie du richtig gesehen 
hast, an einem DCDC-Wandler und nicht direkt am Raspberry.

Sebastian Wangnick schrieb:
> ich glaube, der Grund für das Problem ist der 3.3V MEE1S. Er erzeugt ein
> isoliertes Potential, zu dem MISO/MOSI/SCLK/CE des RasPi nicht mehr in
> Beziehung stehen.
>
> Nimm den mal raus und speise die 3.3V-Seite des ADUM direkt vom RasPi.
> Oder brücke zumindest GND des RasPi und GND1 des ADUM.

Ich hab ihn rausgenommen (um ehrlich zu sein, hab ich mich nach deinem 
Beitrag ernsthaft gefragt, weshalb ich den überhaupt eingebaut 
hatte...komplett überflüssig eigentlich), leider habe ich dennoch das 
gehabte Verhalten, dass ich über MISO die SCLK-Pegel empfange (siehe 
Anhang). :/

Viele Grüße
Mathias

von Sebastian W. (wangnick)


Lesenswert?

Das ist ja zum Mäusemelken!

Laut piscope_11k-pullup_11032015.jpg wird DOUT direkt nach CE Low auf 
Low getrieben.

Laut Datenblatt ADE7758 bleibt DOUT aber zunächst Z, und wird erst 
nach der Übermittlung des Lesebefehls und der Registeradresse 
getrieben:

"SERIAL READ OPERATION
During a data read operation from the ADE7758, data is shifted
out at the DOUT logic output on the rising edge of SCLK. As
was the case with the data write operation, a data read must be
preceded with a write to the communications register.
With the ADE7758 in communications mode and CS logic low,
an 8-bit write to the communications register takes place first.
The MSB of this byte transfer must be a 0, indicating that the
next data transfer operation is a read. The seven LSBs of this
byte contain the address of the register that is to be read. The
ADE7758 starts shifting out of the register data on the next
rising edge of SCLK (see Figure 94). At this point, the DOUT
logic output switches from a high impedance state and starts
driving the data bus. All remaining bits of register data are
shifted out on subsequent SCLK rising edges. The serial
interface enters communications mode again as soon as the
read is completed. The DOUT logic output enters a high
impedance state on the falling edge of the last SCLK pulse."

Ich traue dem PiScope und seiner GND-Referenz nicht so ganz. Hast Du 
noch Zugriff auf das Oszi? Dann mach mal folgendes: VCC2 - 11k - DOUT - 
22k - GND2. Und dann zeig das Oszi-Bild von DOUT, also auf der 
ADE7758-Seite, aber analog und nicht digital. Dann kann man sehen wann 
DOUT Z ist, wann High und wann Low.

Ansonsten schmeiss mal den ADUM raus und häng SCLK, MOSI und CE direkt 
vom RasPi an den ADE7758, und DOUT - 1k - RasPi MISO - 2k - GND.

LG, Sebastian

von Mathias S. (mths)


Lesenswert?

Hi Sebastian,

werde versuchen morgen ans Oszi zu kommen, nach deinem Vorschlag zu 
messen und dann melde ich mich wieder.

Besten Dank erst mal und viele Grüße
Mathias

: Bearbeitet durch User
von Hobbyphotograph (Gast)


Lesenswert?

Mathias S. schrieb:
> oszi-10032015_cs-sclk-din-dout.jpg

Ein Tip: Wenn du die USB-Buchse für den Speicherstick am Agilent nicht 
findest, mach doch die Lampe vor dem Oszi wenigstens aus, damit nicht 
das ganze Display von Spiegelungen überstrahlt wird.

von Mathias S. (mths)



Lesenswert?

Hallo zusammen,

Hobbyphotograph schrieb:
> Ein Tip: Wenn du die USB-Buchse für den Speicherstick am Agilent nicht
> findest, mach doch die Lampe vor dem Oszi wenigstens aus, damit nicht
> das ganze Display von Spiegelungen überstrahlt wird.

Danke für den Tipp. Leider hat das Oszi beim letzten Mal meinen 
USB-Stick nicht angenommen. Diesmal war ich aber vorbereitet! ;)

Im Anhang die Aufnahmen meiner heutigen Oszi-Session:
Bild 1 - Unveränderte Schaltung
Bild 2 - 11k-Pullup von DOUT zu VDD2
Bild 3 - 11k-Pulldown von DOUT zu GND 2
Bild 4 - DOUT - 11k - VDD2 -22k - GND 2
Bild 5 - ohne ADUM1401 (DIN, SCLK, CE direkt am ADE7758, DOUT über 
Spannungsteiler am RPi)

Signale: CS (rot), SCLK (grün), DIN (blau), DOUT (gelb)

Erkenntnis: Am DOUT des ADE7758 tut sich nichts... :/

Ich bin noch mal die komplette Beschaltung des ADE7758 durchgegangen. 
Wegen des Hinweises bezüglich des Quarzmoduls hab ich diesen Bereich 
noch mal genauer unter die Lupe genommen und die Spezifikationen des 
Quarzes nachgeschlagen. Das hätte ich eventuell früher tun sollen, da 
ich mit meinen 22 pF Kondensatoren und einer daraus resultierenden 
Belastungskapazität von 11 pF doch einiges von der geforderten 
Belastungskapazität von 30 pF entfernt bin. Kann das nicht ordnungsgemäß 
schwingende Quarz der Grund sein, weshalb ich an DOUT nichts zu sehen 
kriege? Ich werde jedenfalls die 22 pF Kondensatoren gegen etwas im 
Bereich 60 pF tauschen.

Viele Grüße
Mathias

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Hallo Mathias,

Ok, der Fehler liegt also nicht am ADUM1401. Der ADE7758 antwortet 
einfach gar nicht. So weit, so gut.

Der Lesebefehl für Register 0x13 sieht aber für mich gut aus, sowohl mit 
als auch ohne ADUM.

Die weisse Kabelbrücke auf Deinem Steckbrett verbindet ja DGND (2) mit 
AGND (11) des ADE7758. Man kann auf dem Foto aber nicht erkennen, wie 
AVDD (4) versorgt wird ...

Ansonsten noch mal CLKOUT mit dem Oszi untersuchen, ob der Oszillator 
korrekt schwingt.

LG, Sebastian

: Bearbeitet durch User
von Mathias S. (mths)


Lesenswert?

Hi Sebastian,

DVDD (3) und AVDD (4) sind unter der besagten weißen Kabelbrücke 
zwischen DGND (2) und AGND (11) parallel geschalten und hängen an den 5 
V.

CLKOUT habe ich kurzfristig noch versucht mit dem Oszi zu messen. 
Allerdings konnte ich keine 10 MHz Schwingung feststellen. Das einzige 
einigermaßen periodische Signal an CLKOUT hat sich bei etwa 1 MHz 
bewegt.

Viele Grüße
Mathias

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Mathias S. schrieb:
> CLKOUT habe ich kurzfristig noch versucht mit dem Oszi zu messen.
> Allerdings konnte ich keine 10 MHz Schwingung feststellen. Das einzige
> einigermaßen periodische Signal an CLKOUT hat sich bei etwa 1 MHz
> bewegt.

Dann scheint dort der Fehler zu liegen. Tu den Quarz mal so nah wie 
möglich an die CLKIN/CLKOUT-Pins des ADE7758. Was für einen Quarz 
benutzt Du genau?

LG, Sebastian

: Bearbeitet durch User
von Mathias S. (mths)


Lesenswert?

Sebastian Wangnick schrieb:
> Dann scheint dort der Fehler zu liegen. Tu den Quarz mal so nah wie
> möglich an die CLKIN/CLKOUT-Pins des ADE7758. Was für einen Quarz
> benutzt Du genau?

Es handelt sich um dieses Quarz: 
http://de.rs-online.com/web/p/quarzmodule/2261746/

Ich bin bei der Gestaltung leider durch das Breadboard ziemlich 
eingeschränkt. Aktuell liegen zwischen dem Quarz und den Pins etwa 3 cm 
Kabel. Unter den ADE7758 werd ich mit dem Quarz nicht kommen. Werd mal 
sehen, was sich machen lässt um näher an die Pins zu kommen. Ich blick 
nicht durch, wie genau RS auf eine Belastungskapazität von 30 pF für das 
Quarz kommt, wo im Datenblatt 10 bis 75 pF angegeben sind. Für 10 pF 
würden meine 22 pF Kondensatoren ja ausreichen. Was meinst du? Tauschen? 
:/

Vielen Dank für deine Mühe und viele Grüße
Mathias

von Sebastian W. (wangnick)


Lesenswert?

Hallo Mathias,

ich würde die 22pF lassen. Durch das Steckbrett kommen noch ~2pF dazu, 
noch ein wenig durch CLKIN/CLKOUT, das passt schon. Aber bring den Quarz 
näher an CLKIN/CLKOUT. Ich hab bei meinen W5500-Experimenten auch Wochen 
gebraucht, bis ich den Quarz nicht mehr per Leitung sondern so direkt 
wie möglich am IC angeschlossen hab. Im Zweifelsfall löt ihn an.

Wenn der Oszillator schwingt, sollte CLKOUT leicht ein Oszilloskop oder 
einen Logikanalyzer treiben können: "The CLKOUT pin can drive one CMOS 
load when either an external clock is supplied at CLKIN or a crystal is 
being used". Kann Dein PiScope 10MHz?

Ansonsten: Kannst Du irgendwie eine 10MHz-Frequenz extern erzeugen und 
nach CLKIN einspeisen, und zu sehen, ob der ADE7758 überhaupt noch 
funktioniert?

LG, Sebastian

: Bearbeitet durch User
von Mathias S. (mths)



Lesenswert?

Hi Sebastian,

ich hab den Quarz jetzt an die Pins des DIP-Adapters gelötet, also viel 
kleinerer Abstand geht meiner Meinung nach nicht mehr. Damit war ich 
dann am Oszi und hab nochmal gemessen. Einmal am CLKOUT-Pin des ADE7758 
und einmal am entsprechenden Beinchen des Quarzes. Fotos des Messaufbaus 
und der Ergebnisse habe ich angehängt (kein USB-Stick dabei gehabt, 
sorry dafür!).

Gemessen habe ich jeweils mit einem 10x Messkopf, Masse an GND des 
ADE7758.

Ich weiß nicht, ob ich komplett falsch liege, aber ich hatte eine 
kontinuierliche, periodische Schwingung mit einer Frequenz von 10 MHz 
erwartet. Die erkenne ich da beim besten Willen nicht. Kann ich daraus 
jetzt schließen, dass mein Quarz nicht das macht, was er sollte?

Für die Belastungskapazität gilt doch: CL= C/2 + C_pin

Wenn man die Kapazitäten von Breadboard und Pins vernachlässigt, komme 
ich mit meinen 22 pF Kondensatoren auf ein CL von 11 pF. Für den Quarz 
werden ja (laut RS) 30 pF gefordert, wofür ich zwei Kondensatoren mit je 
~60 pF benötigen würde. Kann da nicht der Hase im Pfeffer liegen?

Viele Grüße
Mathias

von uwe (Gast)


Lesenswert?

> Kann ich daraus jetzt schließen, dass mein Quarz nicht das macht, was er
> sollte?
Ja ,da schwingt nichts! Nimm nen anderen Quartz bzw. auf dem Steckbrett 
wäre ein ganzer Quartzoszillator gar nicht so schlecht(weil du die 
Leitungen nicht unter 3cm bekommst).

von Sebastian W. (wangnick)


Lesenswert?

Mathias S. schrieb:
> Fotos des Messaufbaus
> und der Ergebnisse habe ich angehängt (kein USB-Stick dabei gehabt,
> sorry dafür!).

Sind die beiden 22pF unter dem ADE7758? Ich kann die gerade auf dem Foto 
nicht entdecken. (Mag aber auch dran liegen, dass ich gerade vom 
Augenarzt komme ...)

Ich hab mir den vorherigen Aufbau noch mal genau angesehen. Kann es 
sein, dass du beide Beinchen des Quarzes mit GND verbunden hattest?

LG, Sebastian

von Mathias S. (mths)


Lesenswert?

Sebastian Wangnick schrieb:
> Sind die beiden 22pF unter dem ADE7758? Ich kann die gerade auf dem Foto nicht 
entdecken. (Mag aber auch dran liegen, dass ich gerade vom Augenarzt komme ...)
>
> Ich hab mir den vorherigen Aufbau noch mal genau angesehen. Kann es sein, dass 
du beide Beinchen des Quarzes mit GND verbunden hattest?

Ja, beiden Kondensatoren sind unter dem ADE7758. Der Quarz ist parallel 
zu CLKOUT/CLKIN, an jedem Beinchen 22 pF und hinter den Kondensatoren 
geht es gegen Ground (wie im Datenblatt, Seite 17).

Viele Grüße
Mathias

von Sebastian W. (wangnick)


Angehängte Dateien:

Lesenswert?

Mathias S. schrieb:
> Ja, beiden Kondensatoren sind unter dem ADE7758. Der Quarz ist parallel
> zu CLKOUT/CLKIN, an jedem Beinchen 22 pF und hinter den Kondensatoren
> geht es gegen Ground (wie im Datenblatt, Seite 17).

Wie denn? Sind die auch angelötet? Wie kommst Du da mit GND dahin?

Sebastian Wangnick schrieb:
> Ich hab mir den vorherigen Aufbau noch mal genau angesehen. Kann es
> sein, dass du beide Beinchen des Quarzes mit GND verbunden hattest?

Ich meine den Steckbrettaufbau wie im Bild. Das kann m.M.n. nicht 
funktionieren.

LG, Sebastian

von Mathias S. (mths)



Lesenswert?

Hi Sebastian,

ich hab es mal in ein Foto des aktuellen Aufbaus skizziert. Gelötet ist 
da nichts, nur gesteckt.

Also ich steh gerade etwas auf dem Schlauch. Weshalb kann das denn 
deiner Meinung nach so nicht funktionieren? Ich erkenne gerade keinen 
Unterschied zur Beschaltung ala Datenblatt... :/

Viele Grüße
Mathias

von Sebastian W. (wangnick)



Lesenswert?

Mathias S. schrieb:
> Also ich steh gerade etwas auf dem Schlauch. Weshalb kann das denn
> deiner Meinung nach so nicht funktionieren? Ich erkenne gerade keinen
> Unterschied zur Beschaltung ala Datenblatt... :/

Wegen der Steckbrettverschaltung ...

LG, Sebastian

von Pete K. (pete77)


Lesenswert?

Die im obigen Bild gemalten Lila Striche sollen verdeutlichen, dass alle 
Pins auf dem Steckbrett in einer Reihe verbunden sind.

von Mathias S. (mths)


Lesenswert?

Tut mir leid, vielleicht war es gestern etwas zu lang, aber ich versteh 
nicht, was ihr meint... :/

Der Quarz ist an die beiden Pfosten des Adapters für CLKIN/CLKOUT 
gelötet. Die Pfosten gehen ins Breadboard. In den jeweiligen Reihen des 
Breadboards (unter dem Adapter mit dem ADE7758) folgen die Kondensatoren 
und diesen folgt jeweils eine Kabelbrücke (grün eingezeichnet, weiße 
Isolierung), welche Richtung Ground läuft.

Was soll denn daran nicht stimmen?

Viele Grüße
Mathias

von Sabberlotte (Gast)


Lesenswert?

Mathias S. schrieb:
> Tut mir leid, vielleicht war es gestern etwas zu lang, aber ich
> versteh
> nicht, was ihr meint... :/
Schlaf' erstmal ein wenig, dann wird das auch was.
>
> Der Quarz ist an die beiden Pfosten des Adapters für CLKIN/CLKOUT
> gelötet.
.....und sind mit GND verbunden.
> Die Pfosten gehen ins Breadboard.
> In den jeweiligen Reihen des Breadboards .... folgen die Kondensatoren
....und sind auch mit GND verbunden.
> und diesen folgt jeweils eine Kabelbrücke (grün eingezeichnet, weiße
> Isolierung), welche Richtung Ground läuft.
>
> Was soll denn daran nicht stimmen?
.........vieles (s.o.)!
Du hast die gesamte Takterzeugung mit GND verbunden!
>
> Viele Grüße
> Mathias

von Sebastian W. (wangnick)


Lesenswert?

Mathias S. schrieb:
> Tut mir leid, vielleicht war es gestern etwas zu lang, aber ich versteh
> nicht, was ihr meint... :/

Mathias S. schrieb:
> Der Quarz ist an die beiden Pfosten des Adapters für CLKIN/CLKOUT
> gelötet. Die Pfosten gehen ins Breadboard. In den jeweiligen Reihen des
> Breadboards (unter dem Adapter mit dem ADE7758) folgen die Kondensatoren
> und diesen folgt jeweils eine Kabelbrücke (grün eingezeichnet, weiße
> Isolierung), welche Richtung Ground läuft.
>
> Was soll denn daran nicht stimmen?

Die Reihen des Breadboard sind elektrisch verbunden. CLKIN bzw. das eine 
Beinchen des Quarz ist also mit dem ersten Beinchen des Kondensators und 
auch dem zweiten Beinchen des Kondensators und auch mit dem weissen 
Kabel was zu GND führt verbunden. Für CLKOUT und das andere Beinchen das 
Quarz und den anderen Kondensator gilt dasselbe. Blöder Fehler, kann 
passieren.

Zur Veranschaulichung: Damit es funktioniert müsstest Du die zwei 
Breadboardreihen zwischen den 22pF-Kondensatorbeinchen jeweils 
zertrennen. Das geht aber natürlich nicht.

LG, Sebastian

: Bearbeitet durch User
von Mathias S. (mths)


Lesenswert?

Hi Sebastian,

manchmal kann ich echt schwer von Begriff sein. Habe das jetzt 
korrigiert und siehe da, die Kommunikation zwischen Raspberry und 
ADE7758 funktioniert einwandfrei. Diese Dummheit hat mich jetzt über 
eine Woche gekostet!

Vielen Dank für deine Hilfe! Gibst' mir halt deine Adresse durch, dann 
schick ich dir einen Kasten als Dankeschön! ;)

Viele Grüße
Mathias

von Sebastian W. (wangnick)


Lesenswert?

Mathias S. schrieb:
> Habe das jetzt
> korrigiert und siehe da, die Kommunikation zwischen Raspberry und
> ADE7758 funktioniert einwandfrei.

Freut mich. Funktioniert auch der ADUM1401?

LG, Sebastian

von Mathias S. (mths)


Lesenswert?

Sebastian Wangnick schrieb:
>
> Freut mich. Funktioniert auch der ADUM1401?

Ja, der hängt wieder dazwischen und es funktioniert. Beim Senden des 
ersten Bytes bekomme ich nach wie vor "255" zurück, aber das ist nicht 
relevant. Der ADE7758 interpretiert die Befehle korrekt und ich kann 
Byte- und Multibyte-Antworten korrekt lesen! :)

Viele Grüße
Mathias

: Bearbeitet durch User
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.