Basic Firmware which supported same AT commands of XBee modules and make it possible to control such modules via AT.
- ARM Cortex M0
- created in [ Atmel Studio 7 ] 1
- current build created for [ µracoli stack ] 2
- based on IEEE 802.15.4 protocol
- 0.5.x [ repository version ] 3
ATcommands/at_api_main.c (main file)
ATcommands/base/ap_exec.c
ATcommands/base/ap_frame.c
ATcommands/base/ap_local.c
ATcommands/base/ap_parser.c
ATcommands/base/ap_read.c
ATcommands/base/ap_trx.c
ATcommands/base/ap_write.c
ATcommands/base/at_exec.c
ATcommands/base/at_parser.c
ATcommands/base/at_read.c
ATcommands/base/at_write.c
ATcommands/base/attable.c
ATcommands/base/circularBuffer.c
ATcommands/base/helper.c
ATcommands/base/nvm_eeprom1.c
ATcommands/base/rfmodul.c
ATcommands/base/tp_trx.c
ATcommands/header/_global.h
ATcommands/header/ap_frames.h
ATcommands/header/at_commands.h
ATcommands/header/circularBuffer.h
ATcommands/header/cmd.h
ATcommands/header/defaultConfig.h
ATcommands/header/enum_cmd.h
ATcommands/header/enum_status.h
ATcommands/header/helper.h
ATcommands/header/rfmodul.h
ATuracoli/trx0.c
ATuracoli/uart0.c
ATuracoli/timer0.c
ATuracoli/stackrelated.h
ATuracoli/stackrelated_timer.h
ATuracoli/stackdefines.h
/README.md
The AT command version number contains two version numbers at once.
- the first part is the version number of the AT command API
- the second part consists the firmware version on which the AT command API is based
- a bug which prevents to handle received frames was solved
- the firmware version (ATVR) was changed to 0xde10
- the hardware version (ATHV) was changed to 0x0
- consequence: the module can be read by X-CTU Tool only with dresden elektronik add on (not included in GIT folder)
- the UART baud rate works now correctly
- the power level setting is now included
- ATWR updates data only if it has been modified
- several minor bugs are solved
- AT and API mode are running now with state machine parser
- timer to enter and leave AT mode are equal to XBee implementation
- add TX status API frames
- add TX transmit API frames with 64-bit and 16-bit destination address
- add missing RX receive API frames, except RX (Receive) Packet IO
- adding support for broadcast messages
- speed up writing process
- configurable in AT & AP mode (XCTU, HTerm)
- configurable in AT mode PuTTY (other programs are not tested)
- set PAN ID
- set channel
- set destination address (64-bit)
- read own IEEE address 64-bit (ConBee)
- set node identifier
- write parameter to EEPROM
- reset to default
- set the Command Mode Timeout
- stored the symbol to enter the AT command mode
- sending of simple text messages (Point2Point)
- current version support only a package size of 127 bytes, everything else get lost
- sending of remote AT commands (Point2Point)
- received text messages
- received “API Frames” over air, except RX (Receive) Packets
- _global.h
- declaration of global variable
uint16_t dirtyBits - definitions of dirty bits status values
- definition of prototype version string
- type definition of enumerated bool values
typedef enum bool_t - type definition of enumerated device modes
typedef enum device_mode
- ap_frames.h
- declaration of prototypes for API frame functions
- at_commands.h
- declaration of prototypes for AT command functions
- circularBuffer.h
- definition of buffer size
- type definition of enumerated buffer types
bufType_n - declaration of prototypes for buffer functions
- cmd.h
- defines of read, write and execute actions
- definition of typedef struct
CMD - declaration of prototypes for finding commands in table
- defaultConfig.h
- defines of standard values (XBee based)
- if you add new XBee modules please add the standard values in this file
- enum_cmd.h
- enumeration of all AT commands
- if you want to add new AT commands, this file needs to be edited
- enum_status.h
- enumeration of status and error messages
- helper.h
- declaration of prototypes for validation functions
- rfmodul.h
- type definition of structure
RFmodul(stored all parameters of the module in flash memory) - declaration of prototypes for set and get functions
- declaration of prototypes for reading from EEPROM and writing to the EEPROM
- stackrelated.h – Stack dependency
- declaration of prototype pointer to UART functions
- declaration of prototype pointer to transceiver functions
- prototypes of basic TRX and UART functions
- stackdefines.h
- renewed defines to make it easier to replace stack related defines
- stackrelated_timer.h
- declaration of prototype pointer to Timer functions
- at_api_main.c –-- main file with main function
- declaration and initialization of dirtyBits variable
- reads values of EEPROM and store it into FLASH
- configure the module for UART and transceiver operating
- starting active waiting loop
- ap_exec.c
- definition of execution function for API frames
- ap_frame.c
- definition of API frame structure
api_f - initialization of
api_f frame - definition of API frame access functions for api_f structure
- ap_local.c
- definition of API frame type values
- definition of mac mode values
- definition of UART API frame handle function
- definition of local response messages
- local device response API frame (for special DE commands)
- local AT command response API frame
- TX status API frame
- RX receive package API frame - remote frame response API frame - definition of local remote frame handling
- ap_parser.c
- definition of API frame parser with state machine
- ap_read.c
- definition of read function for API frames
- ap_trx.c
- definition for API transceiver frames
- TX transmit frame with 16-bit and 64-bit destination address - remote frame - remote response frame
- ap_write.c
- definition of write function for API frames
- at_exec.c
- definition of execution function for AT commands
- at_parser.c
- definition of API frame parser with state machine
- at_read.c
- definition of read function for AT commands
- at_write.c
- definition of write function for AT commands
- attable.c
- definition of AT command table, including:
- name (string)
- ID
- address at offset in api_f structure
- read, write, execution options
- maximum command size - total minimum and maximum values
- set function pointer - validation function pointer - definition of 'find in table' functions
- if you want to add new AT commands, this file needs to be edited
- circularBuffer.c
- type definition of buffer structure
deBuffer_t - definition and initialization of a buffer array
- definition of buffer functions
- helper.c
- definition validation functions
- nvm_eeprom1.c
- set user and default values functions
- get function
- EEPROM crc function
- rfmodul.c
- definition of get and set functions for RFmodul structure
- tp_trx.c
- definition for printing received frames
- definition to create a message frame for transceiver
- timer0.c
- initialize timer pointer
- definition of 'Millisecond'
- trx0.c
- initialize of transceiver functions
- handler for sending and receiving
- functions to pack data packages
- uart.c
- initialize of UART pointer functions
- definition for printing status messages through UART
created by http://dresden-elektronik.de/