commit 89e9d426e91c056e659fccf5e5c4392618f8f777
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 16:44:19 2017 -0600
Update some comments
commit 9c5d8a5833350006ed389e898b11c8c8a20e5f4f
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 16:15:54 2017 -0600
Spirit: Rename drivers/wireless/spirit/src to lib. Move Spirit network driver out of IEEE802.15.4 into drivers/wireless/spirit/drivers
commit cabc0ec9e6eb558dcb715ab17264383aa0105e7a
Merge: 87b616414a 6bd744c4b3
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 15:38:40 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 87b616414a79c01a71acea78f8258e05325c1996
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 15:37:27 2017 -0600
Spirit radio driver is mutating into a standalone network driver.
commit 507798233868a661ae8adad3e3aa117075a7a146
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 13:32:08 2017 -0600
Spirit: More radio initialization logic
commit 33af25704ce9ca83d576300d153cfe31cc6d2576
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 12:19:14 2017 -0600
Spirit: Beginning of radio initialization logic
commit 97b20014c016e55952a8f9d8f4ae29e2cc555b23
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 09:42:06 2017 -0600
Spirit: More initialization logic.
commit 295d8e27824c0417fccea2344b30bb5c93ffbabe
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 23 15:39:53 2017 -0600
Spirit: Add header file containing enumeration of commands.
commit 8a2d9dd8eb9cc70cbcdd1b913fc9022b9c9ec8da
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 23 11:33:50 2017 -0600
Spirit: Add GPIO initialization logic
commit 8b6d80c44f92024c45a6ba63ba1af3fdafe94dc3
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 23 10:07:25 2017 -0600
Spirit: Add interrupt control logic.
commit 423f846fe5c914f92a4bfea4d9d1fa33de1c77a5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 19:06:52 2017 -0600
Spirit: Yet a little more radio initialization logic.
commit 5895b979823e51ddde5ad52e6de66a8ad662e883
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 15:36:05 2017 -0600
Spirit: A little more radio initialization logic.
commit 86311ab30aad386203c181c792847dd1d37f9a02
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 13:02:32 2017 -0600
Spirit: A miniscule amount of radio initialization logic.
commit ad55e89d5ee12ea1eeea95fcd38ff3da0db4416a
Merge: 90a7666655 f4e46b0da7
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 10:56:30 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 90a766665534b05da0157dbc383cb06a98c86a79
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 10:52:52 2017 -0600
Spirit1: A few fixes for a clean build of initial configuration (not much there yet)
commit bbbf04c223230a52a7705a2161128265cfbaa480
Merge: 623d54a7f7 2319ea53a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 09:53:57 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 623d54a7f719e9032099f88f38203efee4b80722
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 09:43:52 2017 -0600
b-l475e-iot01a: Add a configuration for testing sprit radio.
commit d309d73d9f4665f9d870eb03531f450043d9389d
Merge: 52c3ddfae6 d88dc9b2e5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 09:02:06 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 52c3ddfae6802e111c2b5cf1207baf21a61dd00b
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 08:33:04 2017 -0600
Spirit: Add register definition header file.
commit 8d842ab5e8f9ca653b42f9ee88dc279f06b4fa98
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 17:27:03 2017 -0600
b-l475e-iot01a: Add initial, unverified support for the SPSRGF/Spirit1 module.
commit 73d902a1048616fb9c2dd2147cabcd8ee78e19ac
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 15:49:43 2017 -0600
Spirit: Fixes to get skeleton IEEE 802.15.4 driver build.
commit ebc5a8387bb94f0cc3827533795f3e4a33207e67
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 15:16:29 2017 -0600
Spirit1: Add framework for IEEE 802.15.4 driver. Does not yet build.
commit 52e195a7ae14ddb18bdd56258f4877381d2501ca
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 14:02:42 2017 -0600
Spirit: A little more SPI logic.
commit 90048d0c5b8a5af4d81a15d99535c84ed38d8ae9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 11:19:06 2017 -0600
Spirit: Build directories setup. Some initial files added, mostly just to verify build.
commit 8273a381ac1f6bb081b292b5e73226185e9e634c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 08:34:04 2017 -0600
USB composite: Remove references to CDC/ACM and USB MSC from composite logic. They are no longer coupled.
205 lines
9.7 KiB
C
205 lines
9.7 KiB
C
/******************************************************************************
|
|
* include/nuttx/wireless/spirit/spirit_pktcommon.h
|
|
* Configuration and management of the common features of SPIRIT packets.
|
|
*
|
|
* Copyright(c) 2015 STMicroelectronics
|
|
* Author: VMA division - AMS
|
|
* Version 3.2.2 08-July-2015
|
|
*
|
|
* Adapted for NuttX by:
|
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without modification,
|
|
* are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
* 2. 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.
|
|
* 3. Neither the name of STMicroelectronics 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 HOLDER 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.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef __INCLUDE_NUTT_WIRELESS_SPIRIT_SPIRIT_PKTCOMMON_H
|
|
#define __INCLUDE_NUTT_WIRELESS_SPIRIT_SPIRIT_PKTCOMMON_H
|
|
|
|
/* This module provides all the common functions and definitions used by the
|
|
* packets modules. Here are also defined all the generic enumeration types
|
|
* that are redefined in the specific packets modules, but every enumeration
|
|
* value is referred to this module. So the user who wants to configure the
|
|
* preamble of a Basic, or a STack packet has to use the enumeration values
|
|
* defined here.
|
|
*
|
|
* Example:
|
|
*
|
|
* ...
|
|
*
|
|
* spirit_pktbasic_set_preamblen(PKT_PREAMBLE_LENGTH_18BYTES);
|
|
*
|
|
* ...
|
|
*/
|
|
|
|
/******************************************************************************
|
|
* Included Files
|
|
******************************************************************************/
|
|
|
|
#include "spirit_types.h"
|
|
|
|
/******************************************************************************
|
|
* Pre-processor Definitions
|
|
******************************************************************************/
|
|
|
|
/* Macros used in assertions */
|
|
|
|
#define IS_PKT_PREAMBLE_LENGTH(len) \
|
|
((len == PKT_PREAMBLE_LENGTH_01BYTE) || (len == PKT_PREAMBLE_LENGTH_02BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_03BYTES) || (len == PKT_PREAMBLE_LENGTH_04BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_05BYTES) || (len == PKT_PREAMBLE_LENGTH_06BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_07BYTES) || (len == PKT_PREAMBLE_LENGTH_08BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_09BYTES) || (len == PKT_PREAMBLE_LENGTH_10BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_11BYTES) || (len == PKT_PREAMBLE_LENGTH_12BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_13BYTES) || (len == PKT_PREAMBLE_LENGTH_14BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_15BYTES) || (len == PKT_PREAMBLE_LENGTH_16BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_17BYTES) || (len == PKT_PREAMBLE_LENGTH_18BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_19BYTES) || (len == PKT_PREAMBLE_LENGTH_20BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_21BYTES) || (len == PKT_PREAMBLE_LENGTH_22BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_23BYTES) || (len == PKT_PREAMBLE_LENGTH_24BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_25BYTES) || (len == PKT_PREAMBLE_LENGTH_26BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_27BYTES) || (len == PKT_PREAMBLE_LENGTH_28BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_29BYTES) || (len == PKT_PREAMBLE_LENGTH_30BYTES) || \
|
|
(len == PKT_PREAMBLE_LENGTH_31BYTES) || (len == PKT_PREAMBLE_LENGTH_32BYTES))
|
|
#define IS_PKT_SYNC_LENGTH(len) \
|
|
((len == PKT_SYNC_LENGTH_1BYTE) || (len == PKT_SYNC_LENGTH_2BYTES) || \
|
|
(len == PKT_SYNC_LENGTH_3BYTES) || (len == PKT_SYNC_LENGTH_4BYTES))
|
|
#define IS_PKT_FIX_VAR_LENGTH(len) \
|
|
((len == PKT_LENGTH_FIX) || (len == PKT_LENGTH_VAR))
|
|
#define IS_PKT_CRC_MODE(mode) \
|
|
((mode == PKT_NO_CRC) || (mode == PKT_CRC_MODE_8BITS) || \
|
|
(mode == PKT_CRC_MODE_16BITS_1) || (mode == PKT_CRC_MODE_16BITS_2) || \
|
|
(mode == PKT_CRC_MODE_24BITS))
|
|
#define IS_PKT_CONTROL_LENGTH(len) \
|
|
((len == PKT_CONTROL_LENGTH_0BYTES) || (len == PKT_CONTROL_LENGTH_1BYTE) || \
|
|
(len == PKT_CONTROL_LENGTH_2BYTES) || (len == PKT_CONTROL_LENGTH_3BYTES) || \
|
|
(len == PKT_CONTROL_LENGTH_4BYTES))
|
|
|
|
/******************************************************************************
|
|
* Public Types
|
|
******************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/* Preamble length in bytes enumeration. */
|
|
|
|
enum pkt_premblen_e
|
|
{
|
|
PKT_PREAMBLE_LENGTH_01BYTE = 0x00, /* Preamble length 1 byte */
|
|
PKT_PREAMBLE_LENGTH_02BYTES = 0x08, /* Preamble length 2 bytes */
|
|
PKT_PREAMBLE_LENGTH_03BYTES = 0x10, /* Preamble length 3 bytes */
|
|
PKT_PREAMBLE_LENGTH_04BYTES = 0x18, /* Preamble length 4 bytes */
|
|
PKT_PREAMBLE_LENGTH_05BYTES = 0x20, /* Preamble length 5 bytes */
|
|
PKT_PREAMBLE_LENGTH_06BYTES = 0x28, /* Preamble length 6 bytes */
|
|
PKT_PREAMBLE_LENGTH_07BYTES = 0x30, /* Preamble length 7 bytes */
|
|
PKT_PREAMBLE_LENGTH_08BYTES = 0x38, /* Preamble length 8 bytes */
|
|
PKT_PREAMBLE_LENGTH_09BYTES = 0x40, /* Preamble length 9 bytes */
|
|
PKT_PREAMBLE_LENGTH_10BYTES = 0x48, /* Preamble length 10 bytes */
|
|
PKT_PREAMBLE_LENGTH_11BYTES = 0x50, /* Preamble length 11 bytes */
|
|
PKT_PREAMBLE_LENGTH_12BYTES = 0x58, /* Preamble length 12 bytes */
|
|
PKT_PREAMBLE_LENGTH_13BYTES = 0x60, /* Preamble length 13 bytes */
|
|
PKT_PREAMBLE_LENGTH_14BYTES = 0x68, /* Preamble length 14 bytes */
|
|
PKT_PREAMBLE_LENGTH_15BYTES = 0x70, /* Preamble length 15 bytes */
|
|
PKT_PREAMBLE_LENGTH_16BYTES = 0x78, /* Preamble length 16 bytes */
|
|
PKT_PREAMBLE_LENGTH_17BYTES = 0x80, /* Preamble length 17 bytes */
|
|
PKT_PREAMBLE_LENGTH_18BYTES = 0x88, /* Preamble length 18 bytes */
|
|
PKT_PREAMBLE_LENGTH_19BYTES = 0x90, /* Preamble length 19 bytes */
|
|
PKT_PREAMBLE_LENGTH_20BYTES = 0x98, /* Preamble length 20 bytes */
|
|
PKT_PREAMBLE_LENGTH_21BYTES = 0xa0, /* Preamble length 21 bytes */
|
|
PKT_PREAMBLE_LENGTH_22BYTES = 0xa8, /* Preamble length 22 bytes */
|
|
PKT_PREAMBLE_LENGTH_23BYTES = 0xb0, /* Preamble length 23 bytes */
|
|
PKT_PREAMBLE_LENGTH_24BYTES = 0xb8, /* Preamble length 24 bytes */
|
|
PKT_PREAMBLE_LENGTH_25BYTES = 0xc0, /* Preamble length 25 bytes */
|
|
PKT_PREAMBLE_LENGTH_26BYTES = 0xc8, /* Preamble length 26 bytes */
|
|
PKT_PREAMBLE_LENGTH_27BYTES = 0xd0, /* Preamble length 27 bytes */
|
|
PKT_PREAMBLE_LENGTH_28BYTES = 0xd8, /* Preamble length 28 bytes */
|
|
PKT_PREAMBLE_LENGTH_29BYTES = 0xe0, /* Preamble length 29 bytes */
|
|
PKT_PREAMBLE_LENGTH_30BYTES = 0xe8, /* Preamble length 30 bytes */
|
|
PKT_PREAMBLE_LENGTH_31BYTES = 0xf0, /* Preamble length 31 bytes */
|
|
PKT_PREAMBLE_LENGTH_32BYTES = 0xf8 /* Preamble length 32 bytes */
|
|
};
|
|
|
|
/* Sync length in bytes enumeration. */
|
|
|
|
enum pkt_synlen_e
|
|
{
|
|
PKT_SYNC_LENGTH_1BYTE = 0x00, /* Sync length 1 byte */
|
|
PKT_SYNC_LENGTH_2BYTES = 0x02, /* Sync length 2 bytes */
|
|
PKT_SYNC_LENGTH_3BYTES = 0x04, /* Sync length 3 bytes */
|
|
PKT_SYNC_LENGTH_4BYTES = 0x06, /* Sync length 4 bytes */
|
|
};
|
|
|
|
/* Fixed or variable payload length enumeration. */
|
|
|
|
enum pkt_fixvar_len_e
|
|
{
|
|
PKT_LENGTH_FIX = 0x00, /* Fixed payload length */
|
|
PKT_LENGTH_VAR = 0x01 /* Variable payload length */
|
|
};
|
|
|
|
/* CRC length in bytes enumeration. */
|
|
|
|
enum pkt_crcmode_e
|
|
{
|
|
PKT_NO_CRC = 0x00, /* No CRC */
|
|
PKT_CRC_MODE_8BITS = 0x20, /* CRC length 8 bits - poly: 0x07 */
|
|
PKT_CRC_MODE_16BITS_1 = 0x40, /* CRC length 16 bits - poly: 0x8005 */
|
|
PKT_CRC_MODE_16BITS_2 = 0x60, /* CRC length 16 bits - poly: 0x1021 */
|
|
PKT_CRC_MODE_24BITS = 0x80, /* CRC length 24 bits - poly: 0x864CFB */
|
|
};
|
|
|
|
/* Control length in bytes enumeration for SPIRIT packets. */
|
|
|
|
enum pkt_ctrllen_e
|
|
{
|
|
PKT_CONTROL_LENGTH_0BYTES = 0x00, /* Control length 0 byte */
|
|
PKT_CONTROL_LENGTH_1BYTE, /* Control length 1 byte */
|
|
PKT_CONTROL_LENGTH_2BYTES, /* Control length 2 bytes */
|
|
PKT_CONTROL_LENGTH_3BYTES, /* Control length 3 bytes */
|
|
PKT_CONTROL_LENGTH_4BYTES /* Control length 4 bytes */
|
|
};
|
|
|
|
/******************************************************************************
|
|
* Public Function Prototypes
|
|
******************************************************************************/
|
|
|
|
/******************************************************************************
|
|
* Name:
|
|
*
|
|
* Description:
|
|
*
|
|
* Input Parameters:
|
|
*
|
|
* Returned Value:
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCLUDE_NUTT_WIRELESS_SPIRIT_SPIRIT_PKTCOMMON_H */
|