Long distance CC2530F256 + PA power amplifier 2.4G wireless module zigbee Internet of things 100mW 20dB

15,55 

2 na sklade

Katalógové číslo: 160 Kategórie: , ,

Popis

CC2530 Zigbee 2.4 GHz Module

CC2530 Zigbee 2.4 GHz ModuleCC2530 Zigbee 2.4 GHz Module

Diaľkový CC2530F256 + PA výkonový zosilňovač 2,4G bezdrôtový modul zigbee Internet vecí 100mW 20dB

Serial number parameter name Parameter value description
1 RF chip CC2530 TI
2 Module size 17 * 31.7mm With FCB antenna
3 Module heavy star L-3g With FCB antenna
4 Working frequency 2.394GHz ~ 2.507GHz Can be adjusted by software
5 Production Process No along the process, machine stickers Wireless products must be fixed to ensure consistency and reliability
6 Interface mode 2 * 12 * 1_27mm Patch
7 Supply voltage 2.0 ~ 3. 6 VDC Note: Higher than 3. 6W pressure will cause the module to permanently damage
8 Communication level 0.7VCC ~ 3.6V VCC refers to the module supply voltage
9 Real distance 800m B Chunlang open, maximum power, 5dBi antenna, height 2m, 250k air speed
10 Transmit power Up to 20 dBm About lOOmtf
11 Air rate 250kbps
12 Turn off current 1.luA M sleep, wireless off, vcck3.3v
13 Emission current 175mA0 20dBm Power supply capacity must be greater than 400mA
14 Receive current 36mA average value
15 Communication Interface I / O SCM all 10 lead, see the chip manual
16 Launch length 1 ~ 103 Festival Single number of brochures
17 Receiving length 1 ~ 103 Festival Single education package
18 KSSI support stand by See the chip manual for details
19 Antenna interface PCB / IPEX Pi recognized FCB antenna, 50A characteristic impedance
20 Operating temperature 10 ~ E * 0 Work level
twenty one Working humidity 10% ^ 90% Relative humidity, no condensation
twenty two Save the overflow -10 ~ + 125 * C Work level
Pin number Pin name Pin orientation Pin use
L GHD Ground, connected to the power supply reference ground
2 VCC Power supply, must be between 2.0 ~ 3.6V
3 P2.2 Enter / show out Microcontroller OTI0
4 P2.1 Enter / ii out Microcontroller OTI0
5 P2.0 Enter / show out Microcontroller OTI0
6 07.10.21 Enter / ii out Microcontroller OTI0
7 06.10.21 Enter / show out Microcontroller OTI0
8 05.10.21 Enter / ii out Single Chip Microcomputer GPI0
9 04.10.21 Enter / show out Microcontroller OTI0
10 03.10.21 Enter / ii out Microcontroller OTI0
11 02.10.21 Enter / show out Microcontroller OTI0
12 01.10.21 Enter / ii out Microcontroller OTI0
13 P1.0 Enter / show out Microcontroller OTI0
14 P0. 7 Enter / ii out Microcontroller OTI0
15 P0.6 Enter / show out Microcontroller OTI0
16 P0.5 Enter / ii out Microcontroller OTI0
17 P0.4 Enter / show out Microcontroller OTI0
18 P0.3 Enter / ii out Microcontroller OTI0
19 P0.2 Enter / show out Microcontroller OTI0
20 P0.1 Enter / ii out Microcontroller OTI0
twenty one PO.O. Enter / show out Microcontroller OTI0
twenty two RESET enter Summer port
twenty three TXEN F to control the control

 

Kapitola 1 Schématická analýza

Na základnej doske CC2530 sú dva kryštálové oscilátory: prvá frekvencia je 32 MHz a druhá frekvencia je 32,768 kHz

Keď CC250 beží normálne, potrebuje vysokofrekvenčný hodinový signál a nízkofrekvenčný hodinový signál.

Vysokofrekvenčný hodinový signál sa dodáva hlavne do CPU, aby sa zabezpečila činnosť programu.

Nízkofrekvenčný hodinový signál je dodávaný hlavne do periférnych zariadení na čipe, ako sú napríklad watchdog a časovač vypnutia.

image.png

image.png

按键IO口接线(按键是接在底板上的)

image.png

image.png

Zapojenie LED svetla (LED je pripojená k spodnej doske)

image.png

image.png

Kapitola 2 Konfigurácia výstupného režimu

image.png

image.png

image.png

image.png

image.png

Kapitola 3 Príklad kódu konfigurácie LED svetla

Príklad kódu:

#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();           
    }
}

Funkcia skoku softvéru IAR

image.png

image.png

Kapitola 4 Generovanie funkcie oneskorenia

Poznámka: Predvolený interný kryštálový oscilátor je 16 MHz .

image.png

Kapitola 5 Hodiny CC2530 Úvod

Zavedenie hodinového signálu: Za normálnych okolností potrebuje CC250 vysokofrekvenčný hodinový signál a nízkofrekvenčný hodinový signál. Medzi nimi sa vysokofrekvenčný hodinový signál dodáva hlavne do CPU, aby sa zabezpečila prevádzka programu, zatiaľ čo nízkofrekvenčný hodinový signál sa dodáva hlavne do periférnych zariadení na čipe, ako je watchdog a časovač vypnutia. Vysokofrekvenčný hodinový signál má dva zdroje: 16M RC obvod vo vnútri čipu a druhý je externý 32M kremenný kryštálový oscilátor. Informácia o nízkofrekvenčných hodinách má tiež dva zdroje: jedným je 32K RC obvod vo vnútri čipu, a druhý je externý 32,768K Opatrenia pre kryštálový oscilátor: 1. Keď je čip CC2530 štandardne zapnutý, dva interné RC obvody sa používajú ako vysokofrekvenčné a nízkofrekvenčné zdroje hodín. 2. Keď používate sériový port a bezdrôtovú komunikáciu, musíte použiť 32M kryštálový kryštálový oscilátor ako zdroj vysokofrekvenčných hodín. Vlastnosti vysokofrekvenčných zdrojov hodín: Dva vysokofrekvenčné hodinové zdroje môžu začať generovať vysokofrekvenčné hodinové signály súčasne, zatiaľ čo dva nízkofrekvenčné hodinové zdroje môžu mať iba jeden hodinový zdroj, ktorý začne oscilovať v určitom čase, a tento zdroj hodín sa dodáva k CC2530. Kroky na prepnutie zdroja vysokofrekvenčných hodín systému: 1. Nechajte dva zdroje vysokofrekvenčných hodín začať oscilovať 2. Počkajte, kým cieľový zdroj hodín začne oscilovať a stabilizuje sa 3. Oneskorte krátky časový úsek 63us 4. Výstup bez frekvenčného delenia 5. Vyberte cieľový zdroj vysokofrekvenčných hodín Ako hlavné hodiny systému 6 potvrďte, či aktuálne pracovné systémové hodiny sú zvolené vysokofrekvenčné hodiny, register zahŕňa: SLEEPCMD SLEEPSTA CLKCONCMD CLKCONSTA podrobná obsluha: 7 , nech je druhý bit SLEEPCMD 0 8, šiesty bit registra SLEEPPSIA Bit 1 znamená, že zdroj hodín je stabilný 9, oneskorenie nad 63us 10, žiadny výstup frekvenčného delenia: nastavte tretí bit registra CLKCONCMD na 000 11, vymazať šiesty bit registra CLKCONCMD na 0, nastavte 32M ako hlavné hodiny systému 12, šiesty bit čítacieho registra CLKCONSTA je 0, čo naznačuje, že aktuálny 32M hodinový zdroj bol použitý ako hlavné hodiny aktuálneho systému a program môže bežať smerom nadol

1. Zavedenie režimu nízkej spotreby

Nízka spotreba energie je funkcia, ktorú je potrebné zvážiť pri prenosných a spotrebných zariadeniach, najmä pri zariadeniach napájaných z batérie. Veľmi dôležité je pochopiť spotrebu energie, ktorá priamo ovplyvňuje pohotovostný čas. Napríklad: naše súčasné mobilné telefóny, tablety, firemné notebooky, bezdrôtové náhlavné súpravy a iné spotrebiteľské zariadenia, ako aj inteligentné poklopy, inteligentné pouličné osvetlenie a tieto zariadenia internetu vecí, ktoré nie sú zapojené do elektrickej siete.

CC2530 podporuje konfiguráciu režimu nízkej spotreby energie, ktorú je možné nakonfigurovať úvodom kapitoly registra napájania. Konfigurácia niekoľkých režimov nízkej spotreby CC2530 je predstavená nižšie. Snímka obrazovky pochádza z čínskeho údajového listu CC2530.

2. Nakonfigurujte režim nízkej spotreby energie

Prevádzka s nízkou spotrebou energie je povolená prostredníctvom rôznych prevádzkových režimov (režimy výkonu). Rôzne prevádzkové režimy sa označujú ako aktívny režim, režim nečinnosti a napájanie.

Režimy 1, 2 a 3 (PM1-PM3). Prevádzka s mimoriadne nízkou spotrebou energie sa dosiahne vypnutím napájacích blokov, aby sa predišlo statickej (únikovej) spotrebe energie, a použitím hodinového hradlovania a vypnutím oscilátorov na zníženie dynamickej spotreby energie.

image.png

image.png

image.png

image.png

3. Príklad kódu

3.1 Vzorový kód 1

/******************************************************************************
利用睡眠定时器,实现低功耗
******************************************************************************/
#include <ioCC2530.h>

#define uint unsigned int
#define uchar unsigned char
#define CC2530_Delay 15000

#define RLED P1_0
#define YLED P1_1       //LED灯控制IO口定义

void CC2530_Delay(void);
void CC2530_Init_IO_AND_LED(void);
void CC2530_SysPowerMode(uchar sel);

/****************************************************************
    延时函数	
****************************************************************/
void CC2530_Delay(void)
{
	uint i;
	for(i = 0;i<CC2530_Delay;i++);
	for(i = 0;i<CC2530_Delay;i++);
	for(i = 0;i<CC2530_Delay;i++);
	for(i = 0;i<CC2530_Delay;i++);
	for(i = 0;i<CC2530_Delay;i++);
}

/****************************************************************
系统工作模式选择函数											
* para1  0 	1	2	3									
* mode 	PM0	PM1	PM2	PM3													
****************************************************************/
void CC2530_SysPowerMode(uchar mode)
{
	uchar i,j;
	i = mode;
	if(mode<4)
	{
		SLEEPCMD &= 0xFC;     
		SLEEPCMD |= i;       //设置系统睡眠模式
		for(j=0;j<4;j++);
		PCON = 0x01;         //进入睡眠模式
	 }
	else
	{
	    PCON = 0x00;             //系统唤醒
	 }
}

/****************************************************************
      LED控制IO口初始化函数			
****************************************************************/
void CC2530_Init_IO_AND_LED(void)
{
    P1DIR = 0X03;
    RLED = 0;
    YLED = 0;
    //P0SEL &= ~0X32;
    //P0DIR &= ~0X32;
    P0INP  &= ~0X32;   //设置P0口输入电路模式为上拉/下拉
    P2INP &= ~0X20;    //选择上拉
    P0IEN |= 0X32;     //P01设置为中断方式
    PICTL |= 0X01;     //下降沿触发
    EA = 1;
    IEN1 |= 0X20;      // 开P0口总中断
    P0IFG |= 0x00;     //清中断标志
};
/****************************************************************
    主函数	
****************************************************************/
void main()
{
	uchar count = 0;
	CC2530_Init_IO_AND_LED();
	RLED = 1 ;       //开红色LED,系统工作指示
	CC2530_Delay();         //延时	
	while(1)
	{
		YLED = !YLED;
		RLED = 1;
		count++;
		if(count >= 20)
		{
			count = 0;     
			RLED = 0;
			CC2530_SysPowerMode(3);
			//10次闪烁后进入睡眠状态PM3
		}
		//CC2530_Delay();
		CC2530_Delay();
		//延时函数无形参,只能通过改变系统时钟频率或DEALY的宏定义
		//来改变小灯的闪烁频率
	};
}
/*****************************************
    中断处理函数-系统唤醒
*****************************************/
#pragma vector = P0INT_VECTOR
 __interrupt void P0_ISR(void)
 {
	if(P0IFG>0)
	{
		P0IFG = 0;
	}
	P0IF = 0;
	CC2530_SysPowerMode(4);
 }

3.2 Vzorový kód 2

/******************************************************************************
利用睡眠定时器实现低功耗
******************************************************************************/
#include <ioCC2530.h>

/*****************************************
//定义类型
*****************************************/
#define uchar unsigned char
#define uint unsigned int

#define RLED P1_0
#define GLED P1_1
#define CRYSTAL 0
#define RC 1

typedef unsigned char       UINT8;
typedef unsigned char       INT8U;
typedef unsigned short      UINT16;
typedef unsigned short      INT16U;
typedef unsigned long       UINT32;
typedef unsigned long       INT32U;

void CC2530_Set_ST_Period(uint sec);
void CC2530_Init_SLEEP_TIMER(void);
void CC2530_Delay(uint n);
void CC2530_LedGlint(void);

char LEDBLINK;

void CC2530_InitLEDIO(void)
{
    P1DIR |= 0x03;  //P10、P11定义为输出
    RLED = 0;
    GLED = 0;//LED灯初始化为关   
}

/*****************************************
设定系统主时钟函数
*****************************************/
void  SET_MAIN_CLOCK(source) 
{                                  
	if(source)
	{                            
		CLKCONCMD |= 0x40;          /*RC*/               
		while(!(CLKCONSTA &0X40));  /*待稳*/       
	}                                       
	else
	{                       
		CLKCONCMD &= ~0x47;        /*晶振*/             
		while((CLKCONSTA &0X40));  /*待稳*/  
	}                                       
}

/*****************************************
设定系统低速时钟函数
*****************************************/
void SET_LOW_CLOCK(source)                                
{                                                   
	(source==RC)?(CLKCONCMD |= 0X80):(CLKCONCMD &= ~0X80); 
}

/*********************************************************************
//主函数
*********************************************************************/
void main(void)
{
  SET_MAIN_CLOCK(CRYSTAL);
  SET_LOW_CLOCK(CRYSTAL);
  CC2530_InitLEDIO();
  LEDBLINK = 0;
  RLED = 1;
  GLED = 0;
  CC2530_Init_SLEEP_TIMER();
  CC2530_LedGlint();
  CC2530_Set_ST_Period(8);
  while(1)
  {
    if(LEDBLINK)
    {
      CC2530_LedGlint();
      CC2530_Set_ST_Period(8);
      GLED = !GLED;
      LEDBLINK = 0;
    }
    CC2530_Delay(100);
  }
}

/*****************************************
//初始化Sleep Timer
*****************************************/
void CC2530_Init_SLEEP_TIMER(void)
{
  ST2 = 0X00;
  ST1 = 0X0F;
  ST0 = 0X0F;
  EA = 1;  //开中断
  STIE = 1;
  STIF = 0;
}
/*****************************************
//延时函数
*****************************************/
void CC2530_Delay(uint n)
{
  uint jj;
  for(jj=0;jj<n;jj++);
  for(jj=0;jj<n;jj++);
  for(jj=0;jj<n;jj++);
  for(jj=0;jj<n;jj++);
  for(jj=0;jj<n;jj++);
}

/*****************************************
//LED闪烁函数
*****************************************/
void CC2530_LedGlint(void)
{
  uchar jj=10;
  while(jj--)
  {
    RLED = !RLED;
    CC2530_Delay(10000);
  }
}
/*********************************************************************
//设置睡眠时间
*********************************************************************/
void CC2530_Set_ST_Period(uint sec)
{
   UINT32 sleepTimer = 0;

   sleepTimer |= ST0;
   sleepTimer |= (UINT32)ST1 <<  8;
   sleepTimer |= (UINT32)ST2 << 16;

   sleepTimer += ((UINT32)sec * (UINT32)32768);

   ST2 = (UINT8)(sleepTimer >> 16);
   ST1 = (UINT8)(sleepTimer >> 8);
   ST0 = (UINT8) sleepTimer;
}

#pragma vector = ST_VECTOR
__interrupt void ST_ISR(void)
{
	STIF = 0;
	LEDBLINK = 1;
}

 

 

 

 

Ďalšie informácie

Hmotnosť 2,23 g
Rozmery 28 × 16 × 2 mm