快捷搜索:  汽车  科技

7脚开关电源芯片引脚功能(基于adf7023的1瓦无线同步传输模块)

7脚开关电源芯片引脚功能(基于adf7023的1瓦无线同步传输模块)低功率模式SPORT模式对于运动模式,该模块支持专用数据无线同步传输。单个帧分组的长度可以自由设置。理论长度是无限的,并且受到DSP或MCU的存储空间的限制。单个帧数据的长度可以设置为3K字节。定制更大的单帧数据。N502FS无线同步高功率模块功能UART速率:115200

基于adf7023的1瓦无线同步传输模块

7脚开关电源芯片引脚功能(基于adf7023的1瓦无线同步传输模块)(1)

N502FS基于ADI ADF7023射频收发器、PA和LNA开发的无线同步高功率模块,用于433M、868M和915MHz频段。无线同步模块使用ADF7023运动模式或分组模式。N502FS无线同步高功率模块支持1K至300Kbps的射频速率。无线同步高功率模块的最大输出功率为 30 dBm。支持AT命令。

N502FS无线同步传输模块集成了ADI ADF7023收发器芯片、PA、LNA和MCU,适用于433MHz/868MHz/915MHz频段。ADF7023收发器高功率模块具有成本低、功耗低、体积小的特点。无线同步传输高功率模块采用4层板设计,具有出色的阻抗匹配和抗干扰能力。该模块主要用于物联网、智能家居、无线抄表、科研和医疗以及中远程同步无线通信设备。ADF7023模块将UART、SPI、LED IO端口引出,用于二次开发或使用。

对于分组模式,N502FS高功率模块支持智能计量、IEEE 802.15.4g、无线MBUS、家庭自动化、过程和楼宇控制、无线传感器网络(WSN)。

对于运动模式,该模块支持专用数据无线同步传输。单个帧分组的长度可以自由设置。理论长度是无限的,并且受到DSP或MCU的存储空间的限制。单个帧数据的长度可以设置为3K字节。定制更大的单帧数据。

N502FS无线同步高功率模块功能

UART速率:115200

SPORT模式

低功率模式

频带:862 MHz至928 MHz,431 MHz至464 MHz

带宽:100 kHz、150 kHz、200 kHz、300 kHz

单个帧中的最大字节数:3072字节

VCC : 3 - 5V

SMD package

Size: 42 X 24 X 3 mm

RF port: ipex or RF pin

ADF7023无线同步收发器模块详细信息

7脚开关电源芯片引脚功能(基于adf7023的1瓦无线同步传输模块)(2)

ADF7023是ADI的射频收发器。射频速率从1 K到300 Kbps。它支持分组模式和SPORT模式。

对于分组模式,ADF7023收发器支持智能计量、IEEE 802.15.4g、无线MBUS、家庭自动化、过程和楼宇控制、无线传感器网络(WSN)。

对于SPORT模式,支持专用数据同步无线通信。单个帧分组的长度可以自由设置。理论长度是无限的,并且受到DSP或MCU的存储空间的限制。单个帧的长度可以设置为几个K字节。

ADF7023是一款非常低功率、高性能、高度集成的2FSK/GFSK/OOK/MSK/GMSK收发器,设计用于862 MHz至928 MHz和431 MHz至464 MHz频带,覆盖433 MHz、868 MHz和915 MHz的全球无许可ISM频带。它适用于在欧洲ETSI EN300-220、北美FCC(第15部分)、中国短程无线监管标准或其他类似地区标准下运行的电路应用。支持从1 kbps到300 kbps的数据速率。

发射RF合成器包含一个VCO和一个输出信道频率分辨率为400Hz的低噪声分数N PLL。VCO工作在2×或4×基频,以减少杂散发射。接收和发送合成器带宽自动且独立地配置,以实现最佳相位噪声、调制质量和稳定时间。变送器输出功率可从−20 dBm至 13.5 dBm,具有自动PA斜坡,以满足瞬态杂散规范。该部分具有单端和差分PA,允许Tx天线分集。

该接收机是非常线性的,达到IP3规格−12.2 dBm和−最大增益和最小增益分别为11.5 dBm,最大增益和最低增益的IP2规格分别为18.5dBm和27dBm。接收机在±2 MHz偏移处达到66 dB的干扰阻断规格,在±10 MHz偏移处实现74 dB的干扰抑制规格。因此,该部件对频谱噪声环境中存在的干扰具有极强的弹性。该接收机具有新颖、高速、自动频率控制(AFC)环路,允许PLL发现并纠正恢复包中的任何RF频率错误。

正在申请专利的图像抑制校准方案可通过程序下载获得。该算法不需要使用外部RF源,也不需要任何用户干预。校准的结果可以存储在非易失性存储器中,用于收发器的后续加电。

ADF7023引脚配置和功能说明

7脚开关电源芯片引脚功能(基于adf7023的1瓦无线同步传输模块)(3)

N502FS无线同步传输模块,单帧数据包最大长度为3K字节对于超过3K字节的单帧长度,需要定制。

SPORT模式软代码

void IRQ_Handler() __irq // this is a promgram for the receiver when detected the sncywords this used for receive the data.

{

unsigned char stop;

unsigned char temp=0;

unsigned char i;

Receive_Sign = 1;

Receive_bytes= 0;

stop=0;

while(!stop)

{

for(i=0; i<8; i )

{

while(read_TxRxCLK()==0);

temp<<= 1 ;

temp =read_RxDATA();

while(read_TxRxCLK()==1);

}

buff[Receive_bytes]=temp;

Receive_bytes ;

if(temp==0xFF) //if the data is 0xFF stop receive you change it and set your own stop word.

{

stop=1;

}

}

my_sent_cmd(CMD_PHY_ON); //back to the stutus of PHY_ON

// IRQCLR = IRQCLR|XIRQ0_BIT;

}

int main (void)

{

STMCU_Initiate(); //initial the ADuc7026

ADF7023_gpio_config(); // config the GPIO both used for transmitter and receiver.

ADF7023BBRAM_TRANSMITTER_config(); // config the ADF7023 BBRAM both used for transmitter and receiver.

my_delay(100);

Initialization();//initial the ADF7023

my_sent_cmd(CMD_PHY_OFF);//come to the stutus of PHY_OFF

put_string("Come to the Initialization: \n");

my_delay(100000);

read_stutus(); //read the stutus

my_sent_cmd(CMD_PHY_ON);

put_string("Come to the ON: \n");

my_delay(100000);

read_stutus();

//read_data();

TRANSMITTER(); //come to the transmitter for the transmitter you can delete the RECEIVER()

RECEIVER(); //come to the receiver for the receiver you can delete the TRANSMITTER()

}

void TRANSMITTER(void)

{

my_delay(100000);

my_sent_cmd(CMD_PHY_TX); //set the stutus to PHY_TX

my_delay(100000);

put_string("Come to the TRANSMITTER: \n");

my_delay(100000);

read_stutus(); //read the stutus

my_delay(100000);

while(1)

{

buf[0]=0x55;

sent_char(buf[0]); //set the char 0x55(01010101) used for the Interrupt you can get more detail from the datasheet

sent_char(buf[0]);

sent_char(buf[0]);

sent_char(buf[0]);

sent_char(buf[0]);

sent_char(buf[0]);

sent_char(buf[0]);

sent_char(buf[0]);

buf[0]=0xFA; //set the syncwords you can get more detail from the datasheet

buf[1]=0xAA;

buf[2]=0xAE;

sent_char(buf[0]);

sent_char(buf[1]);

sent_char(buf[2]);

sent_string("I am get the data"); // sent the data

buf[0]=0xFF; // sent the stop word

sent_char(buf[0]);

put_string("Finished sentting the data \n"); //output the UART you can see from the URAT that the string is sent.

my_delay(1000000);

}

}

void RECEIVER(void)

{

my_sent_cmd(CMD_PHY_RX); //set the stutus to PHY_RX

my_delay(100000);

put_string("Come to the RECEIVER: \n");

my_delay(100000);

read_stutus();

my_delay(10000);

IRQEN = XIRQ0_BIT ;//Enable IRQ0 Interrupt Interrupt is set base on the syncwords

while(1)

{

if(1 == Receive_Sign)

{

unsigned char i;

Receive_Sign = 0;

put_string("The received data:"); //put the received data to the UART

for(i=1;i<Receive_bytes-1;i )

{

put_char(buff[i]); // buff[] is the received data buffer

}

put_char('\n');

my_delay(100000);

put_string("The number of receive data: "); //put the number of the word to the UART

Receive_bytes=Receive_bytes-2;

buf[2]=(Receive_bytes) 48;

Receive_bytes=Receive_bytes/10;

buf[1]=(Receive_bytes) 48;

Receive_bytes=Receive_bytes/10;

buf[0]=(Receive_bytes) 48;

put_char(buf[0]);

put_char(buf[1]);

put_char(buf[2]);

put_char('\n');

my_delay(10000000);

IRQEN = XIRQ0_BIT; //open the Interrupt to get another data.

my_sent_cmd(CMD_PHY_RX); //go to the stutus of PHY_RX

}

//read_stutus();

}

}

void sent_char(unsigned char ch)//sent a char based on the TxRxCLK this clk is give by ADF7023 is not given by you .

{

unsigned char temp i;

temp = ch;

for(i=0;i<8;i )

{

while(read_TxRxCLK()==1)

{;}

my_delay(1);

if(temp & 0x80)

{

SET_TxDATA();

}

else

{

CLR_TxDATA();

}

temp<<=1;

while(read_TxRxCLK()==0)

{;}

}

}

void sent_stringsent_string(char *str)//sent a string by mutiply use the function sent_char.

{

unsigned int len=0 i;

while ((str[len] >31)||(str[len]=='\n'))

len ;

for (i=0;i<len;i )

{

sent_char(str[i]);

}

}

void Initialization(void)

{

my_sent_cmd(CMD_SYNC);//sent the CMD_SYNC

ADF7023_mySPI_MEM_WR(BBRAM 0 ADF7023BBRAM 64 );//config the BBRAM of ADF7023

//ADF7023_mySPI_MEM_WR(MCR 0 ADF7023MCR 255);

Address= MCR_gpio_configure_Adr&0xFF;

buf[0]=0xA2;

ADF7023_mySPI_MEMR_WR(MCR Address buf ); //config the gpio of ADF7023

my_sent_cmd(CMD_CONFIG_DEV);

}

unsigned char my_sent_cmd(unsigned char cmd)

{

unsigned char temp;

CLR_CS();

my_delay(10);

while((read_MISO()==0x0)); //wait for the dataready

temp=CommunicateToADF7023(cmd);

my_delay(10);

SET_CS();

return(temp);

}

unsigned char my_sent_cmd_CS(unsigned char cmd)

{

unsigned char temp;

temp=CommunicateToADF7023(cmd);

return(temp);

}

void read_stutus(void) //// read the stutus and put to the UART

{

CLR_CS();

my_sent_cmd_CS(0xFF);

buf[0]=my_sent_cmd_CS(0xFF);

my_delay(10);

SET_CS();

put_string("The stutus: ");

buf[0]=buf[0]&0x1F;

if(buf[0]==0x11)

{

put_string("PHY_OFF");

}

else if(buf[0]==0x12)

{

put_string("PHY_ON");

}

else if(buf[0]==0x13)

{

put_string("PHY_RX");

}

else if(buf[0]==0x14)

{

put_string("PHY_TX");

}

else if(buf[0]==0x15)

{

put_string("PHY_SLEEP");

}

else

{

put_string("busy");

}

put_char('\n');

my_delay(100000);

}

void read_data(void) // read the register and put to the UART

{

Address= MCR_gpio_configure_Adr&0xFF;

buf[0]=ADF7023_mySPI_MEMR_RD(MCR Address);

put_string("The data: ");

buf[2]=(buf[0]) 48;

buf[0]=buf[0]/10;

buf[1]=(buf[0]) 48;

buf[0]=buf[0]/10;

buf[0]=(buf[0]) 48;

put_char(buf[0]);

put_char(buf[1]);

put_char(buf[2]);

put_char('\n');

my_delay(100000);

猜您喜欢: