2.4G串口spi WiFi模块

合集下载

24L01模块说明

24L01模块说明

24L01微功率2.4G高速无线收发模块简介一.24L01模块简介★ 2.4G全球开放ISM频段,最大0dBm发射功率。

★ 支持2M的高速数据传输,减少发射时间,降低平均功耗。

★ 125个频点,满足多点通信和跳频通信需要★ 内置2.4G天线,体积小巧,15X34mm 方便集成使用★ 当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了平均功耗。

★ 集成了所有与RF协议相关的高速信号处理部分,如:自动重发丢失数据包和自动产生应答信号等,SPI接口可以利用单片机的硬件SPI口连接或用单片机的I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。

★ 由于链路层完全集成在模块上,非常便于开发。

★ 自动重发功能,自动检查和重发丢失的数据包,重发时间及重发次数可软件控制★ 自动存储未收到的应答信号的数据包★ 自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程★ 内置硬件CRC检错和点对多点通信地址控制★ 数据包传输错误计数器及载波检测功能可用于跳频设置★ 可同时设置六路接收通道地址,可选择性的打开接收通道★ 标准的2.54mmDIP间距接口,便于嵌入式应用。

★ 提供参考源代码,应用原理图等详细资料,上手快,缩短您的开发时间二.24L01模块的应用1、智能家庭、家居应用和无线传感、安全系统;2、控制处理、无线数据连接、遥测、小型无线网络;3、车辆监控、防盗;机器人控制,飞思卡尔智能车控制4、无线抄表、门禁系统、小区传呼;5、工业数据采集系统、生物信号采集、水文气象监控等;三.24L01模块的技术指标产品型号 24L01工作频率 2400-2525M调制方式 GFSK发射功率 0dBm接收灵敏度 -85dBm@1M -82dBm@2M 工作电压 1.9---3.6V谐波1st<-20dBc ; 2nd<-50dB杂散 <-60dBm发射电流 11 mA @0dBm接收电流 12.3mA用户接口方式 SPI工作温度 -30℃~70℃工作湿度 10%~90%相对湿度,无冷凝外形尺寸 15mm×34mm参考距离 开阔地最远80米四.24L01端口定义及连接示意图1、端口定义2、连接示意图3、SPI接口SPI 接口由SCK , MISO , MOSI及CSN组成在待机或掉电模式下,单片机通过SPI接口配置模块的工作参数,在发射或接收模式下,单片机通过SPI接口发送或接收数据,中断接口IRQ可提供如下几种中断输出(可选): 数据发射结束TX_DS,数据接收就绪TX_DR,重发此时达到最大MAX_RF具体模块的SPI配置参数及工作时序请参考NORDIC的官方文件。

2.4g 模块工作原理

2.4g 模块工作原理

2.4g模块工作原理
2.4G无线模块是一种基于IEEE 802.15.4标准的无线通信模块,它采用射频技术实现无线通信,其工作原理可以简单概括为以下几个步骤:
1.发射信号:当需要发送数据时,
2.4G无线模块会将数字信号转换为模拟信号,并经过调制后通过天线以电磁波的形式发射出去。

2.接收信号:接收端的天线接收到发射端发出的电磁波后,将其转换为模拟信号,并经过解调和数字信号处理后还原成原始的数字信号。

3.数据传输:2.4G无线模块通过点对点或点对多点的方式进行数据传输,可以实现高速数据通信和低功耗传输。

4.安全加密:为了保证数据的安全性,2.4G无线模块支持多种加密算法,如AES、DES等,可以对数据进行加密和解密处理,防止数据被非法窃取和篡改。

总之,2.4G无线模块的工作原理基于射频技术,通过电磁波进行数据传输,具有高速、低功耗、安全可靠等优点,广泛应用于物联网、智能家居、远程控制等领域。

wifi模块的参数

wifi模块的参数

wifi模块的参数WiFi模块通常具有许多参数,下面我将介绍一些常见的参数及其功能。

1.类型:常见的WiFi模块类型包括标准(如802.11b/g/n/ac)和低功耗类型(如WiFi BLE)。

标准类型用于传输大量数据,而低功耗类型适用于需要长时间待机的应用。

2.频率:WiFi模块可以工作在2.4GHz和5GHz两种频率上。

2.4GHz适用于长距离传输,但在拥挤的环境中可能存在干扰。

5GHz频率具有更高的速度和较少的干扰,但传输距离相对较短。

3.速率:WiFi模块的速率指的是数据传输的速度。

常见的速率有11Mbps、54Mbps、300Mbps和600Mbps等。

速率越高,传输的数据量越大。

4.功率:WiFi模块的功率表示其发送信号的强度。

功率越高,信号范围越远,但同时也会消耗更多的电力。

5.安全性:WiFi模块通常具有不同的安全认证机制,如WEP、WPA和WPA2等。

这些机制可以提供加密和身份验证功能,保护网络免受未经授权的访问。

6.接口:WiFi模块通常提供不同类型的接口,例如UART、SPI和I2C等。

这些接口可以用于与主控芯片或其他外设进行通信。

7.天线:WiFi模块通常配备天线,用于发送和接收信号。

天线的类型包括片状天线、陶瓷天线和外置天线等。

天线的选择取决于应用环境和设备设计要求。

8.尺寸:WiFi模块的尺寸通常以PCB尺寸表示,例如15mm x15mm或25mm x 25mm。

模块的尺寸会影响其在设备中的布局和集成难度。

9.距离:WiFi模块的传输距离与功率、天线和环境等因素有关。

通常,WiFi模块可以在几十米的范围内实现数据传输。

10.兼容性:WiFi模块通常与其他设备和网络兼容,可以与路由器、手机、计算机和其他IoT设备等进行通信。

11.稳定性:WiFi模块的稳定性是指其在各种环境条件下的工作性能。

这包括信号干扰、温度变化和电磁辐射等因素的影响。

12.芯片供应商:WiFi模块的芯片供应商通常是一个重要的考虑因素。

W600 2.4GHz 贴片 低成本 远距离 外置天线 WIFI模块E103-W05B使用教程

W600 2.4GHz 贴片 低成本 远距离 外置天线 WIFI模块E103-W05B使用教程

E103-W05B用户手册W600 2.4GHz贴片低成本远距离外置天线WIFI模块目录第一章概述 (2)1.1简介 (2)1.2特点功能 (2)1.3应用场景 (2)第二章规格参数 (3)2.1极限参数 (3)2.2工作参数 (3)第三章机械尺寸与引脚定义 (4)第四章基本操作 (5)4.1硬件设计 (5)4.2软件编写 (5)第五章基本应用 (6)5.1基本电路 (6)5.2基本用法 (6)第六章快速入门 (7)6.1配置前的准备 (7)6.2模块工作在AP下的TCP Server的应用 (7)6.3模块工作在STA下的TCP Client的应用 (11)6.3一键配网(AIRKISS)的使用 (14)6.4GPIO的配置 (15)6.5串口波特率的设置 (17)第七章常见问题 (17)7.1传输距离不理想 (17)7.2模块易损坏 (18)7.3注意事项 (18)第八章焊接作业指导 (20)8.1回流焊温度 (20)8.2回流焊曲线图 (20)第九章相关型号 (21)第十章天线指南 (21)10.1天线推荐....................................................................................................................错误!未定义书签。

10.2天线选择 (22)修订历史 (22)关于我们......................................................................................................................................错误!未定义书签。

第一章概述1.1简介E103-W05B为E103-W05系列下的直插式模组(为了下文阐述方便,以下统称E103-W05或W05),该模组产品是一款低成本,高性价比的100mW(20dBm)wifi数传模块,模块体积小,板载IPEX天线接口,工作在2.4~2.483GHz频段,功耗低,数据流传输快,模块可使用串口进行数据收发以及AT指令相关参数设置,其次,E103-W05AT指令大部分兼容E103-W01模块,使得无论是老用户还是新用户均使用方便,上手快,是物联网中不错的数传伙伴。

2.4G无线数传模块电路

2.4G无线数传模块电路

2.4G无线数传模块电路2.4G无线模块概述2.4G无线模块(英文:2.4Ghz RF transceiver ,receiver module)工作在全球免申请ISM频道2400M-2483M范围内,实现开机自动扫频功能,共有50个工作信道,可以同时供50个用户在同一场合同时工作,无需使用者人工协调、配置信道。

同时,可以根据成本考虑,选择50米内、150米、600 米多种类型无线模块。

接收单元和遥控器单元具有1键自动对码功能,数字地址编码,容量大,避免地址重复。

VT-CC2510-M1 无线模块采用TI chipcon高性能无线SOC芯片CC2510开发。

是一种完整的低成本、高度集成2.4GHz收发器,专为低功耗无线应用设计。

基本特点·高性能和低功耗的8051微控制器核·2400-2483.5MHz 低成本低功耗无线收发模块·SMD元件24mm×29mm×2.2 mm,内置PCB天线,体积小·支持2-FSK/GFSK/MSK·可编程控制的输出功率,对所有的支持频段可达+1dBm·可灵活配置多种通讯信道,快速频点切换特点,可满足跳频系统的需要·可编程配置传输数率1.2k - 500 kbps·低功耗3.3V 供电·RSSI输出和载波侦听指示几种2.4G无线数传模块介绍无线数传按传输速率区分,分为低速数传模块和高速数传模块两大类,低速数传模块使用的载频均较低,一般都在315MHz,433MHz和915MHz这几个频段,所以一般最高传输速率均不大于150kB/s。

但这些使用在UHF频段无线设备,载波仍具有一定的穿透和绕射能力,传送距离相对较远,最大可达数百米,这是它的优势,但同时也有其固存的缺点,因为工作频率低,工业干扰大,同时大量的汽车无线遥控(锁)均使用这个频段,干扰相对严重,这在技术上严。

SPI方式STM32F103与2.4G模块NRF24L01收发通讯

SPI方式STM32F103与2.4G模块NRF24L01收发通讯

1.简介通过SPI方式与NRF24L01模块进行通讯,接收到的数据通过串口1打印出来,实时监测是否收到数据,发送的数据是“2.4G TEST”,当收不到数据时打印“no data”。

一块STM32F103ZET6开发板接收数据,另一块STM32F103RBT6开发板发送数据,两个淘宝买的2.4G NRF24L01模块。

还用到一块USB转TTL模块用来电平转换传送数据,串口调试助手接收串口发送数据。

2.代码部分---------nrf24l01.h-----------#ifndef __24L01_H#define __24L01_H#include "sys.h"/////////////////////////////////////////////////////////////////////////////// /////////////////////////////NRF24L01寄存器操作命令#define NRF_READ_REG 0x00 //读配置寄存器,低5位为寄存器地址#define NRF_WRITE_REG 0x20 //写配置寄存器,低5位为寄存器地址#define RD_RX_PLOAD 0x61 //读RX有效数据,1~32字节#define WR_TX_PLOAD 0xA0 //写TX有效数据,1~32字节#define FLUSH_TX 0xE1 //清除TX FIFO寄存器.发射模式下用#define FLUSH_RX 0xE2 //清除RX FIFO寄存器.接收模式下用#define REUSE_TX_PL 0xE3 //重新使用上一包数据,CE为高,数据包被不断发送.#define NOP 0xFF //空操作,可以用来读状态寄存器//SPI(NRF24L01)寄存器地址#define CONFIG 0x00 //配置寄存器地址;bit0:1接收模式,0发射模式;bit1:电选择;bit2:CRC模式;bit3:CRC使能;//bit4:中断MAX_RT(达到最大重发次数中断)使能;bit5:中断TX_DS使能;bit6:中断RX_DR使能#define EN_AA 0x01 //使能自动应答功能 bit0~5,对应通道0~5#define EN_RXADDR 0x02 //接收地址允许,bit0~5,对应通道0~5#define SETUP_AW 0x03 //设置地址宽度(所有数据通道):bit1,0:00,3字节;01,4字节;02,5字节;#define SETUP_RETR 0x04 //建立自动重发;bit3:0,自动重发计数器;bit7:4,自动重发延时 250*x+86us#define RF_CH 0x05 //RF通道,bit6:0,工作通道频率;#define RF_SETUP 0x06 //RF寄存器;bit3:传输速率(0:1Mbps,1:2Mbps);bit2:1,发射功率;bit0:低噪声放大器增益#define STATUS 0x07 //状态寄存器;bit0:TX FIFO满标志;bit3:1,接收数据通道号(最大:6);bit4,达到最多次重发//bit5:数据发送完成中断;bit6:接收数据中断;#define MAX_TX 0x10 //达到最大发送次数中断#define TX_OK 0x20 //TX发送完成中断#define RX_OK 0x40 //接收到数据中断#define OBSERVE_TX 0x08 //发送检测寄存器,bit7:4,数据包丢失计数器;bit3:0,重发计数器#define CD 0x09 //载波检测寄存器,bit0,载波检测;#define RX_ADDR_P0 0x0A //数据通道0接收地址,最大长度5个字节,低字节在前#define RX_ADDR_P1 0x0B //数据通道1接收地址,最大长度5个字节,低字节在前#define RX_ADDR_P2 0x0C //数据通道2接收地址,最低字节可设置,高字节,必须同RX_ADDR_P1[39:8]相等;#define RX_ADDR_P3 0x0D //数据通道3接收地址,最低字节可设置,高字节,必须同RX_ADDR_P1[39:8]相等;#define RX_ADDR_P4 0x0E //数据通道4接收地址,最低字节可设置,高字节,必须同RX_ADDR_P1[39:8]相等;#define RX_ADDR_P5 0x0F //数据通道5接收地址,最低字节可设置,高字节,必须同RX_ADDR_P1[39:8]相等;#define TX_ADDR 0x10 //发送地址(低字节在前),ShockBurstTM模式下,RX_ADDR_P0与此地址相等#define RX_PW_P0 0x11 //接收数据通道0有效数据宽度(1~32字节),设置为0则非法#define RX_PW_P1 0x12 //接收数据通道1有效数据宽度(1~32字节),设置为0则非法#define RX_PW_P2 0x13 //接收数据通道2有效数据宽度(1~32字节),设置为0则非法#define RX_PW_P3 0x14 //接收数据通道3有效数据宽度(1~32字节),设置为0则非法#define RX_PW_P4 0x15 //接收数据通道4有效数据宽度(1~32字节),设置为0则非法#define RX_PW_P5 0x16 //接收数据通道5有效数据宽度(1~32字节),设置为0则非法#define NRF_FIFO_STATUS 0x17 //FIFO状态寄存器;bit0,RX FIFO寄存器空标志;bit1,RXFIFO满标志;bit2,3,保留//bit4,TX FIFO空标志;bit5,TX FIFO满标志;bit6,1,循环发送上一数据包.0,不循环;////////////////////////////////////////////////////////////////////////////////////////////////////////////24L01操作线#define NRF24L01_CE_High GPIO_SetBits(GPIOB,GPIO_Pin_4) //24l01片选#define NRF24L01_CE_Low GPIO_ResetBits(GPIOB,GPIO_Pin_4) //24L01片选信号#define NRF24L01_CSN_High GPIO_SetBits(GPIOB,GPIO_Pin_5) //SPI片选信号#define NRF24L01_CSN_Low GPIO_ResetBits(GPIOB,GPIO_Pin_5)#define NRF24L01_IRQ GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6) //IRQ主机数据输入//24L01发送接收数据宽度定义#define TX_ADR_WIDTH 5 //5字节的地址宽度#define RX_ADR_WIDTH 5 //5字节的地址宽度#define TX_PLOAD_WIDTH 32 //32字节的用户数据宽度#define RX_PLOAD_WIDTH 32 //32字节的用户数据宽度void NRF24L01_Init(void); //初始化void NRF24L01_RX_Mode(void); //配置为接收模式void NRF24L01_TX_Mode(void); //配置为发送模式u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 u8s);//写数据区u8 NRF24L01_Read_Buf(u8 reg, u8 *pBuf, u8 u8s); //读数据区u8 NRF24L01_Read_Reg(u8 reg); //读寄存器u8 NRF24L01_Write_Reg(u8 reg, u8 value); //写寄存器u8 NRF24L01_Check(void); //检查24L01是否存在u8 NRF24L01_TxPacket(u8 *txbuf); //发送一个包的数据u8 NRF24L01_RxPacket(u8 *rxbuf); //接收一个包的数据#endif-----------nrf24l01.c----------------#include "24l01.h"#include "delay.h"#include "usart.h"///////////////////////////////////////////////////////////////////////////////const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//初始化24L01的IO口void NRF24L01_Init(void){GPIO_InitTypeDef GPIO_InitStructure;SPI_InitTypeDef SPI_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );//PORTB时钟使能RCC_APB1PeriphClockCmd( RCC_APB1Periph_SPI2, ENABLE );//SPI2时钟使能GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //PB13/14/15复用推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOBGPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15); //PB13/14/15上拉SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //设置SPI 单向或者双向的数据模式:SPI设置为双线双向全双工SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //设置SPI工作模式:设置为主SPISPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //设置SPI的数据大小:SPI发送接收8位帧结构SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //串行同步时钟的空闲状态为高电平SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //串行同步时钟的第二个跳变沿(上升或下降)数据被采样SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //指定数据传输从MSB位还是LSB位开始:数据传输从MSB位开始SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC值计算的多项式SPI_Init(SPI2, &SPI_InitStructure); //根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器//使能SPI外设GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4|GPIO_Pin_5; //PB12上拉防止W25X的干扰GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PG6 输入GPIO_Init(GPIOB, &GPIO_InitStructure);//使能SPI外设SPI_Cmd(SPI2, ENABLE);NRF24L01_CE_Low; //使能24L01NRF24L01_CSN_High; //SPI片选取消}//SPIx 读写一个字节//TxData:要写入的字节//返回值:读取到的字节u8 SPI2_ReadWriteByte(u8 TxData){while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET); //检查指定的SPI标志位设置与否:发送缓存空标志位SPI_I2S_SendData(SPI2, TxData); //通过外设SPIx发送一个数据delay_us(2);while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);//检查指定的SPI标志位设置与否:接受缓存非空标志位return SPI_I2S_ReceiveData(SPI2); //返回通过SPIx最近接收的数据delay_us(2);}//检测24L01是否存在//返回值:0,成功;1,失败u8 NRF24L01_Check(void){u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};u8 i;//SPI2_SetSpeed(SPI_BaudRatePrescaler_4); //spi速度为9Mhz(24L01的最大SPI 时钟为10Mhz)NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//写入5个字节的地址.NRF24L01_Read_Buf(TX_ADDR,buf,5); //读出写入的地址for(i=0;i<5;i++)if(buf[i]!=0XA5)break;if(i!=5)return 1;//检测24L01错误return 0; //检测到24L01}//SPI写寄存器//reg:指定寄存器地址//value:写入的值u8 NRF24L01_Write_Reg(u8 reg,u8 value){u8 status;NRF24L01_CSN_Low; //使能SPI传输status =SPI2_ReadWriteByte(reg);//发送寄存器号SPI2_ReadWriteByte(value); //写入寄存器的值NRF24L01_CSN_High; //禁止SPI传输return(status); //返回状态值}//读取SPI寄存器值//reg:要读的寄存器u8 NRF24L01_Read_Reg(u8 reg){u8 reg_val;NRF24L01_CSN_Low; //使能SPI传输SPI2_ReadWriteByte(reg); //发送寄存器号reg_val=SPI2_ReadWriteByte(0XFF);//读取寄存器内容NRF24L01_CSN_High; //禁止SPI传输return(reg_val); //返回状态值}//在指定位置读出指定长度的数据//reg:寄存器(位置)//*pBuf:数据指针//len:数据长度//返回值,此次读到的状态寄存器值u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len){u8 status,u8_ctr;NRF24L01_CSN_Low; //使能SPI传输status=SPI2_ReadWriteByte(reg);//发送寄存器值(位置),并读取状态值for(u8_ctr=0;u8_ctr<len;u8_ctr++)pBuf[u8_ctr]=SPI2_ReadWriteByte(0XFF);//读出数据NRF24L01_CSN_High; //关闭SPI传输return status; //返回读到的状态值}//在指定位置写指定长度的数据//reg:寄存器(位置)//*pBuf:数据指针//len:数据长度//返回值,此次读到的状态寄存器值u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len){u8 status,u8_ctr;NRF24L01_CSN_Low; //使能SPI传输status = SPI2_ReadWriteByte(reg);//发送寄存器值(位置),并读取状态值for(u8_ctr=0; u8_ctr<len; u8_ctr++)SPI2_ReadWriteByte(*pBuf++); //写入数据NRF24L01_CSN_High; //关闭SPI传输return status; //返回读到的状态值}//启动NRF24L01发送一次数据//txbuf:待发送数据首地址//返回值:发送完成状况u8 NRF24L01_TxPacket(u8 *txbuf){u8 sta;// SPI2_SetSpeed(SPI_BaudRatePrescaler_8);//spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)NRF24L01_CE_Low;NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//写数据到TX BUF 32个字节NRF24L01_CE_High;//启动发送//while(NRF24L01_IRQ!=0);//等待发送完成sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志if(sta&MAX_TX)//达到最大重发次数{NRF24L01_Write_Reg(FLUSH_TX,0xff);//清除TX FIFO寄存器return MAX_TX;}if(sta&TX_OK)//发送完成{return TX_OK;}return 0xff;//其他原因发送失败}//启动NRF24L01发送一次数据//txbuf:待发送数据首地址//返回值:0,接收完成;其他,错误代码u8 NRF24L01_RxPacket(u8 *rxbuf){u8 sta;//SPI2_SetSpeed(SPI_BaudRatePrescaler_8); //spi速度为9Mhz(24L01的最大SPI 时钟为10Mhz)sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志if(sta&RX_OK)//接收到数据{NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器return 0;}return 1;//没收到任何数据}//该函数初始化NRF24L01到RX模式//设置RX地址,写RX数据宽度,选择RF频道,波特率和LNA HCURR//当CE变高后,即进入RX模式,并可以接收数据了void NRF24L01_RX_Mode(void){NRF24L01_CE_Low;NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);/ /写RX节点地址NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x01); //使能通道0的自动应答NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01);//使能通道0的接收地址NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40); //设置RF通信频率NRF24L01_Write_Reg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0f);//配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式NRF24L01_CE_High; //CE为高,进入接收模式}//该函数初始化NRF24L01到TX模式//设置TX地址,写TX数据宽度,设置RX自动应答的地址,填充TX发送数据,选择RF频道,波特率和LNA HCURR//PWR_UP,CRC使能//当CE变高后,即进入RX模式,并可以接收数据了//CE为高大于10us,则启动发送.void NRF24L01_TX_Mode(void){NRF24L01_CE_Low;NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//写TX节点地址NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //设置TX节点地址,主要为了使能ACKNRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x01); //使能通道0的自动应答NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01); //使能通道0的接收地址NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40); //设置RF通道为40NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f); //设置TX发射参数,0db增益,2Mbps,低噪声增益开启NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x0e); //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断NRF24L01_CE_High;//CE为高,10us后启动发送}-------usart.h----------#ifndef __USART_H#define __USART_H#include "stdio.h"#include "sys.h"/////////////////////////////////////////////////////////////////////////////// void uart_init(u32 bound);void usart1_send_string(u8 *BuffToSend);#endif---------usart.c---------------#include "sys.h"#include "usart.h"/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// void uart_init(u32 bound){//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);//使能USART1,GPIOA时钟//USART1_TX GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9//USART1_RX GPIOA.10初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10//Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器//USART 初始化设置USART_ART_BaudRate = bound;//串口波特率USART_ART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_ART_StopBits = USART_StopBits_1;//一个停止位USART_ART_Parity = USART_Parity_No;//无奇偶校验位USART_ART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式USART_Init(USART1, &USART_InitStructure); //初始化串口1USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART1, ENABLE); //使能串口1}//打印字符串void usart1_send_string(u8 *BuffToSend){u8 i=0;while(BuffToSend[i]!='\0'){USART_SendData(USART1, BuffToSend[i]);while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);i++;}}收发主函数是分开写的,因为用的不同的芯片。

2.4G双向收发模块NRF24L01

2.4G双向收发模块NRF24L01

2.4G双向收发模块NRF24L01⼀、简介WLC-24L01基于Nordic Semiconductor的nRF24L01⽆线收发芯⽚,是⼀款体积⼩巧的、低功耗、远距离的⽆线收发模块。

nRF24L01是Nordic推出的ISM频段⽆线收发芯⽚之⼀,频率设定为2.4G频段,灵敏度最佳可达到-94dBm@250Kbps,最⾼传输速率达2Mbps,输出功率通过寄存器配置可达到+4dBm。

模块集成了所有射频相关功能和器件,⽤户只需要通过SPI接⼝进⾏简单的寄存器配置,即可以实现通信,缩短了⽤户⽆线产品开发的周期。

nRF24L01是⼀款新型单⽚射频收发器件:⼯作于2.4GHz~2.5GHz ISM频段。

内置频率合成器、功率放⼤器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进⾏配置。

NRF24L01功耗低:在以-6dBm的功率发射时,⼯作电流也只有9mA;接收时,⼯作电流只有12.3mA,多种低功率⼯作模式(掉电模式和空闲模式)使节能设计更⽅便。

⼆、基本特性●SHUTDOWN模式下,低电流损耗●⽅便投⼊应⽤●⼯作温度范围:﹣40℃~+85℃●⼯作电压:1.8~3.6Volts●有效频率:2.400G~2.525G●通信速率250K~2Mbps,可编程配置●3通道独⽴的32字节RX FIFO与TX FIFO●最多⽀持125个信号通道,可实现跳频通信●数字RSSI●⾃动频率校正(AFC)三、模块尺⼨图正视图侧视图斜⾓⽴体图四、应⽤范围●极低功耗UHF⽆线接收器●家⽤⽆线设备控制●⼯业仪器仪表⽆线数据采集和控制●AMR(⽔、电、煤⽓)三表抄表●建筑物与住宅(智能家居)控制●电⼦消费类产品⽆线遥控●⽆线报警与安全系统●⽆线传感器⽹络中控系统五、技术参数测试条件:Ta=25°C,VCC=3.3V技术指标参数备注⼯作电压直流 1.8~3.6V⼀般应⽤于3.0V或3.3V供电系统中中⼼频率2400MHz可配置寄存器到2400~2483MHz内频率误差±5KHz调制⽅式GFSK/2-FSK/MSK可通过配置寄存器实现不同的调制⽅式接收灵敏度-94dBm250kBaudRate发射电流<11.3mA@0dBm接收电流<13.5mA通过间歇式⼯作可实现200uA以内的平均⼯作电流休眠电流<1uA传输速率250K/1M/2M(bps)可通过配置寄存器实现不同的空中传输速率谐波功率<-35dBm最⼤0dBm输出时,⼆次谐波的功率通讯距离<50m ⽤WCL-nRF24L01作为发射器,GFSK调制⽅式,250kBaud 速率,0dBm发射天线阻抗50ohm⼯作温度-40~+85°C 存贮温度-55~+125°C外形尺⼨19mm×12mm×1.75mm引脚及详细尺⼨请以外形尺⼨图为准备注:1.模块的通信速率会影响通信距离,速率越⾼,通信距离越近,灵敏度越低。

AR9331芯片 2.4G无线WIFI模块用户手册

AR9331芯片 2.4G无线WIFI模块用户手册

产品名称密级LC930型WIFI模块用户手册公开产品版本共15页V100AR9331芯片2.4G无线WIFI模块用户手册V1.0拟制:JOHN日期:2013-04-22审核:日期:审核:日期:批准:日期:修订记录日期修订版本描述作者2013-8-4 1.0首次建立John深圳市灵卡技术科技有限公司版权所有侵权必究目录1概述(Introduction) (4)2特性列表(Feature List) (4)3指标性能列表 (5)4接口定义 (6)5外观尺寸 (9)6控制协议 (9)7应用电路 (9)AR9331芯片2.4G无线WIFI模块用户手册关键词:摘要:本文描述。

缩略语清单:对本文所用缩略语进行说明,要求提供每个缩略语的英文全名和中文解释Abbreviations缩略Full Spelling英文全拼Chinese Explanation中文解释ETHERNET以太网NTSC北美地区电视标准PAL中国大陆地区电视标准UART Universal Asynchronous通用异步接收/发送WiFi无线局域网络通信标准VGA图像分辨率640x480 QVGA图像分辨率320x240GPIO通用输入输出端口PWM脉冲宽度调制1概述(Introduction)LC930是深圳灵卡技术推出的低成本,较低功耗,高性能嵌入式WiFi模块。

采用高通AR9331一体化单芯片WIFI无线SOC解决方案.内部集成CPU,WIFI基带,PA,使产品体积显著减小。

LC930引出了众多功能接口,例如:串口,SPI主设备口,网口,USB口,I2S接口,GPIO口等,使得LC930可以广泛应用在无线数据传输,多媒体音视频传输,无线数据存储等应用场合。

LC930是一款基于高通Atheros ARA9331的芯片,8MB Flash,64MB DDR2的全新功能WIFI核心模块。

采用IEEE802.11n,1T1R最高可达150Mbps,具有1个USB2.0,1个高速UART串口,多个GPIO接口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 数据传输稳定可靠 · 具有TCP断线自动重连机制,保证数据传输链路稳定可靠 · 支持透传模式 · 适合于工业温度
3. 启动时间快速 · 模块从复位到网络建立时间小于3s
4. 快速连接 · 模块快速连接网络的时间小于0.5s
5. 超低功耗 · 超低功耗,休眠电流小于0.5uA · 动态电源控制
6. 支持多种网络协议 · HTTP client, TCP, UDP,DHCP, ARP, ICMP · Web server用于WIFI配置
楼宇自动化
消费与汽车电子
产品介绍
RAK410 E-link系列嵌入式WIFI模组
支持UART/SPI转WIFI在便携式产品领域的应用
RAK410系列WIFI模组可以帮助客户在低功耗传感网络和自动化控制 领域快速的加入WIFI功能,减少客户开发周期和加速产品上市时 间,是一款真正推进物联网全网覆盖的低成本嵌入式模块。
通过RAK410模组传统的低端串口设备或MCU控制的设备,可以很 方便的加入WIFI无线网络,从而实现物联网络控制。RAK410提供了 多种接口形式(SPI接口和UART接口),通过简单的AT命令即可跟主系 统8/16/32bit MCU 进行连接。您无需拥有射频经验,也无需投入大 额的测试费用和认证费,便可以畅享WIFI带来的快速接入。
产品介绍
RAK410
功能
支持标准 发射功率 接收灵敏度 天线选择 软件特性
物理特征 额定电压 电流消耗
开发工具
应用
规格详述
支持Wi-Fi ቤተ መጻሕፍቲ ባይዱ02.11 b/g/n标准
802.11b:+17dBm(@1Mbps) 802.11g:+17dBm(@6Mbps) 802.11n:+10dBm(@HT20,MCS7)
802.11b:-88dBm(@11Mbps,CCK) 802.11g:-75dBm(@54Mbps,OFDM) 802.11n:-72dBm(@HT20,MCS7)
集成天线 U.FL天线连接器
加密:WEP, WPA/WPA2 Personal 网络协议:UDP, TCP/IP (IPv4), DHCP, ARP, DNS, HTTP/HTTPS Client and Server 支持友好的界面配置 工作在STA/Ad-Hoc/SoftAP模式 支持AT命令
28.75mmx23.14mm 单面PCB
3.3V
峰值【持续发送】200mA 正常【WIFI:ON/OFF,DTIM:100mS】
- 平均:5mA,峰值200mA 深度休眠:【WIFI OFF】<0.5uA
评估套件EVK 软件开发套件SDK 完整文档包 应用程序调试工具
工业与监控
健康/医疗/健身
智能能源
天线类型 内置天线 外置天线 内置天线 外置天线
优势
· 集成WLAN TCP/IP 协议栈,减轻主系统负荷 · 支持UART/SPI 接口 · 超低功耗,并支持动态电源管理 · AT 命令控制模式和透明传输模式 · 减少客户设计周期
特性
1. 支持802.11b/g/n 标准 · 支持Infrastructure mode,SoftAP or Adhoc · 支持WPA,WPA2,WPS
Reset HOST 3.3V Supply
Reset_n
UART/ SPI CLOCK Management
MCU TCP/IP
LDO1.8V
Wi-Fi Flash
订货信息
产品型号 RAK410A RAK410B RAK410-1A RAK410-1B
接口类型 UART接口 UART接口
SPI接口 SPI接口
相关文档
最新文档