2.4G Wireless easy radio A7125

From Wiki

Jump to: navigation, search

Contents

Introduction

A7125 is a high performance and low cost 2.4GHz ISM band wireless transceiver. It integrates high sensitivity receiver(-90dBm @2Mbps), high efficiency power amplifier (up to 3dBm), frequency synthesizer and base-band modem. In typical system, A7125 is used together with MCU (microcontroller) with very few external passive components. A7125 supports both FIFO mode and direct mode that contains clock recovery circuit CKO pin to MCU.
A7125’s data rate is up to 2Mbps and can be easily programmed to 1Mbps or 2 Mbps via 3-wire or 4-wire SPI bus. For power saving, A7125 supports sleep mode, idle mode, standby mode. For easy-to-use, A7125 has an unique SPI command set called Strobe command that are used to control A7125’s state machine. Based on Strobe commands, from power saving, TX delivery, RX receiving, channel monitoring, frequency hopping to auto calibrations, MCU only needs to define A7125’s control registers and send Strobe commands via SPI bus. In addition, A7125 supports two general purpose I/O pins, GIO1 and GIO2, to inform MCU its status so that MCU could use either polling or interrupt scheme to do radio control. Therefore, it is very easy to monitor transmission between MCU and A7125 because of its digital interface.

Model:RFM06

Wireless RF A7125 03.jpg

Feature

Application Ideas

Cautions

  • VCC is range of 1.9V~3.6V, do not exceed this range, otherwise it by destroyed the module.

Schematic

Board Schematic

Wireless RF A7125 08.jpg

Schematic Diagram

A7125b.jpg

Specification

Specification Value
PCB Size 15mm*29mm*0.8mm
Power supply 1.9V~3.6V
IO counts 8
Data rate 1Mbps / 2Mbps
Working mode Power Down Mode / Standby Mode / RX Mode / TX Mode
Temperatures Operating:-40°C ~ 85°C / Storage:-40°C ~ 125°C

Pin definition and Rating

Mechanic Dimensions

Usage

Hardware Installation

A7125c.jpg

Programming

Includes important code snippet. Demo code like :

Download the code below into the TX Arduino (transmit) — This code will drive the A7125 module to send out buffer data.
 
/*********************************************************************
**  Device: A7125                                                   **
**  File:   EF_A7125_Send.c                                         **
**								    **
**  Created by ElecFreaks Robi.W /10 June 2011                      **
**                                                                  **
**  Description:                                                    **
**  This file is a sample code for your reference.                  **
**                                                                  **
**                                                                  **
**  This demo code is free software; you can redistribute it and/or **
**  modify it under the terms of the GNU Lesser General Public	    **
**  License as published by the Free Software Foundation; either    **	
**  version 2.1 of the License, or (at your option)   		    **
**  any later version.						    **
**                                                                  **
**  Copyright (C) 2011 ElecFreaks Corp.                     	    **
**                                                                  **
**                                                                  **
**  http://www.elecfreaks.com                                       **
*********************************************************************/
void setup()
{
     Serial.begin(9600);
     delay(50);
     //init io pin
     SPI_DIR  = ( SCS + SCK + SDIO);
     SPI_DIR &=~(GIO1 + GIO2 );
     SPI_PORT = (SCS+SDIO) ;
     SPI_PORT &=~SCK;
 
     Serial.println("------------>send start here.");
     initRF();
     StrobeCmd(CMD_STBY);
     A7125_WriteReg( TXTEST_REG, 0x17 );     //  TX power = 0dBm
     A7125_WriteReg( DATARATE_REG, 0x1F );   //  Data rate = 2M
     A7125_WriteReg( MODECTRL_REG, 0x62 );   //  FIFO mode
     A7125_WriteReg( PLL1_REG, 100 );        // set radio channel
     A7125_WriteReg( CODE1_REG, 0x0F);       //  enable CRC check function
     WriteFIFO( 64 );
     delay(50);
}
 
void loop()
{
       StrobeCmd( CMD_TX );             //send data mode
 
       while(SPI_IN & RF_WTR);              // wait RFIC receive data
 
       StrobeCmd( CMD_SLEEP ); // let RF to sleep mode
       delay(10);
       StrobeCmd(CMD_STBY); //entry standby
 
       Serial.println("------------>Send complate!");
       delay(1000);
}
 
Download the code below into the RX Arduino (receive) – This code will drive the A7125 module to receive the data that transmit form the TX module and print it to serial port and Nokia 5110 LCM display, and you should impore EF5110 library.
 
 
EF_LCM5110  lcm(3,4,5,6,7);
void setup()
{
     Serial.begin(9600);
     delay(50);
     //init io pin
     SPI_DIR  = ( SCS + SCK + SDIO);
     SPI_DIR &=~(GIO1 + GIO2 );
     SPI_PORT = (SCS+SDIO) ;
     SPI_PORT &=~SCK;
 
     Serial.print("------------>start here.");
     initRF();
     A7125_WriteReg( TXTEST_REG, 0x17 );         //  TX power = 0dBm
     A7125_WriteReg( DATARATE_REG, 0x1F );       //  Data rate = 2M
     A7125_WriteReg( MODECTRL_REG, 0x62 );       //  FIFO mode
     A7125_WriteReg( PLL1_REG,100);              // set radio channel
     A7125_WriteReg( CODE1_REG, 0x0F);           //  enable CRC check function
     A7125_WriteReg( FIFO1_REG, 10-1 );           // set FIFO length
     delay(50);
     lcm.init();
     lcm.clearLCM();
}
 
void loop()
{
       StrobeCmd(CMD_RX);          //accept data mode
 
       TmpUint8 = A7125_ReadReg(MODE_REG);
       while(SPI_IN & RF_WTR);                  // wait RFIC receive data
 
       if((TmpUint8&0x20)==0)
       {
                ReadFIFO(10);               // CRC pass, read RX FIFO
                for(int i=0; i< 10; i++)
                {
                   //lcm.write_char(RfBuf[i]-32);
                   lcm.write_string(0,i,(char*)RfBuf);
                   Serial.print(";buf=");
                   Serial.print(RfBuf[i], HEX);
                 }
                 Serial.println();
                 delay(50);
       }
       StrobeCmd(CMD_STBY); //entry standby
       delay(1000);
}

Example

The projects and application examples.

Bill of Materials (BOM) /parts list

All the components used to produce the product.

FAQ

Please list your question here:

Support

If you have questions or other better design ideas,

Version Tracker

Revision Descriptions Release
v1.0 Initial public release date

Bug Tracker

Bug Tracker is the place you can publish any bugs you think you might have found during use. Please write down what you have to say, your answers will help us improve our

products.

Additional Idea

The Additional Idea is the place to write your project ideas about this product, or other usages you've found. Or you can write them on Projects page.

Resources

How to buy

Click here to buy: http://www.elecfreaks.com/store/24ghz-easy-radio-de-a7125-modulemasterslave-p-167.html

See Also

Other related products and resources.

Licensing

This documentation is licensed under the Creative Commons Attribution-ShareAlike License 3.0 Source code and libraries are

licensed under GPL/LGPL, see source code files for details.

External Links

Links to external webpages which provide more application ideas, documents/datasheet or software libraries
Personal tools
Namespaces
Variants
Actions
Navigation
Support
Toolbox