Digitales Poti AD5293 und ATmega8

Gast #4278354
Lesenswert?
• ▲
▼
Hallo,

ich möchte ein AD5293 mit einem ATmega8 per SPI ansteuern. Der ATmega 
ist folgendermaßen mit dem AD5293 verbunden:
MOSI(PB3) - DIN
SCLK(PB5) - SCLK
/SS(PB2) - /SYNC

Mit dem Code im Anhang bekomme ich auf der Clock und Daten-Leitung das 
entsprechende Bitmuster.
Der Slave-Select verhält sich jedoch seltsam. Sobald ich mit dem 
Oszilloskop am PIN messe, stürzt scheinbar das Programm ab und 
funktionert erst wieder nach einem Reset des ATmega.

Der Slave-Select wird doch ganz normal als Ausgang konfiguriert oder 
übersehe ich da was?
Angehängte Dateien:
Gast #4295852
Lesenswert?
• ▲
▼
Hallo Tom,

bin auch grad am AD5293 dran.

Init musst du so machen.

SPI_DDR &= ~(1<<SDO);
SPI_DDR |= (1<<SDI)|(1<<SCK)|(1<<CS);
SPI_PORT |= (1<<CS)|(1<<SCK)|(1<<SDI);

SPCR =0x00;
SPCR |= (1<<SPE)|(1<<MSTR)|(1<<CPHA);

Sowas wie
SPCR = (0<<SPIE))
wird dir so nie funktionieren.

Bits löscht man durch
SPCR &= ~(1<<SPIE)

Hoffe das hilft dir schon mal.

Gruß CB
Gast #4296101
Lesenswert?
• ▲
▼
Hallo CB und Spess,

danke für eure Tipps.

Die Initialisierung ist ja nur anders geschrieben.

CB schrieb:
> SPCR = (0<<SPIE))

Da hast du Recht, das hat keine Auswirkung auf das Programm. Das ist nur 
der Übersicht halber mit drin. Die Initialwerte des Ports habe ich von 
dir übernommen.

spess53 schrieb:
> Welches Bit willst du mit 1<<3 wirklich setzen?

Bit10 (C0), da habe ich mich scheinbar verzählt. Richtig müsste es 
heißen:
uint8_t byte1 = (val>>8 & 0xFF) | (1<<2);


Jetzt funktioniert alles. Danke euch beiden.

Noch ein kurzer Nachtrag: Obiges Programm muss noch durch die 
Deaktivierung des Write Protect erweitert werden. Also zu Beginn Command 
4 aus Tab. 11 im Datenblatt schreiben.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.