doc

无线模块JTT-4432说明书

  • 1星
  • 日期: 2018-06-21
  • 大小: 417KB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: JTT-4432

JTT-4432

无线模块

无线模块,是数字数传电台(Digital radio)的模块化产品,是指借助DSP 技术和无线电技术实现的高性能专业数据传输电台模块。 无线模块延伸到很多的系统中,工业控制的开关量io设备,485无线传输设备dw-m1,模拟量采集和控制设备。

模块采用进口的高精度外围元件,具有频偏小、抗干扰能力强、灵敏度高、体积小、功耗低、传输距离远的特点。

文档内容节选

JTT4432 使用手册 V11 模块介绍 JTT4432系列模块是工作在433MHz470 MHz 和 915 MHz的通用ISM频段的单芯片微功率无线收发无模块是我公司采用高性能的无线射频 芯片SI4432以及高精度外围元件开发的一款无线通信模块模块采用进口的高精度外 围元件,具有频偏小抗干扰能力强灵敏度高体积小功耗低传输距离远的特 点可应用于非常广泛的领域  应用: 车辆监控遥控遥测小型无线网络无线抄表楼宇自动化物流及资产管理 电力安全智能家居工业数据采集系统安全防火系统无线遥感遥测试系统机 器人控制无线232485422数据通信等 pic 特点: 体积小巧 155mm X 16mm 采用高Q值0402封装的进口电感和电容, 10ppm的高精度贴片晶振 传输距离远具体距离视环境而定 支持FSKGFSK 以及OOK模式 工作频段:433 MHz470 MHz 和 915 MHz其它频率可定制 118 dBm高灵敏度 18V36V的宽范围工作......

JTT-4432 使用手册 (V1.1) 模块介绍 JTT-4432系列模块是工作在433MHz、470 MHz 和 915 MHz的通用ISM频段的单芯片微功率无线收发无模块;是我公司采用高性能的无线射频 芯片SI4432以及高精度外围元件开发的一款无线通信模块。模块采用进口的高精度外 围元件,具有频偏小、抗干扰能力强、灵敏度高、体积小、功耗低、传输距离远的特 点,可应用于非常广泛的领域。  应用: 车辆监控、遥控、遥测、小型无线网络、无线抄表、楼宇自动化、物流及资产管理 、电力安全、智能家居、工业数据采集系统、安全防火系统、无线遥感遥测试系统、机 器人控制、无线232\485\422数据通信等。 [pic] 特点: ● 体积小巧 15.5mm X 16mm ● 采用高Q值0402封装的进口电感和电容, ● 10ppm的高精度贴片晶振 ● 传输距离远(具体距离视环境而定) ● 支持FSK、GFSK 以及OOK模式 ● 工作频段:433 MHz、470 MHz 和 915 MHz(其它频率可定制) ●–118 dBm高灵敏度 ● 1.8V~3.6V的宽范围工作电压 ● 低电流消耗 ( RX模式时为 15 mA,13dBm发射时为30mA, 20dBm发射时为85mA) ● 所有支持频率下高达 +20dBm 的可编程输出功率 ● 0.123~256kbps的可编程数据速率 ● 高效的 SPI 接口;利用一次“突发”数据传输便可对所有寄存器进行编程 ● 64 字节发送/接收FIFO ● 400nA的超低功耗待机 ● 跳频功能 ● 提供对数据包导向系统的灵活支持;同步字检测、地址校验、灵活的数据包长度以及自 动 CRC 处理的片上支持 ● 点对多点通信地址控制 ● 数字 RSSI 输出和空闲信道评估 ● 空中唤醒 ● 温度传感器和8位ADC ● 自动频率校正(AFC)功能 ● 可选数据自动白化和去白 (de-whitening) ● 标准1.27 DIP 间距接口和邮票孔引脚,便于嵌入式应用 ● 可选工作带宽和频道频道设定,满足多点通信和跳频通信需要 JTT-4432 模块绝对工作条件 | |符号 |参数(条件) |Min |Typ. |Max |单位 | |2 |所有引脚的电 | |-0.3 |3.3 |VDD |V | | |压 | | | |+ 0.3| | |3 |RF输入电平 | | | |+10 |dBm | |4 |TEMP |工作温度 |-40 | |+85 |℃ | |说明:超过以上绝对最大值有可能永久损坏模块,模块为ESD敏感器件。 | JTT-4432模块电气规范请参考SI官方公布的器件手册 引脚定义 |引脚 |定义 |说明 | |1 |GPIO0 |通用数字接口0,模块内部和射频开关相连 | |2 |GPIO1 |通用数字接口1,模块内部和射频开关相连 | |3 |GPIO2 |通用数字接口2 | |4 |GND |地 | |5 |SDO |模块SPI数据输出脚 | |6 |SDI |模块SPI数据输入脚 | |7 |SCLK |SPI时钟 | |8 |nSEL |SPI片选 | |9 |nIRQ |中断引脚 | |10 |SDN |模块允许使能,高电平挂起,低电平(或接地)使能 | |11 |GND |地 | |12 |VCC |电源,1.8V-3.6V | |13 |ANT |射频输出,接天线 | |14 |GND |地 | 结构图 [pic] 模块配置及数据接口 通过一个简单的 4-线 SPI 兼容接口(SDI、SDO、SCLK 和 nSEL)便可对JTT- 4432模块进行配置,此时模块为从属器件。 一个SPI读写由16位构成:1位读写选择位(R/W)、7位地址段(ADDR)、一个8位数据 段(DATA);R/W选择位决定SPI接口对模块是读还是写动作,当R/W=1是写动作,当R/W=0 是读动作。SPI的时序图如下所示,SCLK时钟速率最大不超过10MHz。 [pic] SPI写时序图 [pic] SPI读时序图 SPI接口包含一个没有重发地址允许读/写连续寄存器的突发读/写模式;当nSEL保持 为低,继续发送SCLK脉冲,SPI会自动递增地址并且从下一个寄存器读写。 [pic] SPI突发写时序图 [pic] SPI突发读时序 SPI时序参数 [pic] GPIOX配置 模块内部射频开关已经由GPIO0和GPIO1相连,用户可以通过配置Si4432的两个相应寄存 器,模块即可在收发状态下自动切换,配置如下: SpiWriteAddressData ( GPIO0Configuration, 0x12 ); //GPIO0发射时输出高电平 SpiWriteAddressData ( GPIO1Configuration, 0x15 ); //GPIO1接收时输出高电平 或是把GPIO0和GPIO1设为无使用状态,收发切换由外部单片机控制。 GPIO2可根据需要设置成不同的功能。 JTT-4432编程说明 使用JTT- 4432无需掌握专业的无线和射频知识,只要对单片机和C语言有一定的了解就可。对每个 寄存器的详细配置和使用请参考Si4432官方资料。 部分参考代码: Si4432.h //4432寄存器配置文件 #define DeviceType 0x00 #define DeviceVersion 0x01 #define DeviceStatus 0x02 #define InterruptStatus1 0x03 #define InterruptStatus2 0x04 #define InterruptEnable1 0x05 #define InterruptEnable2 0x06 #define OperatingFunctionControl1 0x07 #define OperatingFunctionControl2 0x08 #define CrystalOscillatorLoadCapacitance 0x09 #define MicrocontrollerOutputClock 0x0A #define GPIO0Configuration 0x0B #define GPIO1Configuration 0x0C #define GPIO2Configuration 0x0D #define IOPortConfiguration 0x0E #define ADCConfiguration 0x0F #define ADCSensorAmplifierOffset 0x10 #define ADCValue 0x11 #define TemperatureSensorControl 0x12 #define TemperatureValueOffset 0x13 #define WakeUpTimerPeriod1 0x14 #define WakeUpTimerPeriod2 0x15 #define WakeUpTimerPeriod3 0x16 #define WakeUpTimerValue1 0x17 #define WakeUpTimerValue2 0x18 #define LowDutyCycleModeDuration 0x19 #define LowBatteryDetectorThreshold 0x1A #define BatteryVoltageLevel 0x1B #define IFFilterBandwidth 0x1C #define AFCLoopGearshiftOverride 0x1D #define AFCTimingControl 0x1E #define ClockRecoveryGearshiftOverride 0x1F #define ClockRecoveryOversamplingRatio 0x20 #define ClockRecoveryOffset2 0x21 #define ClockRecoveryOffset1 0x22 #define ClockRecoveryOffset0 0x23 #define ClockRecoveryTimingLoopGain1 0x24 #define ClockRecoveryTimingLoopGain0 0x25 #define ReceivedSignalStrengthIndicator 0x26 #define RSSIThresholdForClearChannelIndicator 0x27 #define AntennaDiversityRegister1 0x28 #define AntennaDiversityRegister2 0x29 #define AFCLimiter 0x2A #define DataAccessControl 0x30 #define EZmacStatus 0x31 #define HeaderControl1 0x32 #define HeaderControl2 0x33 #define PreambleLength 0x34 #define PreambleDetectionControl 0x35 #define SyncWord3 0x36 #define SyncWord2 0x37 #define SyncWord1 0x38 #define SyncWord0 0x39 #define TransmitHeader3 0x3A #define TransmitHeader2 0x3B #define TransmitHeader1 0x3C #define TransmitHeader0 0x3D #define TransmitPacketLength 0x3E #define CheckHeader3 0x3F #define CheckHeader2 0x40 #define CheckHeader1 0x41 #define CheckHeader0 0x42 #define HeaderEnable3 0x43 #define HeaderEnable2 0x44 #define HeaderEnable1 0x45 #define HeaderEnable0 0x46 #define ReceivedHeader3 0x47 #define ReceivedHeader2 0x48 #define ReceivedHeader1 0x49 #define ReceivedHeader0 0x4A #define ReceivedPacketLength 0x4B #define ChannelFilterCoefficientAddress 0x60 #define CrystalOscillator_ControlTest 0x62 #define AGCOverride1 0x69 #define TXPower 0x6D #define TXDataRate1 0x6E #define TXDataRate0 0x6F #define ModulationModeControl1 0x70 #define ModulationModeControl2 0x71 #define FrequencyDeviation 0x72 #define FrequencyOffset 0x73 #define FrequencyChannelControl 0x74 #define FrequencyBandSelect 0x75 #define NominalCarrierFrequency1 0x76 #define NominalCarrierFrequency0 0x77 #define FrequencyHoppingChannelSelect 0x79 #define FrequencyHoppingStepSize 0x7A #define TXFIFOControl1 0x7C #define TXFIFOControl2 0x7D #define RXFIFOControl 0x7E #define FIFOAccess 0x7F SPI.c //SPI配置文件 #define RF_Write 0x80 //写模块参数时R/W位置1 /* SPI片选:选择模块时,片选引脚应拉低 */ #define SPI_CS_LOW() (此处用户配置) /* SPI片选:不选择模块时,片选引脚应置高*/ #define SPI_CS_HIGH() (此处用户配置) //SPI接口配置函数,不同单片机由用户自行配置 unsigned char SpiReadWrite(unsigned char byte) { 此处根据不同的MCU用户配置; } //通过SPI读模块寄存器 unsigned char SpiRfReadRegister ( unsigned char address ) { unsigned char temp8; SPI_CS_LOW(); SpiReadWrite( address ); temp8 = SpiReadWrite( 0x00 ); SPI_CS_HIGH(); return temp8; } //通过SPI向模块写寄存器 void SpiWriteAddressData ( unsigned char address, unsigned char d ) { SPI_CS_LOW(); SpiReadWrite( RF_Write | address ); SpiReadWrite(d); SPI_CS_HIGH(); } Si4432.C //4432操作 unsigned char RF_Rate_num; unsigned char RF_BAND; unsigned char CAR_FREQ1; unsigned char CAR_FREQ2; unsigned char Channel_Num; unsigned char RF_Power; //在不同射频速率下的参数配置表 unsigned char code baud[6][13]= { // IFBW, COSR, CRO2, CRO1, CRO0, CTG1, CTG0, TDR1, TDR0, MMC1, FDEV, AFC ,AFCLimiter {0x1B, 0x83, 0xC0, 0x13, 0xA9, 0x00, 0x03, 0x09, 0xD5, 0x2D, 0x3A, 0x40,0x1E}, //DR: 1.2kbps, DEV: +-36kHz, BBBW: 77.1kHz {0x1B, 0x41, 0x60, 0x27, 0x52, 0x00, 0x07, 0x13, 0xA9, 0x2D, 0x3A, 0x40,0x1E}, //DR: 2.4kbps, DEV: +-36kHz, BBBW: 77.1kHz {0x1B, 0xA1, 0x20, 0x4E, 0xA5, 0x00, 0x17, 0x27, 0x52, 0x2D, 0x3A, 0x40,0x1E}, //DR: 4.8kbps, DEV: +-36kHz, BBBW: 77.1kHz {0x1C, 0xD0, 0x00, 0x9D, 0x49, 0x00, 0x56, 0x4e, 0xA5, 0x2D, 0x3A, 0x40,0x1E}, //DR: 9.6kbps, DEV: +-36kHz, BBBW: 85.1kHz {0x16, 0x68, 0x01, 0x3A, 0x93, 0x02, 0x5F, 0x9D, 0x49, 0x2D, 0x20, 0x40,0x1E}, //DR: 19.2kbps, DEV: +-20kHz, BBBW: 64.1kHz {0x02, 0x68, 0x01, 0x3A, 0x93, 0x04, 0xBC, 0x09, 0xD5, 0x0D, 0x20, 0x40,0x1E}, //DR: 38.4kbps, DEV: +-20kHz, BBBW: 83.2kHz }; //4432初始化函数 void si4432_init(void) { unsigned char temp8; unsigned int delay; //initialize I/O port directions RF_NSEL = 1; RF_NIRQ_PIN = 1; SDN = 0; //Wait at least 15ms befory any initialization SPI commands are sent to the radio for (temp8=0;temp8<30;temp8++) { for(delay=0;delay<10000;delay++); } //read interrupt status registers SpiRfReadRegister( InterruptStatus1 ); SpiRfReadRegister( InterruptStatus2 ); //SW reset SpiWriteAddressData ( OperatingFunctionControl1, 0x80 ); while ( RF_NIRQ_PIN==1 ); //read interrupt status registers to clear the interrupt flags and release NIRQ pin SpiRfReadRegister( InterruptStatus1 ); SpiRfReadRegister( InterruptStatus2 ); //wait for chip ready interrupt from the radio while ( RF_NIRQ_PIN == 1); //read interrupt status registers to clear the interrupt flags and release NIRQ pin SpiRfReadRegister( InterruptStatus1 ); SpiRfReadRegister( InterruptStatus2 ); //set frequency band and frequency SpiWriteAddressData ( FrequencyBandSelect, RF_BAND); SpiWriteAddressData ( NominalCarrierFrequency0,CAR_FREQ1); SpiWriteAddressData ( NominalCarrierFrequency1,CAR_FREQ2); SpiWriteAddressData ( FrequencyHoppingStepSize, 0x0A ); //set RF_Rate RFSetRfParameters( RF_Rate_num ); //set preamble length & detection threshold SpiWriteAddressData ( PreambleLength, 0x0A ); SpiWriteAddressData ( PreambleDetectionControl, 0x20 ); //disable RX-TX headers, SpiWriteAddressData ( HeaderControl1, 0x00 ); SpiWriteAddressData ( HeaderControl2, 0x02 ); //set synchron word SpiWriteAddressData ( SyncWord3, 0x2D ); SpiWriteAddressData ( SyncWord2, 0xD4 ); //enable packet handler and CRC-16 SpiWriteAddressData ( DataAccessControl, 0x8D ); //set GFSK modulation and FIFO mode SpiWriteAddressData ( ModulationModeControl2,0x23 ); //set the AGC SpiWriteAddressData ( AGCOverride1, 0x60 ); //set GPIO0 & GPIO1 to control the TRX switch SpiWriteAddressData ( GPIO0Configuration, 0x12 ); SpiWriteAddressData ( GPIO1Configuration, 0x15 ); //set cap. bank to cancel the frequency offset from the center frequency SpiWriteAddressData ( CrystalOscillatorLoadCapacitance, 0xB3); // Set TXPower SpiWriteAddressData ( TXPower, RF_Power ); //Set Channel SpiWriteAddressData ( FrequencyHoppingChannelSelect, Channel_Num ); } //根据不同速率配置相应参数 void RFSetRfParameters(RF_SAMPLE_SETTINGS setting) { //the modem parameters are read from the table SpiWriteAddressData(IFFilterBandwidth, baud[setting][0] ); SpiWriteAddressData(ClockRecoveryOversamplingRatio,baud[setting][1] ); SpiWriteAddressData ( ClockRecoveryOffset2, baud[setting][2] ); // Clock Recovery Offset 2 SpiWriteAddressData ( ClockRecoveryOffset1, baud[setting][3] ); // Clock Recovery Offset 1 SpiWriteAddressData ( ClockRecoveryOffset0, baud[setting][4] ); // Clock Recovery Offset 0 SpiWriteAddressData ( ClockRecoveryTimingLoopGain1, baud[setting][5] ); // Clock Recovery Timing Loop Gain 1 SpiWriteAddressData ( ClockRecoveryTimingLoopGain0, baud[setting][6] ); // Clock Recovery Timing Loop Gain 0 SpiWriteAddressData ( TXDataRate1, baud[setting][7] ); // Block Enable Override 2 SpiWriteAddressData ( TXDataRate0, baud[setting][8] ); // Block Enable Override 2 SpiWriteAddressData ( ModulationModeControl1, baud[setting][9] ); SpiWriteAddressData ( FrequencyDeviation, baud[setting][10] ); // Frequency Deviation Setting SpiWriteAddressData ( AFCLoopGearshiftOverride,baud[setting][11] ); SpiWriteAddressData ( AFCTimingControl, 0x0A ); SpiWriteAddressData ( AFCLimiter, baud[setting][12] ); } //模块进入Idle模式 void RFIdle(void) { SpiWriteAddressData( OperatingFunctionControl1, 0x01 ); //diasble all ITs SpiWriteAddressData ( InterruptEnable1, 0x00 ); SpiWriteAddressData( InterruptEnable2, 0x00 ); //releaze all IT flags SpiRfReadRegister ( InterruptStatus1 ); SpiRfReadRegister ( InterruptStatus2 ); } //发射数据 void RFTransmit(unsigned char *packet,unsigned char length) { unsigned char ItStatus1,ItStatus2; unsigned char i; //disable the receiver chain (but keep the XTAL running to have shorter TX on time!) SpiWriteAddressData ( OperatingFunctionControl1, 0x01 ); //clear TX FIFO SpiWriteAddressData ( OperatingFunctionControl2, 0x01 ); SpiWriteAddressData ( OperatingFunctionControl2, 0x00 ); //set packet length SpiWriteAddressData ( TransmitPacketLength, length ); for(i=0; i
更多简介内容

推荐帖子

评论

登录/注册

意见反馈

求资源

回顶部

datasheet推荐 换一换

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })