iSensor-SPI-Buffer  1.15
Firmware for the iSensor-SPI-Buffer board to enable full throughput buffered data capture on Analog Devices IMUs
isr.h
Go to the documentation of this file.
1 
11 #ifndef INC_ISR_H_
12 #define INC_ISR_H_
13 
14 /* Header includes require for prototypes */
15 #include <stdint.h>
16 
18 #define USER_SPI_CS_INT_MSK (0x3Fu << 10u)
19 
20 /* Public function prototypes */
21 
22 /* @cond DOXYGEN_IGNORE */
23 
24 /* User SPI port related interrupts */
25 void EXTI15_10_IRQHandler(void);
26 void DMA1_Channel5_IRQHandler(void);
27 
28 /* IMU SPI port related interrupts */
29 void DMA1_Channel2_IRQHandler(void);
30 void DMA1_Channel3_IRQHandler(void);
31 
32 /* Data ready related interrupts */
33 void EXTI9_5_IRQHandler();
34 void EXTI4_IRQHandler();
35 void TIM4_IRQHandler();
36 
37 /* Fault exceptions */
38 void HardFault_Handler(void);
39 void MemManage_Handler(void);
40 void BusFault_Handler(void);
41 void UsageFault_Handler(void);
42 /* @endcond */
43 
44 /* Public variables exported from module */
45 extern volatile uint32_t g_wordsPerCapture;
46 extern volatile uint32_t g_captureInProgress;
47 extern volatile uint32_t g_spi_rx_upper;
48 
49 #endif /* INC_ISR_H_ */
BufferElementHandle
static uint8_t * BufferElementHandle
Definition: isr.c:33
WordsCaptured
static volatile uint32_t WordsCaptured
Definition: isr.c:39
DMA1_Channel3_IRQHandler
void DMA1_Channel3_IRQHandler(void)
This function handles DMA1 channel3 global interrupt (spi1 (IMU) Tx).
Definition: isr.c:297
DMA1_Channel5_IRQHandler
void DMA1_Channel5_IRQHandler(void)
This function handles DMA1 channel5 global interrupt (spi2 (user) Tx).
Definition: isr.c:372
BusFault_Handler
void BusFault_Handler(void)
This function handles Pre-fetch fault, memory access fault.
Definition: isr.c:640
reg.h
Header file for iSensor-SPI-Buffer register interfacing module.
EXTI4_IRQHandler
void EXTI4_IRQHandler()
EXTI 4 interrupt handler.
Definition: isr.c:168
MemManage_Handler
void MemManage_Handler(void)
This function handles Memory management fault.
Definition: isr.c:628
g_dma_spi2_tx
DMA_HandleTypeDef g_dma_spi2_tx
Definition: main.c:43
g_dma_spi1_tx
DMA_HandleTypeDef g_dma_spi1_tx
Definition: main.c:40
TIM4_IRQHandler
void TIM4_IRQHandler()
IMU SPI timer ISR.
Definition: isr.c:185
user_spi.h
Header file for iSensor-SPI-Buffer user SPI (slave SPI) module.
ERROR_HARDFAULT
#define ERROR_HARDFAULT
Definition: flash.h:42
g_user_burst_start
volatile uint32_t g_user_burst_start
Definition: user_spi.c:20
dio.h
Header file for iSensor-SPI-Buffer DIO interfacing module.
g_update_flags
volatile uint32_t g_update_flags
Definition: reg.c:32
Buffer_Add_Element
uint8_t * Buffer_Add_Element()
Add an element to the buffer.
Definition: buffer.c:133
Flash_Log_Fault
void Flash_Log_Fault(uint32_t faultCode)
Stores an error code to flash memory.
Definition: flash.c:173
User_SPI_Burst_Disable
void User_SPI_Burst_Disable()
Restore SPI functionality after a burst read.
Definition: user_spi.c:135
Timer_Increment_PPS_Time
void Timer_Increment_PPS_Time()
Increment PPS timestamp by 1.
Definition: timer.c:170
DMA1_Channel2_IRQHandler
void DMA1_Channel2_IRQHandler(void)
This function handles DMA1 channel2 global interrupt (spi1 (IMU) Rx).
Definition: isr.c:259
Reg_Read
uint16_t Reg_Read(uint8_t regAddr)
Process a register read request (from master)
Definition: reg.c:206
g_wordsPerCapture
volatile uint32_t g_wordsPerCapture
Definition: isr.c:27
Buffer_Can_Add_Element
uint32_t Buffer_Can_Add_Element()
Checks if an element can be added to the buffer.
Definition: buffer.c:52
imu.h
Implementation for iSensor-SPI-Buffer IMU interfacing module.
HardFault_Handler
void HardFault_Handler(void)
This function handles Hard fault interrupt.
Definition: isr.c:616
SPI2_IRQHandler
void SPI2_IRQHandler(void)
This function handles the user SPI (SPI2) rx data interrupt.
Definition: isr.c:423
BufferSignature
static uint32_t BufferSignature
Definition: isr.c:42
ERROR_MEM
#define ERROR_MEM
Definition: flash.h:45
IMU_Start_Burst
void IMU_Start_Burst(uint8_t *bufEntry)
Start an IMU burst data capture (using DMA)
Definition: imu.c:117
Timer_Get_PPS_Timestamp
uint32_t Timer_Get_PPS_Timestamp()
Gets the current 32-bit value from PPS timestamp registers.
Definition: timer.c:113
timer.h
Header file for iSensor-SPI-Buffer timer module.
EXTI9_5_IRQHandler
void EXTI9_5_IRQHandler()
IMU data ready ISR. Kicks off data capture process.
Definition: isr.c:58
USER_SPI_CS_INT_MSK
#define USER_SPI_CS_INT_MSK
Definition: isr.h:18
Reg_Is_Burst_Read
bool Reg_Is_Burst_Read(uint8_t addr)
Check if the requested read is a start of a burst.
Definition: reg.c:105
g_bufCount
uint32_t g_bufCount
Definition: buffer.c:19
g_wordsPerCapture
volatile uint32_t g_wordsPerCapture
Definition: isr.c:27
ERROR_USAGE
#define ERROR_USAGE
Definition: flash.h:51
buffer.h
Header file for iSensor-SPI-Buffer buffer data structure module.
EXTI15_10_IRQHandler
void EXTI15_10_IRQHandler(void)
This function handles the user SPI (SPI2) chip select rising edge.
Definition: isr.c:514
User_SPI_Reset
void User_SPI_Reset(bool register_mode)
Reset user SPI port.
Definition: user_spi.c:40
UsageFault_Handler
void UsageFault_Handler(void)
This function handles Undefined instruction or illegal state.
Definition: isr.c:652
g_captureInProgress
volatile uint32_t g_captureInProgress
Definition: isr.c:30
g_dma_spi1_rx
DMA_HandleTypeDef g_dma_spi1_rx
Definition: main.c:37
ProcessSPITransaction
static void ProcessSPITransaction(uint32_t rx)
Process a 16 bit data word from the user SPI.
Definition: isr.c:591
main.h
Header file for iSensor-SPI-Buffer main.
ERROR_BUS
#define ERROR_BUS
Definition: flash.h:48
data_capture.h
Header file for iSensor-SPI-Buffer autonomous IMU data acquisition module.
BufferSigHandle
static uint16_t * BufferSigHandle
Definition: isr.c:36
g_userburstRunning
volatile uint32_t g_userburstRunning
Definition: user_spi.c:17
g_captureInProgress
volatile uint32_t g_captureInProgress
Definition: isr.c:30
FinishImuBurst
static void FinishImuBurst()
Cleans up an IMU burst data read.
Definition: isr.c:341
DATA_READY_INT_MASK
#define DATA_READY_INT_MASK
Definition: dio.h:48
ImuDMADone
static volatile uint32_t ImuDMADone
Definition: isr.c:45
Reg_Write
uint16_t Reg_Write(uint8_t regAddr, uint8_t regValue)
Process a register write request (from master)
Definition: reg.c:278
isr.h
Header file for the interrupt service routine module.
PPS_INT_MASK
#define PPS_INT_MASK
Definition: timer.h:32
Timer_Get_Microsecond_Timestamp
uint32_t Timer_Get_Microsecond_Timestamp()
Gets the current 32-bit value from the IMU sample timestamp timer.
Definition: timer.c:103
flash.h
Header file for iSensor-SPI-Buffer flash memory interfacing functions.