zoukankan      html  css  js  c++  java
  • 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的相关程序等

    一切都是最好的安排,感谢生命中所遭遇的一切!
  • 相关阅读:
    深入NET框架
    解决idea中maven的pom文件不会自动下载jar包问题
    JSP中的作用域
    转发与重定向
    JSP内置对象
    JNDI与连接池
    文件上传
    七大设计原则
    第六章 初始继承和多态
    C#和.NET框架
  • 原文地址:https://www.cnblogs.com/sunxuxu/p/4126800.html
Copyright © 2011-2022 走看看