The Freescale MCR20A Simple Media Access Controller (MCR20A SMAC) is a simple ANSI C based codebase available as sample source code. The MCR20A SMAC is used for developing proprietary RF transceiver applications using Freescale’s MCR20A 2.4 GHz transceiver 

Fork of fsl_smac by Freescale

The MCR20A SMAC is a small codebase that provides simple communication and test applications based on drivers, (802.15.4 compliant) PHY, and framework utilities available as source code. This environment is useful for hardware and RF debug, hardware standards certification, and developing proprietary applications. The MCR20A SMAC is provided as part of the Example Application Demos available for MCR20A and also as a standalone set of files.

SMAC features include:

  • Compact footprint.
  • Very low power, proprietary, bidirectional RF communication link.
  • The MCR20A radio allows packet filtering by hardware by checking the preamble and the synchronization word, which reduces software overhead and memory footprint.
  • Broadcast communication.
  • Unicast communication — MCR20A SMAC includes a Node Address 16-bit field. This allows SMAC to perform unicast transmissions. To change the address of a node, modify this constant: gNodeAddress_c inside the SMAC_Config.h file, or call SMACSetShortSrcAddress(uint16_t nwShortAddress). The address is set to 0xBEAD by default. Some of the Demo Applications allow the user to change this address at runtime.
  • Change of current PAN. The SMAC packet uses a short 802.15.4 compliant header with a hard-coded configuration for frame control which allows the user to switch between PANs. The PAN address has also 16 bits (gDefaultPanID_c). This address can be modified by changing the default value from SMAC_Config.h file or by calling SMACSetPanID(uint16_t nwShortPanID.
  • There are no blocking functions within the MCR20A SMAC.
  • Easy-to-use sample applications included.
  • Light-weight, custom LBT algorithm.
  • Light-weight, custom, AA mechanism which is transparent to the user after enabling the feature.
  • Encryption using Advanced Encryption Standard in Cipher Block Chaining mode with configurable initial vector and key.
  • Configurable number of retries and backoff interval.
  • Inter-layer communication using SAPs.
  • The MCR20A SMAC also filters packets that have correct addressing information (pass address filtering) but are not in the expected format (short addressing, no security, data frame).

Documentation

SMAC Reference Manual

Committer:
andreikovacs
Date:
Tue Aug 18 12:48:33 2015 +0000
Revision:
0:401ba973869e
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andreikovacs 0:401ba973869e 1 /**************************************************************************************************
andreikovacs 0:401ba973869e 2 * This header contains SMAC basic configuration.
andreikovacs 0:401ba973869e 3 *
andreikovacs 0:401ba973869e 4 * Freescale Semiconductor Inc.
andreikovacs 0:401ba973869e 5 * (c) Copyright 2004-2010 Freescale Semiconductor, Inc.
andreikovacs 0:401ba973869e 6 * ALL RIGHTS RESERVED.
andreikovacs 0:401ba973869e 7 *
andreikovacs 0:401ba973869e 8 ***************************************************************************************************
andreikovacs 0:401ba973869e 9 *
andreikovacs 0:401ba973869e 10 * THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESSED OR
andreikovacs 0:401ba973869e 11 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
andreikovacs 0:401ba973869e 12 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
andreikovacs 0:401ba973869e 13 * IN NO EVENT SHALL FREESCALE OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
andreikovacs 0:401ba973869e 14 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
andreikovacs 0:401ba973869e 15 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
andreikovacs 0:401ba973869e 16 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
andreikovacs 0:401ba973869e 17 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
andreikovacs 0:401ba973869e 18 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
andreikovacs 0:401ba973869e 19 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
andreikovacs 0:401ba973869e 20 * THE POSSIBILITY OF SUCH DAMAGE.
andreikovacs 0:401ba973869e 21 *
andreikovacs 0:401ba973869e 22 ***********************************************************************************************//*!
andreikovacs 0:401ba973869e 23 **************************************************************************************************/
andreikovacs 0:401ba973869e 24
andreikovacs 0:401ba973869e 25 #ifndef SMAC_CONFIG_H_
andreikovacs 0:401ba973869e 26 #define SMAC_CONFIG_H_
andreikovacs 0:401ba973869e 27
andreikovacs 0:401ba973869e 28 /* BEGIN SMAC Config Options Definition */
andreikovacs 0:401ba973869e 29
andreikovacs 0:401ba973869e 30 #define gNodeAddress_c (0xBEAD)
andreikovacs 0:401ba973869e 31 #define gDefaultPanID_c (0xFACE)
andreikovacs 0:401ba973869e 32 #define CCA_BEFORE_TX (FALSE)
andreikovacs 0:401ba973869e 33 #define gMaxRetriesAllowed_c ( 0x05 )
andreikovacs 0:401ba973869e 34 //Make sure gMaxBackoffTime_c is of value (1<<n)-1. Ex: (1<<3)-1 = 7, (1<<4)-1 = 15;
andreikovacs 0:401ba973869e 35 #define gMaxBackoffTime_c ( 0x1F )
andreikovacs 0:401ba973869e 36 #define gMinBackoffTime_c ( 0x00 )
andreikovacs 0:401ba973869e 37 /* END SMAC Config Options Definition */
andreikovacs 0:401ba973869e 38
andreikovacs 0:401ba973869e 39 /* BEGIN Configuration Parameters Definition */
andreikovacs 0:401ba973869e 40 #define gMaxOutputPower_c ( 0x1F )
andreikovacs 0:401ba973869e 41 #define gMinOutputPower_c ( 0x03 )
andreikovacs 0:401ba973869e 42 #define gDefaultOutputPower_c ( 0x0F )
andreikovacs 0:401ba973869e 43 #define gDefaultChannelNumber_c gChannel11_c
andreikovacs 0:401ba973869e 44 #define gDefaultAddress_c (gBroadcastAddress_c)
andreikovacs 0:401ba973869e 45 /* END Configuration Parameters Definition */
andreikovacs 0:401ba973869e 46
andreikovacs 0:401ba973869e 47 #endif /* SMAC_CONFIG_H_ */