音ノ木坂学院

叶え!みんなの夢――

0%

ZigBee学习手册

最近在做ZigBee和LoRa。第一次接触所以记录一下入门过程。

硬件和软件

CC2530开发板

实验室配备的是Texas Instruments的ZigBee开发套件,包括CC2530开发板(含底板)+SmartRF04EB仿真器。
CC2530的底板上提供了一个可以供电的Mini USB接口和一个可以烧录程序的串口,还有按钮和二极管这些简单的IO装置。

德州仪器官网给出了很多文档,包括Data Sheet开发套件用户手册等。开发套件的用户手册附录里有一个简单的开发指南。其中用到了IAR Embedded Workbench IDE。由于IDE只提供Windows版本,所以需要一台Windows电脑,或者虚拟机。

IAR Embedded Workbench for 8051

去IAR官网下载 IAR Embedded Workbench for 8051。免费用户可以申请30天试用,或者无限期试用,但是代码大小最大只能4Kb。这里使用了前一种方案,总之注册安装好即可。这里安装了7.3版本,和用户手册中的旧版本有一点不同。

SmartRF04EB驱动

直接把仿真器接到PC上是不能正确识别的。按照手册的介绍,给SmartRF04EB用的驱动需要先安装SmartRF Studio。事实上直接这个IDE安装好后也包含驱动。
手册里说不支持64位系统,实测新版本已经可以在64位Win10下使用。
在Windows设备管理器中找到设备,手动指定驱动位置。进入上一步中安装的Embedded Workbench的根文件夹,在\8051\drivers\Texas Instruments\win_64bits_x64里可以找到驱动(或者安装32位,按需求)。安装完成后,操作系统和Workbench才可以正确读取到仿真器。

上手程序

Project配置

编写程序前还需要根据开发板对Workbench中的Project进行一些配置。

  1. 在Project菜单里点Create New Project新建一个工程,并在模板中选择Empty Project

  2. 在左侧窗口的Workspace中可以看到新建的Project,右键并选择Option

  3. 进入General Options -> Target

    • Device information -> Device右边的按钮点击,选择Texas Instruments -> CC25XX -> 3x -> CC2530F256(具体型号可以在core板上读到)
    • CPU core选择Plain,这样可以使用全部CPU
  4. 还在General Options -> Target 这里Hexo的格式好像有问题

    • Code model设置为Banked(Near也可),不要勾选Use extended stack
    • Data model选择Large(如果选择了Near,这里就是Small)
    • Calling convention选择XDATA
    • 下面的Number of virtual保持8不动,Location for constants and strings也选择RAM不动

    再转到General Options -> Code Bank

    • Numbers of banks 设置成0x07,使得CC2530F256可以访问其全部256kB内存,CC2530F128也设置成0x07
    • Register address 设置成0x9F
    • Register mask 设置成0xFF
    • Bank start 保持0x8000,Bank end保持0xFFFF
  5. 进入Static Analysis -> Linker

    • 勾选Override default,在\config\devices\Texas Instruments里找到对应的xcl文件。因为上文选择了Banked,所以使用lnk51ew_CC2530F256_banked.xcl。对于F32或F64版本,则需要使用没有banked的配置。
  6. 进入Static Analysis -> Debugger

    • Driver里选择Texas Instruments
    • Device Description file里勾选Override default,并在\config\devices\Texas Instruments里找到对应的ddf文件,这里使用ioCC2530F256.ddf

至此工程配置完成。

第一个程序blinky

烧录时可能会出现Unknown exception in driver (#E1),按下仿真器上那个Reset按钮后重新Download一次基本可以解决问题。