|
@@ -135,22 +135,16 @@ keil工程已经设置了4个选项:
|
|
|
|
|
|
软件开发主要就是涉及`射频模块驱动`,与硬件相关的主要就是SPI接口和一些辅助IO口(比如中断信号脚),这部分软件主要放在`./radio/myRadio_gpio.c`中。
|
|
|
中断信号是通过回调函数`RADIO_GPIO_CALLBACK`的方式从`./radio/myRadio_gpio.c`回调到`./radio/myRadio.c`中处理,回调函数的方式只是为了方便软件编写,用户可以直接把外部中断函数直接放在`./radio/myRadio.c`中处理。
|
|
|
+
|
|
|
### 注意事项
|
|
|
-- 3线SPI和4线SPI切换
|
|
|
- 3线SPI在初始化之前需要先设置spi接口模式
|
|
|
- ```c
|
|
|
- PAN3029_write_reg(REG_SYS_CTL, 0x03);
|
|
|
- PAN3029_write_reg(0x1A, 0x83);
|
|
|
- ```
|
|
|
- 通过预编译定义了一个宏`SPI_SOFT_3LINE`来选择,具体见`./radio/myRadio.c/void myRadio_init(int agr0, void *agr1_ptr)`
|
|
|
|
|
|
- 4线spi接口的硬件和软件模拟方式切换
|
|
|
通过宏定义`SPI_HARD`来选择,具体见`./radio/myRadio_gpio.c/void myRadio_gpio_init(RADIO_GPIO_CALLBACK cb)`
|
|
|
|
|
|
|
|
|
### 1、进入低功耗
|
|
|
-调用`./radio/myRadio.c/myRadio_abort()`函数,将射频模块进入低功耗模式,进入低功耗模式后,射频模块将不接收任何无线信号,只有当射频模块进入接收状态后,才能再次接收无线信号,具体测试参数见`PAN3029_470-510MHz指标测试报告.pdf`
|
|
|
-- 调用`rf_deepsleep();`可进入超低功耗模式,电流功耗200na左右,唤醒后需要重新初始化
|
|
|
+调用`./radio/myRadio.c/myRadio_abort()`函数,将射频模块进入低功耗模式,进入低功耗模式后,射频模块将不接收任何无线信号,只有当射频模块进入接收状态后,才能再次接收无线信号。
|
|
|
+- 调用`rf_deepsleep();`可进入超低功耗模式,电流功耗400na左右,唤醒后需要重新初始化
|
|
|
- 调用`rf_sleep();`可进入低功耗模式,电流功耗1ua左右
|
|
|
|
|
|
```c
|
|
@@ -266,7 +260,7 @@ void myRadio_init(int agr0, void *agr1_ptr)
|
|
|
}
|
|
|
```
|
|
|
### 5、射频底层执行
|
|
|
-调用`./radio/myRadio.c/myRadio_process(void)`函数,该函数需要放在主函数中不断判断检测是否有中断触发,然后根据中断标志来解析处理。状态处理可以直接在相应的位置处理,或者通过回调函数`rxCb`将结果返回上一层处理
|
|
|
+调用`./radio/myRadio.c/myRadio_process(void)`函数,该函数需要放在主函数中不断判断检测是否有中断触发(可以放在while循环中执行),然后根据中断标志来解析处理。状态处理可以直接在相应的位置处理,或者通过回调函数`rxCb`将结果返回上一层处理
|
|
|
- `REG_IRQ_RX_DONE`:表示接收到无线数据包
|
|
|
- `REG_IRQ_TX_DONE`:表示无线数据包发送成功
|
|
|
```c
|