由于国庆节假期,帖子审批以及工程师回复将会有所延迟,敬请谅解。

【CC2541 评测】CC2541 迷你开发套件使用心得分享+CC2541-DK Mini基于IAR新建timer_peripheral(nonos)工程

评测一 CC2541-DK Mini基于IAR新建timer_peripheral(nonos)工程

         有幸申请收到TI的CC2541-DK Mini板子,第一次接触TI的蓝牙,上手折腾一下,来个简单把玩。TI的CC2541-DK Mini套件主要器件包含CC2541F256秘钥卡主板、CC2540F256 USB软件狗、CC Debugger调试器(TI专用)和其余一些零配件,其中keyfob主板引出了I2C和一些IO口做test头,两个用户按钮,还板载一个加速度计BMA250(正面电池座旁边编号为A1)和一块压电式音频转换蜂鸣器(背面标识为CMT-1603的大塑料块)。

体积小巧,CC2541是具有8K RAM+256K FLASH的增强型8051内核单片机,片上集成了两个32.753kHz和16MHz低精度RC振荡源、射频器件、滤波器、DC-DC稳压器、8051核心等。发射功率方面典型值是TX:0dBm(不是很高),接收灵敏度:-94dBm。其中发射功率可通过HCI_EXT_SetTxPowerCmd函数来调节(-6dBm和-23dBm)。调试时要短接P1头,从而让USB对芯片进行供电,此时最好拔去纽扣电池。

为验证开发环境搭建是否成功,在协议栈下面新建文件夹命名myprojects,再新建文件夹timer_parallel作为当前工作库。打开IAR新建workspace,再新建工程,toolchain选择8051,工程模板选择empty project,找到刚才的timer_parallel文件夹,工程取名timer_parallel(.ewp)

保存再新建文件,点击Save all会弹出工作库窗口,同样命名timer_parallel(.eww),然后点击Save保存文件命名为main.c并添加到工程下,在编辑器窗口编辑如下代码:

#include "ioCC2541.h"

#pragma message ("Hello_World!")

 

short timeCtrl1=0;//simulator task1

short timeCtrl2=0;//simulator task2

 

int  main()

{

    P1DIR|=0X03;//P1_0/P1_1

    P1_0=0;

    P1_1=0;

   

    T3CTL|=0xe0;//Prescale=128

    T3CTL&=0xfc;//Mode:Auto reload

    T3IE=1;   

    T3CTL|=0x18;//Enable,start

    EA=1;//Total switch      

}

 

#pragma vector=T3_VECTOR

__interrupt void T3_Handler(void)

{

    IRCON=0x00;//clear interrupt for next period

    if(timeCtrl1<=244)

      timeCtrl1++;

    else

    {

        timeCtrl1=0;

        P1_0=~P1_0;

    }

    if(timeCtrl2<=488)

      timeCtrl2++;

    else

    {

        timeCtrl2=0;

        P1_1=~P1_1;

    }   

}

接下来设置工程属性。单击工具栏Project->Option,在General option项由于我的主板型号是CC2541F256,Target选择IAR Install path/8051/config/devices/Texas Instruments/CC2541F256.i51,其他可以保持默认,如图:

在Debugger页面Setup标签里,Driver选择Texas Instrument,Device Description file确认是IAR Installl path\config\devices\Texas Instruments\ioCC2541F256.ddf,

在Linker页面Config标签确保Linker configuration file为$TOOLKIT_DIR$\config\devices\Texas Instruments\lnk51ew_CC2541F256_banked.xcl,同时Output标签定义Output file为timer_parallel.hex,

如果要开启一些宏预定义开关和头文件路径,可以切换到C/C++ Complier页面,然后在Preprocessor标签页编辑Additional include directories和Defined symbols项。然后点击Make编译,点击Download and Debug(Ctrl+D),启动调试,按F5全速运行,接上逻辑分析仪,上述代码不带OSAL的双任务运行效果是:P1_0产生T=1s,50%占空比方波,P1_1产生T=2s,50%占空比方波(代码没有精确计算,故误差比较大),如图:

 

9 个回复