文档介绍:NRF905程序参考教程。
本资料主要是将程序中各部分子程序的功 能与NRF905的手册相关联,使得各位同仁 在每个子程序为什么这么写都在手册中找 到具体的体现,特别是寄存器配置。
内涵完整参考程序,是100%可用程序。 硬件的连接方法机音量,你的手就相当于配置耳机的寄存器。
那么我先给出主要需配置的寄存器然后再解释. 如下面这个程序段:
unsigned char idata RFConf[11]=
{
0x00,
〃配置命令//
0x4c,
//CH_NO,配置频段在430MHZ
0x0c,
〃输出功率为10db,不重发,节电为正常模式
0x44,
〃地址宽度设置,为4字节
0x04,0x04, 〃接收发送有效数据长度为32字节
OxCC, OxCC, OxCC, OxCC, 〃接收地址
0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M
晶振
};
0x00, 〃配置命令〃后面的讲解中会说,所以大家从第二个开 始看。
CH_NO的意思如下,通过以下解释设置不同的值,可以让905工作在不同频段,这个需 要的话再做详解,不需要,可以照搬默认值,或者程序。
CH_NO
9
和 HFREQ_PLL_起进 行平率设置(默认值二 001101100b = 108d).fRF =( + CH_NOd /10)*(l+HFREQ_PLLd) MHz
于是乎相关的就引出以下这个寄存器
HFREQ_PLL
1
使PLL工作于433或 868/915 MHz 模式(默 认值=0).
'0'-工作于433MHz频 段
T-工作于868 or 915
MHz频段
在这里给出个表格,如需更改该值可以参照:
工作频率
HFREQ PLL
CH N0
MHz
[0]
[001001100]
MHz
[0]
[001101011]
MHz
[0]
[001101100]
MHz
[0]
[001111011]
MHz
[1]
[001010110]
MHz
[1]
[001110101]
MHz
[1]
[001110110]
MHz
[1]
[001111101]
MHz
[1]
[100011111]
MHz
[1]
[100100000]
MHz
[1]
[110011111]
OxOc, 〃输出功率为10db,不重发,节电为正常模式
这里做下说明:我们拆分看看这段话。
@输出功率为10db
@不重发
@节电为正常模式
输出功率为10db,这个对于的寄存器是:
如下表,二进制10db应该是11
PA_PWR
输出功率(默 认值=00).
“o(r—
10dBm
“01"-2dBm
Tl"
+10dBm
不重发,针对的寄存器是:
不管怎么说,部分都不自动重发(一般情况),故二进制是0
AUTO_RETRAN
如果TRX_CE 和 TXEN 为高时,自动重发(默认 值=0).
'0'-不重发T-数据包 重发
节电为正常模式,针对的寄存器是: 如下表,要是正常模式则二进制是0
RX_RED_ PWR
1 接收方式节能,工作电流
(默认 值=0).
'0'-正常工作T-节能 模式
那么如下结论:
输出功率为[Odb 11
不重发 0
节电为正常模式 0
按顺序写则是:1100—》0000 1100 》OxOC
0x44, 〃地址宽度设置,为4字节
如下面两个表:
收地址宽度:4字节的2进制是100
RX_AFW
接收地址宽度 (默认值=100).
'001'-1 byte
RX地址
'100' - 4 byte
RX地址
发地址宽度:4字节的2进制是100
TX_AFW
3
发送地址宽度 (default = 100) .'001'- 1 byte TX地址
'100' — 4 byte TX地址
于是乎:
100 并上 100, 可认为是0x44.
可认为是0100并上0100,可认为是4并上4,则
0x04,0x04, 〃接收发送有效数据长度为32字节
这条命令是我擅自更改的,更改前是2字节,如是0x04这是32 字节。这样可以使905在一个数据包内传输更多信息。
那么我给出两个寄存器。
RX_PW
接收数据宽度 (默认= 100000).
'000001'-1 byte 接收数据宽度
'00