Forum: Mikrocontroller und Digitale Elektronik SPI an MSP430 (EZ430-RT2500)


von Martin (Gast)


Lesenswert?

Hallo, ich versuche mit meinem EZ430 Board den CC2500 anzusprechen. (Ist 
auf dem Board)

Dazu will ich per SPI den CC reseten, in dem ich 0x30 schicke. Nur hängt 
das Programm an 2 Stellen. Nämlich dann wenn jeweils darauf gewartet 
wird ob das Senden bzw Empfangen fertig ist. Es wird einfach kein IFG 
gesetzt.
1
P3OUT |= BIT0;
2
  P3DIR |= BIT0;
3
  
4
  UCB0CTL1 |= UCSWRST;
5
  UCB0CTL0 |= UCSYNC + UCMST;
6
  UCB0CTL1 |= UCSSEL0 + UCSSEL1;
7
  UCB0BR0 = 0x02;
8
  UCB0BR1 = 0x00;
9
  SPI_SPI_SEL;
10
  SPI_SPI_DIR;
11
  
12
  
13
  UCB0CTL1 &= ~UCSWRST;
14
  //UC1IE
15
  IE2 |= UCB0RXIE + UCB0TXIE;   //Interrupt enable
16
  
17
  //Reset des CC2500
18
  P3OUT |= BIT0;    //aus SLAU325
19
  TI_CC_Wait(30);
20
  P3OUT &= ~BIT0;
21
  TI_CC_Wait(30);
22
  P3OUT |= BIT0;
23
  TI_CC_Wait(45);
24
  P3OUT &= ~BIT0;
25
  
26
  IFG2 &= ~UCB0TXIFG;
27
  while(P3IN&SPI_PIN_SOMI);     
28
  UCB0TXBUF = 0x30;
29
  while (!(IFG2&UCB0TXIFG));      //Programm hängt         
30
  IFG2 &= ~UCB0RXIFG;
31
  while(!(IFG2&UCB0RXIFG));      //Programm hängt
32
  while(P3IN&SPI_PIN_SOMI);
33
  P3OUT |= BIT0;

Kann mir jemand helfen? Auch versteh ich nicht was dieses rumgetoggle 
vor dem Senden sein soll. Wäre über jegliche Hilfe dankbar. Vielleich 
tkennt ja jemand auch Quellen wo schon mit dem CC2500 auf diese Weise 
gearbeitet wurde.

von Martin (Gast)


Lesenswert?

... :(

von Hannes (Gast)


Lesenswert?

Mit IE2 |= UCB0RXIE + UCB0TXIE; werden die Interrupts aktiviert. Was 
machen denn die Handler dazu? Gibt es sie überhaupt? Was passiert denn 
ohne diese Zeile?
Gruß,
Hannes

von Martin (Gast)


Lesenswert?

Nein die Handler gibt es nicht. Wäre eine Möglichkeit. Wollte aber SPI 
erstmal so testen.. Wenns denn geht.

Obwohl es bestimmt einfacher ist. Die ISR wird ja dann aufgerufen sobald 
was empfangen wurde. Dann brauch man sich zumindestens beim Empfangen 
keine Gedanken mehr um die IFG´s machen.... Ich probiers mal...

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.