网站大量收购独家精品文档,联系QQ:2885784924

Si4463芯片使用小结.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Si4463芯片使用小结Si4463芯片使用小结.doc

Si4463芯片使用小结 一、芯片介绍 Silicon Labs 的 Si4463芯片是高性能的低电流收发器,其覆盖了 119MHz 至 1050 MHz 的 Sub-1GHz频段。还是 EZRadioPRO 系列的一部分,该系列包含覆盖各种应用的完整发射器、接收器和收发器产品线。所有器件都具有杰出的灵敏度 -126 dBm,同时实现了极低的活动和休眠电流消耗。 二、功能实现 1、引脚说明 Si4463有20个引脚,主要引脚功能可以分为两大类:硬件引脚和软件引脚。硬件引脚主要由电源、射频部分组成,软件引脚主要分为SPI、芯片使能以及GPIO。硬件引脚在原理图、PCB设计部分需要注意,此处主要是介绍芯片的程序操作,硬件部分就此带过。下表列举了si4463的21个引脚(包括芯片正下方的Exposed pad引脚)的具体引脚号和功能简述: 表1 Si4463引脚简述 Si446xPin NumberPin NamePin FunctionExposed pad, 18GNDGround6, 8VDDSupply input2,3Rxp,Rxnused for Rx4,7Tx,TXRampused for Tx16,17Xin,Xoutcrystal11NIRQInterrupt output, active low1SDNShutdown input, active high15NSELSPI select input12SCLKSPI clock input14SDISPI data input13SDOSPI data output9GPIO0GPIO10GPIO1GPIO19GPIO2GPIO20GPIO3GPIO 2、功能实现 1)SPI操作 芯片的12-15脚为SPI引脚,最大支持速率达到10MHz.芯片支持标准的SPI总线协议,操作方便。 整个芯片的所有SPI操作都可以分成两种方式:写命令和读数据。SPI操作最需要注意的一点是芯片状态,因为芯片不可能随时随地处在SPI就绪状态,所以每次操作SPI时必须读取芯片的当前状态(CTS),确保操作成功。 图 CTS读取流程 写命令的流程如下: 图 写命令 Si4463至少有28条命令ID,每个命令都有不同的含义,有的可以直接操作芯片执行各项功能,有的可以读取芯片各种状态。上述的读取CTS也是其中一种命令。命令内容详情可参阅Siliconlabs官方文档“AN633.pdf” 读数据流程如下: 图 读数据 有部分命令是读取命令,写完命令后可读出该命令规定的相应字节数据,如上图,SDI在写完0x44读取到CTS信号后,写入0x00(空操作命令)来读取回复字,切忌用有效命令操作(会导致数据异常)! 2)初始化 Si4463不支持上电自动复位功能,因此每次上电后都需认为给出初始化操作,具体可参见下述代码: void SI446X_RESET( void ) //Si4463复位函数 { SI_SDN_HIGH( ); //SDN引脚拉高,芯片关断 waitus(10); //延时10us SI_SDN_LOW( ); //SDN引脚拉低,芯片使能 SI_nSEL_HIGH( ); //nSEL引脚拉高,禁止SPI片选,释放SPI waitms(5); //延时5ms,芯片自动复位 } 在芯片重新复位后可以对芯片进行相应的配置。写配置信息有两种方式,其一查询器件手册,对每一个寄存器进行直接配置;其二,按顺序写入配置信息数组,该数组在头文件中进行定义,而头文件可由Siliconlabs公司的配置软件WDS生成。我们选择方法二,具体操作后面细述。 uint8 Si4463_init( void ) { SI446X_RESET( ); //SI446X 模块复位 SI446X_CONFIG_INIT( ); //SI446X 模块初始化配置函数 SI446X_INT_STATUS( Si446x_CMD_Buf ); //清除中断状态 SI446X_EN_INT(SI446X_INT_STAUS); //使能中断 SI446X_START_RX( Rx_channel, 0, PACKET_LENGTH,0,0,3 ); //开接收 return (Si4463_diagnose()); //读取芯片状态,返回芯片信息

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档