A7139射频模块wor配置解析
wor功能配置代码:
void a7139_wor(void) {
//A7139_WritePageA(8,0x0445);//GPIO1 按帧同步 GPIO2 单片机唤醒
A7139_WritePageA(8,0x0005);//GPIO1 按帧同步 只用一个引脚 唤醒单片机。
A7139_WritePageA(1,0x8013); 活动时间8ms 睡眠时间 152ms
RCOSC_Cal(); // rc时钟校准
A7139_WritePageA(2,0x0030); 开启rc时钟 和前导码唤醒
A7139_WriteReg(0xd,0x0800); //选择strobe命令控制 wor功能开启
A7139_WriteReg(0xf, 0x22C0);// 选择fifo模式 wor功能开启
}
1. 配置wor 1 寄存器。 活动周期和睡眠周期根据需要配置。但是活动周期必须要保证能接收到一串数据。活动时间越短功耗越低,睡眠周期越长功耗越低。
A7139_WritePageA(1,0x8013); //活动周期8ms,睡眠周期152ms
2.配置wor 2寄存器。唤醒次数根据实际情况设置,默认为1次。唤醒选择配置为前导码唤醒。开启rc时钟。 唤醒 MCU 模式选择 :通过 WOR 模式,在接收到包后唤醒 MCU
3.配置GPIO寄存器。 把GIO1配制成 帧同步信号,把GIO2 配制成单片机唤醒信号。
4.在管脚控制寄存器(0D h)和模式控制(0F h)里把wor功能打开,并把模块设置成FIFO模式。
注意:
a.接收方的前导码必须大于0 ,小于等于发射方的前导码
b.GIO管脚必须配制成中断,只有中断才能检测信号变化。
c.在有很多射频信号的地方,前导码设置过短芯片会被误触发。(检测前导码8B 仅供参考)
d.活动时间设置必须要保证能检测到完整的前导码。前导码越长,活动时间越长。
e.唤醒单片机后需要延时一段时间才能读出数据(100ms 仅供参考)
中断:
void EXTI0_IRQHandler(void){
EXTI_ClearITPendingBit(EXTI_Line0); //
delay_ms(100);
A7139_ReadFIFO(datatemp,18); 进入中断函数后读取fifo里面的数据
if(datatemp313[17]==0x5a)
{
datatemp[0]=0x00;
}
}
//void EXTI1_IRQHandler(void) {
// EXTI_ClearITPendingBit(EXTI_Line1);
//}
void RCOSC_Cal(void) // RC时钟 校准
{
uint16_t tmp;
A7139_WritePageA(WOR2_PAGEA, A7139Config_PageA[WOR2_PAGEA] | 0x0010); //enable RC OSC
while(1)
{
A7139_WritePageA(WCAL_PAGEA, A7139Config_PageA[WCAL_PAGEA] | 0x0001); //set ENCAL=1 to start RC OSC CAL
do{
tmp = A7139_ReadPageA(WCAL_PAGEA);
}while(tmp & 0x0001);
tmp = (A7139_ReadPageA(WCAL_PAGEA) & 0x03FF); //read NUMLH[8:0]
tmp >>= 1;
if((tmp > 183) && (tmp < 205)) //NUMLH[8:0]=194+-10 (PF8M=6.4M)
// if((tmp > 232) && (tmp < 254)) //NUMLH[8:0]=243+-10 (PF8M=8M)
{
A7139_WritePageA(WCAL_PAGEA,0x0000); //结束后清零
break;
}
}
}
转载于:https://www.cnblogs.com/wangjinshan/p/9323766.html
A7139射频模块wor配置解析相关推荐
- 实战 webpack 4 配置解析一
配置 github 仓库:https://github.com/nystudio107/annotated-webpack-4-config 随着Web开发变得越来越复杂,我们需要工具来帮助我们构建现 ...
- python3.6爬虫环境安装要多少内存_Python3爬虫环境配置——解析库安装(附tesserocr安装方法)...
Python3爬虫环境配置--解析库安装(附tesserocr安装方法) 抓取网页代码后,第二步就是提取信息,为了方便程序设计,这里不采用繁琐的正则提取,利用社区里强大的Python解析库,如lxml ...
- 开源分布式中间件 DBLE Schema.xml 配置解析
文章来源:爱可生开源社区 作者:张沈波 1.DBLE项目介绍 DBLE 是企业级开源分布式中间件,江湖人送外号 "MyCat Plus":以其简单稳定,持续维护,良好的社区环境和广 ...
- java log 配置,java日志系统--log4j配置解析过程,源码分析
log4j 可以看成是非常类似jdk logger 结构 ,有个logger 与logManger 都是在logManger的静态块中初始化类,加载配置文件 Logger.getLogger(Test ...
- 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发
文章目录 Mabatis 四.配置解析 1.核心配置文件 2.environments(环境配置)☆ 3.properties(属性)☆ 4.typeAliases(类型别名)☆ 5.settings ...
- (Mybatis)XML配置解析
文章目录 XML配置解析 1.核心配置文件 2.环境配置(environments) 3. 属性(properties) 4. 设置(settings) 5. 其他配置 6. 映射器(mappers) ...
- nsq源码阅读笔记之nsqd(一)——nsqd的配置解析和初始化
配置解析 nsqd的主函数位于apps/nsqd.go中的main函数 首先main函数调用nsqFlagset和Parse进行命令行参数集初始化, 然后判断version参数是否存在,若存在,则打 ...
- MyBatis 源码解读-配置解析过程
首先我们要清楚的是配置解析的过程全部只解析了两种文件.一个是mybatis-config.xml 全局配置文件.另外就是可能有很多个的Mapper.xml 文件,也包括在Mapper 接口类上面定义的 ...
- SpringBoot默认日志logback配置解析
SpringBoot默认日志logback配置解析 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式 ...
最新文章
- 整理了一下SQL Server里面可能经常会用到的日期格式转换方法
- 一起学nRF51xx 10 - rng
- GetModuleHandle,AfxGetInstanceHandle使用区别
- Git本地库版本控制和分支管理
- eclipse 项目 链接 oracle 空指针,Eclipse 常用配置技巧
- linux centos7上安装sql developer
- 60-150-044-使用-Sink-Flink自定义RetractStreamTableSink
- 转- --python 3 编码
- anki模板_【授权转载】【Anki高级操作技巧】(19)-如何在模板上添加新字段
- php常用数组,php常用数组函数
- Linux权限命令chmod
- GEO数据库中platform信息详解
- linux 安装串口驱动安装失败,z-tek(求救Z-TEK串口安装失败,提示:该设备的驱动程序未被安装(代码28)这个inf中的服务安装段落无效?)...
- 伺服舵机基础知识汇总
- 史上最详细的人脸识别和活体检测技术介绍、原理剖析及产品应用!
- 基于深度学习的手写汉字识别
- 利用C++,设置输入某年某月某日,判断这一天是这一年的第几天。
- 多少秒算长镜头_电影术语中长镜头是什么意思?
- 基于Gin+Vue+ElementUI实现的微信公众号平台系统
- 原生 js、javaScript 处理十位数(带有小数点的浮点数时间戳)、十三位数、时间戳, 将时间戳转换成 年、月、日、时、分、秒、毫秒、正常的日期格式