// ************************************************************************************************* // // Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ // // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the // distribution. // // Neither the name of Texas Instruments Incorporated nor the names of // its contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // ************************************************************************************************* // // SimpliciTI packet size (TX only mode) // ------------------------------------- // // * packet rate (100/3) packets/second = 33.3 packets/second // * packet length 28 bytes // * packet structure 4 bytes preamble // 4 bytes sync // 1 bytes length // 1 bytes address // 16 bytes data // 12 byte network data // 4 byte user data // 2 bytes crc // // SimpliciTI frequency overview // ----------------------------- // // CC430_End_Device_433MHz.lib (433MHz ISM band) // // * base frequency 433.92 MHz // * deviation 32 kHz // * channel spacing 25 kHz // * used channel number 0 (frequency agility/hopping disabled) // * data rate 76.8 kBaud // * output power 1.4 dBm // * duty 9,6% (TX only mode, 32 packets / second) // // CC430_End_Device_868MHz.lib (868MHz ISM band) // // * base frequency 869.525 MHz // * deviation 32 kHz // * channel spacing 25 kHz // * used channel number 0 (frequency agility/hopping disabled) // * data rate 76.8 kBaud // * output power 1.1 dBm // * duty 9,6% (TX only mode, 32 packets / second) // // CC430_End_Device_915MHz.lib (915MHz ISM band) // // * base frequency 902.000 MHz // * deviation 32 kHz // * channel spacing 200 kHz // * used channel number 20 (frequency agility/hopping disabled) // * data rate 76.8 kBaud // * output power 1.3 dBm // * duty 9.6% (TX only mode, 32 packets / second) // // ************************************************************************************************* // --------------------------------------------------------------- // Generic defines and variables // Entry point into SimpliciTI library extern unsigned char simpliciti_link(void); // 4 byte device address overrides device address set during compile time extern unsigned char simpliciti_ed_address[4]; // Maximum data length #define SIMPLICITI_MAX_PAYLOAD_LENGTH (32u) // Data to send / receive extern unsigned char simpliciti_data[SIMPLICITI_MAX_PAYLOAD_LENGTH]; // Flag contains status information and triggers to send data or to exit SimpliciTI library // Control is done from outside SimpliciTI library extern unsigned char simpliciti_flag; #define SIMPLICITI_STATUS_LINKING (BIT0) #define SIMPLICITI_STATUS_LINKED (BIT1) #define SIMPLICITI_STATUS_ERROR (BIT2) #define SIMPLICITI_TRIGGER_SEND_DATA (BIT3) #define SIMPLICITI_TRIGGER_RECEIVED_DATA (BIT4) #define SIMPLICITI_TRIGGER_STOP (BIT5) #define SIMPLICITI_TRIGGER_RECEIVE_DATA (BIT6) // Radio frequency offset read from calibration memory // Compensates crystal deviation from 26MHz nominal value extern unsigned char rf_frequoffset; // Macros #define getFlag(val, flag) ((val&flag)==flag) #define setFlag(val, flag) (val|=flag) #define clearFlag(val, flag) (val&=(~flag)) #define toggleFlag(val, flag) (val^=flag) // --------------------------------------------------------------- // SimpliciTI RX only // Entry point into SimpliciTI library extern void simpliciti_main_tx_only(void); // Callback function to read data from acceleration sensor or buttons and trigger sending extern void simpliciti_get_ed_data_callback(void); // --------------------------------------------------------------- // SimpliciTI Sync // Sync data length #define BM_SYNC_DATA_LENGTH (19u) // Device data (0)TYPE (1) - (18) DATA #define SYNC_ED_TYPE_R2R (1u) #define SYNC_ED_TYPE_MEMORY (2u) #define SYNC_ED_TYPE_STATUS (3u) // Host data (0)CMD (1) - (18) DATA #define SYNC_AP_CMD_NOP (1u) #define SYNC_AP_CMD_GET_STATUS (2u) #define SYNC_AP_CMD_SET_WATCH (3u) #define SYNC_AP_CMD_GET_MEMORY_BLOCKS_MODE_1 (4u) #define SYNC_AP_CMD_GET_MEMORY_BLOCKS_MODE_2 (5u) #define SYNC_AP_CMD_ERASE_MEMORY (6u) #define SYNC_AP_CMD_EXIT (7u) // Entry point into SimpliciTI library extern void simpliciti_main_sync(void); // Callback function to decode access point command extern void simpliciti_sync_decode_ap_cmd_callback(void); // Callback function to read data from application and trigger sending extern void simpliciti_sync_get_data_callback(unsigned int index); // Send reply packets (>0), 0=no need to reply extern unsigned char simpliciti_reply_count;