1 #ifndef GM_TIVA_MFAM_SENSOR_HPP_
2 #define GM_TIVA_MFAM_SENSOR_HPP_
4 #include <driverlib/ssi.h>
5 #include <ti/drivers/spi/SPITivaDMA.h>
6 #include <driverlib/udma.h>
7 #include "GmMFAMDataSource.hpp"
9 #ifndef GMMFAMDATA_HPP_
10 #include <GmMfamData.hpp>
12 #include <GmRingBuffer.hpp>
14 #define MFAM_SPI_DATA_SZ 24
15 #define OUT_MSG_LEN 32
16 #define MFAM_SPI_BUFFER_EXTRA 4
17 #define MFAM_SPI_TRANSACTION_SZ MFAM_SPI_DATA_SZ + MFAM_SPI_BUFFER_EXTRA
18 #define MBX_TIMEOUT 12
23 #define MFAM_FAILED_INIT 1
40 int Initialize (
int iSpiId,
int enablePinIndex, ti_sysbios_knl_Swi_Handle iSwiId,Bool waitForQuietSpi);
43 MFAM_PASSED_STARTUP = 0,
44 MFAM_FAILED_TO_INITIALIZE,
45 MFAM_SYSTEM_DID_NOT_TRY_TO_START,
47 MFAM_SPI_CHANNEL_FAILED,
52 virtual int CheckCalibrate (Bool bForceCalibrate);
53 static Void GmGetMFAMSpiData (SPI_Handle handle,
54 SPI_Transaction *transaction);
55 int CalibrateSpiBufferError ();
56 int ReadDataForTest ();
57 void ReadDataInternal ();
60 static void SetupSpiBuffers (
bool isNull);
61 static void SetupSpiParameters (SPI_TransferMode tMode,
63 static Bool m_static_pps_rx;
67 enum BufferState { Normal = 0,
70 enum BufferState mBufferState;
71 static Bool sMfamIsInStartupTest;
72 static MfamTestStates sMfamPassedTest;
73 static SPI_Handle m_static_GmSpiHandle;
74 static SPI_Params m_static_GmSpiParams;
75 static SPI_Transaction m_static_RxTxnPing,
77 static Bool m_static_BPing;
78 static int sCompassRetries;
88 static uint8_t m_static_PingBuffer [MFAM_SPI_TRANSACTION_SZ];
89 static uint8_t m_static_PongBuffer [MFAM_SPI_TRANSACTION_SZ];
95 static GmMfam *m_static_msTheOneSensor;
98 static ti_sysbios_knl_Swi_Handle m_iSwiId;
Abstract class - the interface - to the MFAM sensor. This abstract layer was created in order to acco...
Definition: GmMFAMDataSource.hpp:36
The MFAM magnetometer sensor.
Definition: GmMFAMSensor.hpp:36
GmApp/GmLoggingApp.hpp>
Definition: Analogs.hpp:47