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

Committer:
andreikovacs
Date:
Tue Aug 18 13:04:46 2015 +0000
Revision:
28:2555c5ae3ccd
Parent:
27:1eb29717bfd9
Added fsl_phy_mcr20a and fsl_smac libraries

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andreikovacs 27:1eb29717bfd9 1 #ifndef __CIRCULAR_BUFFER_H__
andreikovacs 27:1eb29717bfd9 2 #define __CIRCULAR_BUFFER_H__
andreikovacs 27:1eb29717bfd9 3
andreikovacs 27:1eb29717bfd9 4 #include "EmbeddedTypes.h"
andreikovacs 27:1eb29717bfd9 5 #include "MemManager.h"
andreikovacs 27:1eb29717bfd9 6
andreikovacs 27:1eb29717bfd9 7 #ifndef gCircularBufferSize_c
andreikovacs 27:1eb29717bfd9 8 #define gCircularBufferSize_c 32
andreikovacs 27:1eb29717bfd9 9 #endif
andreikovacs 27:1eb29717bfd9 10
andreikovacs 27:1eb29717bfd9 11 typedef enum bufferStatus_tag
andreikovacs 27:1eb29717bfd9 12 {
andreikovacs 27:1eb29717bfd9 13 buffer_Ok_c = 0,
andreikovacs 27:1eb29717bfd9 14 buffer_Empty_c,
andreikovacs 27:1eb29717bfd9 15 buffer_Full_c
andreikovacs 27:1eb29717bfd9 16 }bufferStatus_t;
andreikovacs 27:1eb29717bfd9 17
andreikovacs 27:1eb29717bfd9 18 class CircularBuffer {
andreikovacs 27:1eb29717bfd9 19 public:
andreikovacs 27:1eb29717bfd9 20 CircularBuffer();
andreikovacs 27:1eb29717bfd9 21 CircularBuffer(uint32_t sz);
andreikovacs 27:1eb29717bfd9 22 ~CircularBuffer();
andreikovacs 27:1eb29717bfd9 23 bufferStatus_t addToBuffer (uint8_t c);
andreikovacs 27:1eb29717bfd9 24 bufferStatus_t getFromBuffer (uint8_t *c);
andreikovacs 27:1eb29717bfd9 25 uint32_t getCount();
andreikovacs 27:1eb29717bfd9 26 private:
andreikovacs 27:1eb29717bfd9 27 uint8_t *buffer;
andreikovacs 27:1eb29717bfd9 28 uint32_t size;
andreikovacs 27:1eb29717bfd9 29 uint32_t readIndex;
andreikovacs 27:1eb29717bfd9 30 uint32_t writeIndex;
andreikovacs 27:1eb29717bfd9 31 uint32_t count;
andreikovacs 27:1eb29717bfd9 32 };
andreikovacs 27:1eb29717bfd9 33
andreikovacs 27:1eb29717bfd9 34 #endif