2013-06-21 101 views
0

我的團隊一直試圖通過使用 MSPEXP430F5438開發板的CC2520發送數據。我們嘗試使用FIFO_READ和FIFO_WRITE 命令,但它無濟於事。我們還嘗試使用RAM_READ和 RAM_WRITE命令,但結果仍然相同。我們檢查了MSP430和CC2520的接口連接 ,看起來很好。任何人都可以推薦一些方法來找出我們的問題在哪裏(發件人/收件人)?使用CC2520進行通信

問候,Pratyush

回答

1

在高層次上,所述CC2520是SPI控制狀態機。這意味着無線電收發器需要特定的命令序列來發送或接收數據。

我建議在CC2520 Datasheet內看看第21節(寫入時爲第85頁)。此外,第19節和第20節分別顯示了TX和RX程序。

SmartRF Studio通常是最簡單的入門方式,因爲它有一個完整的無線電GUI界面。但是,您可能需要購買CC2520 dev kit或爲CC2520提供受支持的基板。我相信MSP-EXP430F5438 board不支持SmartRF Studio,但我無法輕鬆找到答案。我知道當您啓動軟件時,SmartRF工作室會識別MSP-EXP430F5438,但我不確定該軟件能否使用MSP-EXP430F5438作爲無線電桌面GUI控制的基板。

如果你想在你的MSP-EXP430F5438和CC2520上編寫一個「hello world」,我建議使用TI提供的sample code作爲CC2520,並閱讀CC2520 page

TI的CCxxxx收音機,在C僞代碼,發送/送你可以做以下的消息:

SPI_Strobe(IDLE); /* Reset radio state machine to 'start' state (IDLE) */ 
SPI_WriteBurstReg(TXFIFO, tx_data, tx_data_length); /* Write data to TX FIFO */ 
SPI_Strobe(TX); /* Start radio transmission */ 

_BIS(LPM3+GIE); /* While TX finishes, sleep MCU with general interrupt enable */ 
       /* Use GPIO to interrupt. When TX is finished, RETI from ISR */ 
       /*  and continue to next line */ 

SPI_Strobe(FLUSH_TXFIFO); /* Flush TX buffer (optional) */ 
SPI_Strobe(IDLE);   /* Reset radio state machine to 'start' state (IDLE) 
          /*  Can auto enter IDLE when TX done - see doc. */ 
SPI_Strobe(PWR_DOWN);  /* Turn off radio to save power (optional) */ 

上面,我用全部大寫來表示一個靜態地址/字節定義從一個頭文件。