The MCR20A Wireless UART application functions as an wireless UART bridge between two (one-to-one) or several (one to many) boards. The application can be used with both a TERM, or with software that is capable of opening a serial port and writing to or reading from it. The characters sent or received are not necessarily ASCII printable characters.

Dependencies:   fsl_phy_mcr20a fsl_smac mbed-rtos mbed

Fork of mcr20_wireless_uart by Freescale

By default, the application uses broadcast addresses for OTA communication. This way, the application can be directly downloaded and run without any user intervention. The following use case assumes no changes have been done to the project.

  • Two (or more) MCR20A platforms (plugged into the FRDM-K64F Freescale Freedom Development platform) have to be connected to the PC using the mini/micro-USB cables.
  • The code must be downloaded on the platforms via CMSIS-DAP (or other means).
  • After that, two or more TERM applications must be opened, and the serial ports must be configured with the same baud rate as the one in the project (default baud rate is 115200). Other necessary serial configurations are 8 bit, no parity, and 1 stop bit.
  • To start the setup, each platform must be reset, and one of the (user) push buttons found on the MCR20A platform must be pressed. The user can press any of the non-reset buttons on the FRDM-K64F Freescale Freedom Development platform as well. *This initiates the state machine of the application so user can start.

Documentation

SMAC Demo Applications User Guide

Revision:
6:01d070bc1c26
Parent:
5:69f1634cd40b
Child:
7:d70f8086a89b
--- a/RF_Drivers/driverRFPhy.h	Thu Mar 05 14:32:32 2015 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * driverRFPhy.h
- *
- *  Created on: 14 July 2014
- *      Author: mBed Team
- */
-
-#ifndef DRIVERRFPHY_H_
-#define DRIVERRFPHY_H_
-
-#include "arm_hal_phy.h"    
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*Run calibration every 5 minutes*/
-#define RF_CALIBRATION_INTERVAL 6000000
-/*Wait ACK for 2.5ms*/
-#define RF_ACK_WAIT_TIMEOUT 50
-
-#define RF_BUFFER_SIZE 128
-#define RF_DEFAULT_CHANNEL  11
-
-/*Radio RX and TX state definitions*/
-#define RFF_ON 0x01
-#define RFF_RX 0x02
-#define RFF_TX 0x04
-#define RFF_CCA 0x08
-
-/*Atmel RF states*/
-typedef enum
-{
-    NOP = 0x00,
-    BUSY_RX = 0x01,
-    RF_TX_START = 0x02,
-    FORCE_TRX_OFF = 0x03,
-    FORCE_PLL_ON = 0x04,
-    RX_ON = 0x06,
-    TRX_OFF = 0x08,
-    PLL_ON = 0x09,
-    BUSY_RX_AACK = 0x11,
-    SLEEP = 0x0F,
-    RX_AACK_ON = 0x16,
-    TX_ARET_ON = 0x19
-}rf_trx_states_t;
-
-extern void rf_ack_wait_timer_start(uint16_t slots);
-extern void rf_ack_wait_timer_stop(void);
-extern void rf_handle_cca_ed_done(void);
-extern void rf_handle_tx_end(void);
-extern void rf_handle_rx_end(void);
-extern void rf_on(void);
-extern void rf_receive(void);
-extern void rf_poll_trx_state_change(rf_trx_states_t trx_state);
-extern void rf_init(void);
-extern void rf_set_mac_address(const uint8_t *ptr);
-extern int8_t rf_device_register(void);
-extern int8_t rf_start_cca(uint8_t *data_ptr, uint16_t data_length, uint8_t tx_handle);
-extern void rf_cca_abort(void);
-extern void rf_read_mac_address(uint8_t *ptr);
-extern int8_t rf_read_random(void);
-extern void rf_calibration_cb(void);
-extern uint8_t rf_init_phy_mode(void);
-extern void rf_ack_wait_timer_interrupt(void);
-extern void rf_calibration_timer_interrupt(void);
-extern void rf_calibration_timer_start(uint32_t slots);
-extern void rf_front_end_rx_lna(void);
-extern void rf_front_end_sleep(void);
-static int8_t rf_interface_state_control(phy_interface_state_e new_state, uint8_t rf_channel);
-static int8_t rf_extension(phy_extension_type_e extension_type,uint8_t *data_ptr);
-static int8_t rf_address_write(phy_address_type_e address_type,uint8_t *address_ptr);
-
- #ifdef __cplusplus
-}
-#endif
-#endif /* DRIVERRFPHY_H_ */