ForestRain
ForestRain
This guy hasn't written anything yet

注册于 1 year ago

回答
11
文章
11
关注者
6

  1. lora-radio-driver使用了系统的spi设备(用到了mutex),因此涉及SX1268 SPI的读写不能放在中断环境中
  2. 解决方式之一是通过事件(rt_event)来传递RF中断事件,然后在线程中处理原本在ISR执行的内容,可以参考下lora-radio-driver\samples

  1. 实验下ART-PI做slaver,LSD4RF-TEST2002做master,是否可以单向或者双向通信?
  2. 从日志来看,SPI通信OK,检查下rtconfig.h文件中DIO0等引脚号是否确实跟上述图片内容一致
  3. 另外注意两个设备需要连接好天线,同时不要靠的太近

  1. 可以先确认下SPI外设的主频是否正确
  2. 通过实验测试下SPI连续读写是否正常
  3. 查看系统中,有没有比lora_radio_thread优先级更高的任务复用SPI

最好提供些调试日志信息

  1. STM32F40x系列192K SRAM中有64K特殊RAM(即CCM),只能内核使用image1.png
  2. CCM(Core Coupled Memory)是给F4内核专用的全速64KB RAM, CCM没有经过总线矩阵, F4内核(通过D-Bus)与之直接相连, 地址空间在0x1000 0000 ~ 0x1000 FFFF.image2.png
  3. 由于CCM地址空间和常规的SRAM不连续, DMA和外设无法直接使用,CCM一般都要手动分配资源,确保这块内存不被外设使用
  4. 可根据实际情况设计,将CCM用于RTOS堆栈、高速运算缓存(JPEG编码/解码)等
  5. 参考如下文章[《STM32 之五 Core Coupled Memory(CCM)内存》]

(https://blog.csdn.net/zcshoucsdn/article/details/79176306)

  1. 从日志来看,显示的是 PHY TxTimeout PHY RxTimeout ,检查下DIO0等引脚配置,TXDONE与RXDONE依赖于DIO0的中断信号
  2. 用户radio接收函数接口
void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )

回到
顶部

发布
问题

投诉
建议