我的团队一直在尝试使用 MSPEXP430F5438 板通过 CC2520 发送数据。我们尝试使用 FIFO_READ 和 FIFO_WRITE 命令,但无济于事。我们还尝试使用 RAM_READ 和 RAM_WRITE 命令,但结果仍然相同。我们检查了 MSP430 和 CC2520 的接口,这似乎很好。谁能提出一些方法来找出我们的问题所在(发件人/收件人)?
问候, Pratyush
问问题
1515 次
1 回答
2
在高层次上,CC2520 是一个 SPI 控制的状态机。这意味着无线电收发器需要特定的命令序列来发送或接收数据。
我建议您查看CC2520 数据表中的第 21 节(第 85 页,编写时) 。此外,第 19 节和第 20 节分别显示了 TX 和 RX 过程。
SmartRF Studio通常是最简单的入门方法,因为它有一个完整的无线电 GUI 界面。但是,您可能需要购买CC2520 开发套件或为 CC2520 提供受支持的基板。我相信MSP-EXP430F5438 板不支持 SmartRF Studio,但我无法轻易找到答案。我知道 SmartRF Studio 在您启动软件时会识别 MSP-EXP430F5438,但我不确定该软件是否可以将 MSP-EXP430F5438 用作无线电桌面 GUI 控制的基板。
如果您想在 MSP-EXP430F5438 和 CC2520 上编程“hello world”,我建议使用 TI 为 CC2520 提供的示例代码,并仔细阅读 CC2520 页面。
对于 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) */
上面,我使用全大写来指示头文件中的静态地址/字节定义。
于 2013-06-21T21:42:09.467 回答