1

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

 2 years ago
source link: https://blog.51cto.com/u_11822586/5329209
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

第一章原理图分析

  • CC2530核心板上带有两颗晶振:第一颗频率为32MHZ,第二颗频率为32.768KHZ​CC250正常运行的时候,需要一个高频的时钟信号和一个低频的时钟信号。​
    高频时钟信号,主要供给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的时钟源已经做为了当前的系统主时钟,程序可以向下运行了​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK