ez430-CC2500 SPI Kommunikation

Gast #1885540
Lesenswert?

Hallo,
ich wollte mal neben der Theorie in der Uni mich ein wenig mit dem 
MSP430 beschäftigen und der ez430-CC2500 wurde es dann. Uart an den PC 
klappt wunderbar und die LEDs blinken auch :).
Jetzt wollt ich den CC2500 über SPI ansteuern.
Die Initalisierung hab ich aus dem SimpliciTI genommen und eigentlich 
alles überprüft. Ich wollte mal Fragen ob mir jemand Helfen kann, weil 
ausgelesen aus den Statusregistern des CC2500 klappt damit nicht.
Ich wollte zum Testen eifnach die Seriennummer des CC2500 auslesen.
Klappt damit aber nicht und ich komme nicht weiter.
Vielen Dank.
1
#define nSS   P3OUT_bit.P3OUT_0
2
#define MISO  P3IN_bit.P3IN_2
3

4
void init_SPI() {
5
 
6
  UCB0CTL1 = UCSWRST;                           
7
  UCB0CTL1 = UCSWRST | UCSSEL1;                 
8
  UCB0CTL0 = UCCKPH | UCMSB | UCMST | UCSYNC;   
9
  UCB0BR0  = 2;                                 
10
  UCB0BR1  = 0;                                 
11
  P3OUT_bit.P3OUT_0 = 1;
12
  P3DIR_bit.P3DIR_0 = 1;
13
  P3SEL = 0x0E;               
14
  UCB0CTL1 &= ~UCSWRST;                         
15
}
16

17
uint8 read_SPI(uint8_t addr)
18
{
19

20
    uint8 recieve;
21

22
    nSS = 0;               // Chip Select
23
    while(MISO);           // Warten bis CC2500 MISO low zieht
24
    UCB0TXBUF = addr;      // Addresse in Register laden
25
    while(!(IFG2 & UCB0RXIFG));  // Warten bis empfangen fertig
26
    recieve = UCB0RXBUF;    // Dummy mal auslesen
27
    UCB0TXBUF = addr;       // Dummy reinschreiben
28
    while(!(IFG2 & UCB0RXIFG));  // Warten bis was ankommt
29
    recieve = UCB0RXBUF;    // Auslesen! 
30
    nSS = 1;                // Chip Select 
31
    return(recieve);         
32
}

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