Probleme mit Atmega32 SPI (MCP42010)

Gast #3787516
Lesenswert?
• ▲
▼
Hallo,

Möchte gerne eine MCP42010 Digital-Poti per SPI mit einem Atmega32 
steuern.

Das Poti will: SPI™ serial interface (mode 0,0 and 1,1)
Zuerst ein Commando-Byte und danach ein Daten-Byte

Zuerst möchte ich einmal beide Potis gleich ansteuern was folgendes 
Commando-Byte sein müsste: 0b00010011;

Der IC wurde folgendermaßen beschaltet:

Der SHND-Pin (Shutdown):  dauerhaft low
CS: PB3 ATmega
SCK: an SCK Atmega mit ca. 1k Widerstand dazwischen
Serial Data Input (SI): an MOSI Atmega mit ca. 1k Widerstand dazwischen
Reset: auf Reset-Leitung Atmega


Das Angelegte Signal an den Poti (1V Sinus) erscheint am Schleifer-Pin 
genau halbiert. (Standarteinstellung des Potis).

Ich sehe im Oszi beim Flashen schön die SCK,MOSI,etc. Signale aber 
punkto Poti tut sich absolut nichts :/


Hier meine Routinen:
1
void SPI_INIT (void)
2
{
3
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
4
}
5

6
void SPI_WORD (char data1, char data2)
7
{
8
PORTB|=(1<<PB7);  //SCK
9
PORTB|=(1<<PB5);   //MOSI
10
PORTA &=~(1<<PB3);  //CS
11
SPDR = data1;
12
 while(!(SPSR & (1<<SPIF)));
13
SPDR = data2;
14
while(!(SPSR & (1<<SPIF)));
15

16
PORTB|=(1<<PB3);   //CS
17
PORTB&=~(1<<PB7);  //SCK
18
PORTB&=~(1<<PB5);   //MOSI
19
}
20

21

22
int main (void)
23
{
24
SPI_INIT();
25
SPI_WORD(0b00010011,0b11111111);
26
}

Vielen Dank für die Hilfe!
#3787542
Lesenswert?
• ▲
▼
Du solltest den SS Pin vom Mega (Port B, Pin PB4) noch auf Ausgang 
schalten. Siehe den Abschnitt über SPI im Datenblatt.
Tust du es nicht, dann steuert der SS Pin, ob sich der Mega als Master 
oder als Slave am SPI Bus verhält. Auf Ausgang schalten vermeidet 
diesbezüglich Probleme und der Mega fungiert definitiv als Master.

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.