首页 > 代码库 > RFIC4463_F3A&B
RFIC4463_F3A&B
文档内容:
1、依51单片机流程熟悉及C8051F310芯片寄存器熟悉;
2、查找基于单片机的SI4463配置相关工程,完成整个工程的流程图设计以及调研需要哪些模块。
时间节点:2014/10/31~2014/11/3
一、 51单片机编程相关
1、工程编写流程
首先在Project工具栏选中新建uVision工程
根据所射频板所采用的单片机型号选择相应单片机,本工程中使用Silicon Labs的C8051F310单片机。
接着在工程中添加相应的.C源文件和头文件等。如下图所示:
在编译成功后需要生成hex文件用于下载至单片机中由于配置,需要做设置如下:
在Target1上右键选择Options for Target‘Target1’,在output栏勾选上Create HEX File
在上述的一系列操作完成后即可对程序进行烧写。我们使用JTAG烧写程序,这时候我们还需要在安装KEIL软件的基础上再安装Keil uVision Driver,这样在Driver的选项中才有Silicon Labs C8051Fxxx Driver的选项。
在线调试有选项设置如下:
安装网上面的Driver之后,从Debug中可以看到相对应的选项,如下图所示,同时需要勾选上Run to main()。
接着点击Settings,如下图
当连接上USB DEBUG ADAPTER时,上述标红的选项为可选择的。
之后就可以点击(Ctrl+F5)进行在线调试了。
2、C8051F310头文件解析
不同的芯片拥有不同的头文件,比如C8051F960单片机内部寄存器是包含Page属性的,但是F310就不包含Page,也就是说960要强大于310,这时候两个不同期间的编程就有比较大的差异。例如SPI接口的编程,960可以直接调用内部的相关寄存器来实现,而310需要根据SPI程序的接口时序去编写相应的工程。
在射频板的原理图中可以知道有P0/P1/P2/P3等引脚,这些引脚即为芯片头文件中定义的相应变量
相当于单片机内部地址0x80处的这个寄存器被重新起名为P0,又有程序如下
此时的SFR_P0和P0是等价的,在文档RFIC4463_F1中对于引脚配置有相应描述,如下图
上述程序即表示将IO的P1-7分配给MCU_SCK等。这样再程序中对MCU_SCK进行相应的高低置位时,即为对P1_7的高低置位。
二、 工程流程设计
整个工程应该包括两个,一个是发送,一个是接受。对这二者而言,流程是不同的。主要设计SI4463的配置顺序问题。整个流程通过通读相应的Demon程序可以获得。
1、发送程序流程
A:射频芯片上电;(0x02)
B:返回当前中断状态;(0x20)
C:获得回应,得到FFh时,射频芯片准备工作;()
D:发送调试方式、速度等;(0x2000)
E:发送TRX&TX参数;(0x2051等)
F:使能中断;(0x0100)
G:设置发送包内容如前导码同步字等;(0x1000等)
H:设置GPIO口与晶振;(0x13)
I:更改射频芯片状态(Sleep StateàActive State);(0x34)
J:传送数据;(0x66 0x31)
K:返回当前中断状态;(0x20)
L:芯片变为睡眠状态;(0x34)
每个步骤后面括号中的值为相应的Command和Property的值。
2、接受程序流程
A:射频芯片上电;(0x02)
B:返回当前中断状态;(0x20)
C:获得回应,得到FFh时,射频芯片准备工作;()
D:发送调试方式、速度等;(0x2000)
E:发送TRX&RX参数;(0x2051等)
F:使能中断;(0x0100)
G:设置快速反应寄存器;(0x0200)
H:设置发送包内容如前导码同步字等;(0x1001等)
I:设置GPIO口与晶振;(0x13)
J:返回当前中断状态;(0x20)
K:接收数据;(0x32)
L:获取包处理状态;(0x21)
M:复位RX FIFO;(0x15)
N:检查是否接收到包;(0x53)
O:读取FIFO
P:返回当前中断状态;(0x20)
Q:接收数据;(0x32)
通过对上述收发程序的解读,我们可以知道需要的模块有:
A:发送Command;
B:获取响应;
C:等待CTS;
D:SPI的相关程序等
RFIC4463_F3A&B