SPI an MSP430 (EZ430-RT2500)

Gast #1434891
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.
Gast #1441812
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren