Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Revision:
18:6a4db94011d3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-dev/targets/TARGET_Silicon_Labs/TARGET_SL_RAIL/efr32-rf-driver/rail/rail_chip_specific.h	Sun May 14 23:18:57 2017 +0000
@@ -0,0 +1,95 @@
+/***************************************************************************//**
+ * @file rail_chip_specific.h
+ * @brief This file contains the type definitions for EFR32 chip specific
+ *        aspects of RAIL.
+ * @copyright Copyright 2015 Silicon Laboratories, Inc. http://www.silabs.com
+ ******************************************************************************/
+
+#ifndef __RAIL_CHIP_SPECIFIC_H_
+#define __RAIL_CHIP_SPECIFIC_H_
+
+// Include standard type headers to help define structures
+#include <stdint.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+// -----------------------------------------------------------------------------
+// Calibration
+// -----------------------------------------------------------------------------
+/**
+ * @addtogroup Calibration
+ * @{
+ */
+
+/**
+ * @addtogroup EFR32
+ * @{
+ * @brief EFR32 Specific Calibrations
+ *
+ * The EFR32 has two supported calibrations. There is the Image Rejection (IR)
+ * calibration and a temperature dependent calibration. The IR calibration is
+ * something that can be computed once and stored off or computed each time at
+ * startup. It is PHY specific and provides sensitivity improvements so we
+ * highly recommend using it. The IR calibration should only be run when the
+ * radio is IDLE.
+ *
+ * The temperature dependent calibrations are used to recalibrate the synth if
+ * the temperature crosses 0C or the temperature delta since the last
+ * calibration exceeds 70C while sitting in receive. RAIL will run VCO
+ * calibration automatically upon entering receive state so the application can
+ * omit this calibration if the stack will re-enter receive with enough
+ * frequency to not hit this temperature delta.  If the application does not
+ * calibrate for temperature, it's possible to miss receive packets due to
+ * drift in the carrier frequency.
+ */
+
+/**
+ * @struct RAIL_CalValues_t
+ * @brief Calibration value structure
+ *
+ * This structure contains the set of persistent calibration values for the
+ * EFR32. You can set these before hand and apply them at startup to save the
+ * time required to compute them. Any of these values may be set to
+ * RAIL_CAL_INVALID_VALUE to force the code to compute that calibration value.
+ */
+typedef struct RAIL_CalValues {
+  uint32_t imageRejection; /**< Image Rejection (IR) calibration value */
+} RAIL_CalValues_t;
+
+/** Invalid calibration value */
+#define RAIL_CAL_INVALID_VALUE  (0xFFFFFFFF)
+
+/**
+ * A define to set all RAIL_CalValues_t values to uninitialized.
+ *
+ * This define can be used when you have no data to pass to the calibration
+ * routines but wish to compute and save all possible calibrations.
+ */
+#define RAIL_CALVALUES_UNINIT {                         \
+  RAIL_CAL_INVALID_VALUE, \
+}
+
+/** EFR32 specific temperature calibration bit */
+#define RAIL_CAL_TEMP_VCO         (0x00000001)
+/** EFR32 specific IR calibration bit */
+#define RAIL_CAL_ONETIME_IRCAL    (0x00010000)
+
+/** Mask to run temperature dependent calibrations */
+#define RAIL_CAL_TEMP         (RAIL_CAL_TEMP_VCO)
+/** Mask to run one time calibrations */
+#define RAIL_CAL_ONETIME      (RAIL_CAL_ONETIME_IRCAL)
+/** Mask to run optional performance calibrations */
+#define RAIL_CAL_PERF         ()
+/** Mask for calibrations that require the radio to be off */
+#define RAIL_CAL_OFFLINE      (RAIL_CAL_ONETIME_IRCAL)
+/** Mask to run all possible calibrations for this chip */
+#define RAIL_CAL_ALL          (RAIL_CAL_TEMP | RAIL_CAL_ONETIME)
+/** Mask to run all pending calibrations */
+#define RAIL_CAL_ALL_PENDING  (0x00000000)
+
+/**
+ * @}
+ * @}
+ */
+
+#endif