mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage ATmega128 + SPI + SPOL-Bit


Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe hier einen 16-Bit-ADC, der laut Datenblatt folgendermaßen 
ausgelesen werden will (während der Wandlung sollen SS und SCK beide 
high sein).

* SS auf low
* SCK auf low (soll High wenn inaktiv sein). Dann legt der ADC sein Bit 
15 auf MISO.
* SCK auf high und dabei Bit 15 samplen
* SCK auf low, damit gibt der ADC Bit 14 aus.
* SCK auf high und dabei Bit 14 samplen
usw.
* anschließend SCK und SS auf high "parken"

Programmier ich das Ganze per Bitgewackel, funktionierts, sprich ich 
bekomme sinnvolle Werte raus.

Nutze ich die Hardware-SPI vom ATmega128, ist nach meinem Verständnis 
des Datenblatts CPOL = 1 und CPHA = 0 die richtige Einstellung für das 
oben beschriebene Timing. Damit funktionierts aber nicht: Werte bis 32k 
kommen halbiert raus, Werte ab 32k halbiert aber dafür +32k. Anscheinend 
wird das MSB doppelt gesampelt und das LSB gar nicht.

Was kann das sein? Sampelt der ATmega evtl. schon direkt nach dem 
Beschreiben von SPDR, also vor dem ersten Clockzyklus? Wie muß ich die 
SPI konfigurieren?

Grüße, Sebastian

Autor: Jörg G. (joergderxte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du die Abfolge richtig beschrieben hast (Datenblatt zum adc?), 
probier' mal CPOL=1, CPHA=1, damit der Atmega auf der steigenden Flanke 
(hier: "trailing") liest ("sample't")

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah ich bin mittlerweile auch drauf gekommen nach nochmaligem Studieren 
des ATmega-Datenblatts.

CPOL = 1 und CPHA = 0 ergibt Leading Edge = Sample (Falling), Trailing 
Edge = Setup (Rising). Das ist natürlich genau falschrum...

Werds demnächst nochmal probieren...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.