文档内容:依据RFIC4463_F2A&B中所提到变量以及WDS生成头文件,思考如何将其添入单片机工程中
时间节点:2014/10/30
一、 命令与属性
1、SI4463 API描述中的Command
SI4463芯片的应用手册AN625中有关于大部分Command和Property的定义,Command如下图:
可根据上述表格定义的所有Command得出下列程序
根据表格中的定义得出上述程序,这样再进行SPI传输Command操作时,可对应上述程序,操作相应变量即可。
比如下面的更改芯片状态的程序:
先发送CMD_CHANGE_STATE至SPI接口,芯片会识别0x34的Command,紧接着发送0x01,即变为Sleep State。SendCommand后期的文档中会详细说明。
2、SI4463 API描述中的Property
AN625中关于Property有定义如下:
可以看到上述表格中number的值与Command中的number不一样,它是2byte的。而我们发送数据是1byte为单位发送的。同时可以看到0x0000~0x0008都是以Global打头的,故可以得到下面程序定义:
将2bytes拆分成2部分,一部分作为Group的定义,另一部分作为各个Property的定义。再设置某个Property的时候就可以有如下程序:
先发送Command 0x11(Set Property),再发送Group的值和Property的Number和内容,实现对某个Property的配置。
二、 WDS生成头文件导入
WDS工具生成的头文件中定义的Property变量都是很长一串,如下图:
上述头文件的这种定义形式与第一章中类似,亦包括Set Property (0x11),又包括Group(0x20)、Property Number(0x00)、长度(0x03)和具体的配置内容,相当于多个参数集中到一个变量里面了,所以发送的时候只需要发送一个变量即可。
将WDS生成头文件中的变量先赋给一个变量数组,如下:
可以看到数组的第一个值为该变量总长度,例如MODEM_MOD_TYPE_7共含7个bytes。那么在发送的时候就有如下:
数组第一个参数长度和后面变量地址作为指针依次加,即可实现将整个7bytes全部发送出去。
对于WDS中有定义的变量都可以采用上述操作,对于WDS生成头文件中没有定义的变量,可以使用第一章中提供的方式进行传输。
具体SendCommand函数的编写等,后期会详细说明。