Forum: Mikrocontroller und Digitale Elektronik ATmega mit ADE7758 über SPI


von Jürgen H. (misteret)


Angehängte Dateien:

Lesenswert?

Hallo!

Ichhabe schon einige Beispiele gelesen, wie man eine Kommunikation mit 
SPI zu Stande bringt. Ich schaff es dennoch nicht.
Hab dies Beitrag "Probleme bei SPI Kommunikation" und das 
Beitrag "Eingangsdaten mit SPI" vor allem gelesen...

Ich benutze den ATmega16 als Master und den ADE7758 als Slave.

Ich habe mal ein Bild aus dem ADE-datasheet mitgeschickt, wie die 
Kommunikation ablaufen soll, und 2 Fotos vom Oszi, was ich erhalte.



Hier mein Quelltext:
1
unsigned char receive(unsigned char address)
2
{
3
  //Adresse ins Senderegister, in dem Beispiel Adresse 0x14
4
  SPDR = address;
5
  //Adresse Senden
6
  while(!(SPSR & (1<<SPIF)));
7
  
8
  _delay_us(4);
9
  //Dummydaten ins Senderegister
10
  SPDR = 0x00;
11
  //Dummydaten Senden
12
  while(!(SPSR & (1<<SPIF)));
13
 
14
  //Wert zurückgeben..laut Beispiel müssten hier meine Daten aus dem IC
15
  // drin stehen.......bei Register 0x14 müsste 252 bzw 0xFC bzw 0b11111100
16
  // über MISO zurückkommen.
17
  return SPDR;
18
}
19
20
int main(void)
21
{
22
  unsigned char value;
23
24
  PORTB &= ~(1<<CE); // SS-Pin direkt mit ADE verbunden und dauerhaft auf 
25
                  // da zur Zeit noch einziger Busteilnehmer
26
27
  while{1}
28
  {
29
    value = receive(0x14); //Dieses Beispiel sehen wir auf den Fotos
30
    _delay_us(1);
31
32
  }


Kann mir jemand weiterhelfen? Ich habe den IC ja auch hier empfohlen 
bekommen (Herr Lipinsky), als ich mal über Leistungsmessung gepostet 
hatte.

Mein Problem ist, dass über MISO nichts zurückkommt :-(

Es wundert mich, weil es fast exakt so aussieht, wie im Datenblatt...

(sorry für die schlechte Oszi-Bild Quali. Hab es mit dem Handy 
fotografiert...hab kein USB an dem Teil gefunden)+


Wäre für jede Hilfe sehr DANKBAR!

von Jürgen H. (misteret)


Lesenswert?

Hi Leute!

Ich weiß, warum keine Antowrt kam! Weil eigentlich oben nichts falsch 
war ;-)

Ich habe mal die Wartezeiten variiert (diese 4µs), SPI Freuquenzen 
variiert usw.....einfach alles versucht. Und jetzt empfang ich immerhin 
die richtigen Daten :-)

von Micha (Gast)


Lesenswert?

Hallo Jürgen Hems

vielen Dank für dein feedback trotz mangenden antworten...
Ich bin zur Zeit auch dabei den ADE7763 einzubinden und bekomme zwar 
eine Antwort nur kommt da meiner Meinung nach nur Blödsinn zurück. Es 
sind zum Beispiel beim Auslesen des Mode Registers keine konstanten 
Werte zu erkennen. Auch die Defaultwerte werden nicht widergespiegelt.
Mit welchen Frequenzen sendest du denn ?
Ich hoffe du liest diesen Beitrag nochmal.

Bis bald
Vielen Dank und freundliche Grüße
Micha

von Florian S. (der_picknicker)


Lesenswert?

Hallo,
ich arbeite auch grade mit diesem Chip und komme irgendwie nicht klar 
mit der Berechnung der Werte. Wie rechne ich zB den Wert aus VRMS in 
einen tatsächlichen Spannungswert also zB 230V um? Werde aus dem 
datenbaltt einfach nicht schlau. Gleiches gilt für IRMS und die 
Waveformsamples. Sitze schon zweit Tage dran und versuche eine 
venünftige Berechnung hin zu bekommen, aber es gelingt mir einfach 
nicht. Kann mir jemand einen Schubs in die richtige Richtung geben?

Grüße,
Flow

von Jan H. (janiiix3)


Lesenswert?

Florian S. schrieb:
> Hallo,
> ich arbeite auch grade mit diesem Chip und komme irgendwie nicht klar
> mit der Berechnung der Werte. Wie rechne ich zB den Wert aus VRMS in
> einen tatsächlichen Spannungswert also zB 230V um? Werde aus dem
> datenbaltt einfach nicht schlau. Gleiches gilt für IRMS und die
> Waveformsamples. Sitze schon zweit Tage dran und versuche eine
> venünftige Berechnung hin zu bekommen, aber es gelingt mir einfach
> nicht. Kann mir jemand einen Schubs in die richtige Richtung geben?
>
> Grüße,
> Flow

Da schließe ich mich an. Wie berechnet man VRMS?

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.