#导入Word文档图片# CC2530 GPIO口输出配置说明​

阅读 46

2022-05-25

第一章原理图分析

  • CC2530核心板上带有两颗晶振:第一颗频率为32MHZ,第二颗频率为32.768KHZCC250正常运行的时候,需要一个高频的时钟信号和一个低频的时钟信号。
    高频时钟信号,主要供给CPU,保证程序的运行。
    低频时钟信号,主要供给看门狗、睡眠定时器等片上外设。
    #导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器
    #导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器_02
  • 按键IO口接线(按键是接在底板上的)#导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器_03
    #导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器_04
  • LED灯接线(LED是接在底板上的)#导入Word文档图片# CC2530 GPIO口输出配置说明​_晶振_05
    #导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器_06

第二章输出模式配置

#导入Word文档图片# CC2530 GPIO口输出配置说明​_晶振_07

#导入Word文档图片# CC2530 GPIO口输出配置说明​_主时钟_08

#导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器_09

#导入Word文档图片# CC2530 GPIO口输出配置说明​_主时钟_10

#导入Word文档图片# CC2530 GPIO口输出配置说明​_晶振_11

第三章配置LED灯代码示例

  • 代码示例:

#include <ioCC2530.h>

//定义LED灯的端口

#define LED1 P1_2

#define LED2 P1_3

/*

函数功能:LED灯IO口初始化

硬件连接:LED1-->P1_2 , LED2-->P1_3

*/

void LED_Init(void)

{

P1DIR |=0x3<<2; //配置P1_2、P1_3为输出模式

LED1 = 1;

LED2 = 1;

}

/*延时200毫秒*/

void delay200ms(void) //误差 -0.125us

{

unsigned char a,b,c;

for(c=95;c>0;c--)

for(b=181;b>0;b--)

for(a=14;a>0;a--);

}

/*主函数*/

void main(void)

{

LED_Init();//初始化LED灯控制IO口

while(1)

{

LED1 = !LED1;

LED2 = !LED2;

delay200ms();

}

}

  • IAR软件跳转功能#导入Word文档图片# CC2530 GPIO口输出配置说明​_主时钟_12
    #导入Word文档图片# CC2530 GPIO口输出配置说明​_寄存器_13

第四章延时函数生成

注意:默认使用内部晶振为16MHZ

#导入Word文档图片# CC2530 GPIO口输出配置说明​_主时钟_14

第五章CC2530时钟介绍

  • 1,CC250正常运行的时候,需要一个高频的时钟信号和一个低频的时钟信号。
    高频时钟信号,主要供给CPU,保证程序的运行
    低频时钟信号,主要供给看门狗、睡眠定时器等片上外设
  • 2,高频时钟信号有两个来源:芯片内部的16M RC电路,另外一个是外接一个32M的石英晶振
    低频时钟信息也有两个来源:一个是芯片内部的32K RC电路,另外一个是外接的32.768K 的石英晶振
  • 3,CC2530芯片默认上电的时候,是内部的2个RC电路作为高频和低频的时钟来源。
  • 4,如果我们在用串口,特别是无线通信的时候,必须要用32M的石英晶振,作为高频时钟来源

    在协议栈中,需要从16M切换到32M晶振!!
  • 5,高频时钟源特点:
    2个高频时钟源可以同时起振产生高频时钟信号
    而2个低频时钟源,某一时刻只能有一个时钟源起振,并且起振的这个时钟源供给CC2530
  • 系统高频时钟源切换的步骤:
    1,让2个高频时钟源起振
    2,等待目标时钟源振荡稳定
    3,延时一小段时间63us
    4,不分频输出
    5,选中目标高频时钟源作为系统主时钟
    6,确认一下当前工作的系统时钟是不是所选的高频时钟,涉及的寄存器:SLEEPCMD SLEEPSTA CLKCONCMD CLKCONSTA

Chipcon 公司,推出了CC2430/1,TI将其收购,发展出了CC2530

1,让SLEEPCMD的第2位为0

2,SLEPPSIA寄存器的第6位为1表示时钟源稳定

3,超过63us延时

4,不分频输出:把寄存器CLKCONCMD第三位设置成000

5,把寄存器CLKCONCMD的第六位清0,设置32M做为系统的主时钟

6,读寄存器CLKCONSTA的第六位为0,表示当前32M的时钟源已经做为了当前的系统主时钟,程序可以向下运行了

精彩评论(0)

0 0 举报