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)进行在线调试了。

2C8051F310头文件解析

不同的芯片拥有不同的头文件,比如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的相关程序等

一切都是最好的安排,感谢生命中所遭遇的一切!
原文地址:https://www.cnblogs.com/sunxuxu/p/4126800.html