ADI iSensor FX3 Firmware  v2.9.4-pub
Firmware for the Analog Devices EVAL-ADIS-FX3 IMU Evaluation Platform. This firmware can be compiled using the Cypress EZ USB Suite IDE
StreamFunctions.h
Go to the documentation of this file.
1 
19 #ifndef STREAM_FUNCTIONS_H
20 #define STREAM_FUNCTIONS_H
21 
22 /* Include the main header file */
23 #include "main.h"
24 
25 /* Real-time data stream functions. */
26 CyU3PReturnStatus_t AdiRealTimeStreamStart();
27 CyU3PReturnStatus_t AdiRealTimeStreamFinished();
28 
29 /* Generic data stream functions. */
30 CyU3PReturnStatus_t AdiGenericStreamStart();
31 CyU3PReturnStatus_t AdiGenericStreamFinished();
32 
33 /* Transfer stream functions */
34 CyU3PReturnStatus_t AdiTransferStreamStart();
35 CyU3PReturnStatus_t AdiTransferStreamFinished();
36 
37 /* Burst stream functions. */
38 CyU3PReturnStatus_t AdiBurstStreamStart();
39 CyU3PReturnStatus_t AdiBurstStreamFinished();
40 
41 /* I2C stream functions */
42 CyU3PReturnStatus_t AdiI2CStreamStart();
43 CyU3PReturnStatus_t AdiI2CStreamFinished();
44 
45 /* General stream functions. */
46 CyU3PReturnStatus_t AdiStopAnyDataStream();
47 CyBool_t AdiPrintStreamState();
48 CyU3PReturnStatus_t AdiConfigureDrPin();
49 
50 /* Config functions */
52 
53 /*
54  * Stream action commands
55  */
56 
58 #define ADI_STREAM_DONE_CMD 0
59 
61 #define ADI_STREAM_START_CMD 1
62 
64 #define ADI_STREAM_STOP_CMD 2
65 
66 #endif
ADI_RT_STREAM_ENABLE
#define ADI_RT_STREAM_ENABLE
Definition: AppThread.h:51
AdiConfigureDrPin
CyU3PReturnStatus_t AdiConfigureDrPin()
Configures the data ready pin as an input with edge interrupt triggering enabled.
Definition: StreamFunctions.c:1118
AdiBurstStreamFinished
CyU3PReturnStatus_t AdiBurstStreamFinished()
Cleans up resources allocated for a IMU burst stream.
Definition: StreamFunctions.c:890
BoardState::DrPolarity
CyBool_t DrPolarity
Definition: main.h:174
BoardState::DrActive
CyBool_t DrActive
Definition: main.h:171
AdiPrintStreamState
CyBool_t AdiPrintStreamState()
This function prints all the stream state variables to the terminal if VERBOSE_MODE is defined.
Definition: StreamFunctions.c:114
AdiGenericStreamFinished
CyU3PReturnStatus_t AdiGenericStreamFinished()
This function cleans up after a generic stream and notifies the host that the cancel operation was su...
Definition: StreamFunctions.c:1068
ADI_TRANSFER_STREAM_ENABLE
#define ADI_TRANSFER_STREAM_ENABLE
Definition: AppThread.h:87
FX3PinMap::ADI_PIN_DIO1
uint16_t ADI_PIN_DIO1
Definition: main.h:122
AdiI2CStreamStart
CyU3PReturnStatus_t AdiI2CStreamStart()
Starts an I2C read stream.
Definition: StreamFunctions.c:139
AdiRealTimeStreamStart
CyU3PReturnStatus_t AdiRealTimeStreamStart()
Starts a real time stream for ADcmXLx021 DUTs.
Definition: StreamFunctions.c:434
StreamingChannel
CyU3PDmaChannel StreamingChannel
Definition: main.c:70
StreamState::RegList
uint8_t * RegList
Definition: main.h:236
AdiConfigStreamStallTimer
void AdiConfigStreamStallTimer()
Configures 10MHz timer to control stall time for generic or transfer streams.
Definition: StreamFunctions.c:44
SpiDmaBuffer
CyU3PDmaBuffer_t SpiDmaBuffer
Definition: main.c:95
BoardState::I2CBitRate
uint32_t I2CBitRate
Definition: main.h:195
AdiGenericStreamFinished
CyU3PReturnStatus_t AdiGenericStreamFinished()
This function cleans up after a generic stream and notifies the host that the cancel operation was su...
Definition: StreamFunctions.c:1068
MemoryToSPI
CyU3PDmaChannel MemoryToSPI
Definition: main.c:79
StreamState::TransferWordLength
uint16_t TransferWordLength
Definition: main.h:218
BulkBuffer
uint8_t BulkBuffer[12288]
ADI_I2C_STREAM_ENABLE
#define ADI_I2C_STREAM_ENABLE
Definition: AppThread.h:99
StreamFunctions.h
Header file for all data streaming functions (generic, burst, ADcm real time, transfer).
AdiI2CStreamFinished
CyU3PReturnStatus_t AdiI2CStreamFinished()
Cleans up an I2C read stream.
Definition: StreamFunctions.c:220
AdiBurstStreamFinished
CyU3PReturnStatus_t AdiBurstStreamFinished()
Cleans up resources allocated for a IMU burst stream.
Definition: StreamFunctions.c:890
AdiSpiTransferWord
void AdiSpiTransferWord(uint8_t *txBuf, uint8_t *rxBuf)
Bi-directional SPI transfer function, in register mode. Optimized for speed.
Definition: SpiFunctions.c:120
AdiConfigurePinInterrupt
CyU3PReturnStatus_t AdiConfigurePinInterrupt(uint16_t pin, CyBool_t polarity)
configures the selected pin as an interrupt with edge triggering based on polarity
Definition: PinFunctions.c:1430
StreamState
Struct to store the current data stream state information.
Definition: main.h:204
I2CParseUSBBuffer
uint32_t I2CParseUSBBuffer(uint32_t *timeout, uint32_t *numBytes, CyU3PI2cPreamble_t *preamble)
Parses I2C command data from the USB Buffer. Used for read/write/stream.
Definition: I2cFunctions.c:179
StreamState::NumCaptures
uint32_t NumCaptures
Definition: main.h:227
StreamState::NumBuffers
uint32_t NumBuffers
Definition: main.h:230
AdiBurstStreamStart
CyU3PReturnStatus_t AdiBurstStreamStart()
Starts a burst stream for IMU products.
Definition: StreamFunctions.c:721
AdiPrintSpiConfig
void AdiPrintSpiConfig(CyU3PSpiConfig_t config)
Prints a given SPI config over the UART debug port.
Definition: SpiFunctions.c:647
ADI_STREAMING_ENDPOINT
#define ADI_STREAMING_ENDPOINT
Definition: main.h:388
AdiGetSpiConfig
CyU3PSpiConfig_t AdiGetSpiConfig()
This function parses the SPI control registers into an easier to work with config struct.
Definition: SpiFunctions.c:615
AdiBurstStreamStart
CyU3PReturnStatus_t AdiBurstStreamStart()
Starts a burst stream for IMU products.
Definition: StreamFunctions.c:721
AdiSetSpiWordLength
void AdiSetSpiWordLength(uint8_t wordLength)
Sets the SPI controller word length (4 - 32 bits)
Definition: SpiFunctions.c:793
BoardState::StallTime
uint32_t StallTime
Definition: main.h:165
StreamState::BytesPerBuffer
uint16_t BytesPerBuffer
Definition: main.h:233
BoardState
Struct to store the current board state (SPI config, USB speed, etc)
Definition: main.h:148
StreamThreadState
StreamState StreamThreadState
Definition: main.c:122
AdiStopAnyDataStream
CyU3PReturnStatus_t AdiStopAnyDataStream()
This function sets a flag to notify the streaming thread that the user requested to cancel streaming.
Definition: StreamFunctions.c:73
AdiI2CStreamStart
CyU3PReturnStatus_t AdiI2CStreamStart()
Starts an I2C read stream.
Definition: StreamFunctions.c:139
AdiRealTimeStreamFinished
CyU3PReturnStatus_t AdiRealTimeStreamFinished()
This function cleans up resources allocated for a real time stream.
Definition: StreamFunctions.c:647
AdiSpiPrepareForTransfer
void AdiSpiPrepareForTransfer()
Set up the SPI for a register based transfer.
Definition: SpiFunctions.c:72
BoardState::PinMap
FX3PinMap PinMap
Definition: main.h:192
AdiTransferStreamFinished
CyU3PReturnStatus_t AdiTransferStreamFinished()
Cleans up a protocol agnostic transfer stream.
Definition: StreamFunctions.c:414
AdiSpiResetFifo
CyU3PReturnStatus_t AdiSpiResetFifo(CyBool_t isTx, CyBool_t isRx)
This function resets the SPI FIFO and disables the SPI block after completion.
Definition: SpiFunctions.c:832
AdiSleepForMicroSeconds
CyU3PReturnStatus_t AdiSleepForMicroSeconds(uint32_t numMicroSeconds)
This function blocks thread execution for a specified number of microseconds.
Definition: HelperFunctions.c:73
StreamState::I2CStreamPreamble
CyU3PI2cPreamble_t I2CStreamPreamble
Definition: main.h:242
BoardState::SpiConfig
CyU3PSpiConfig_t SpiConfig
Definition: main.h:150
AdiTransferStreamFinished
CyU3PReturnStatus_t AdiTransferStreamFinished()
Cleans up a protocol agnostic transfer stream.
Definition: StreamFunctions.c:414
KillStreamEarly
volatile CyBool_t KillStreamEarly
Definition: main.c:119
BoardState::DrPin
uint16_t DrPin
Definition: main.h:168
BoardState::UsbBufferSize
uint16_t UsbBufferSize
Definition: main.h:156
AdiI2CStreamFinished
CyU3PReturnStatus_t AdiI2CStreamFinished()
Cleans up an I2C read stream.
Definition: StreamFunctions.c:220
EventHandler
CyU3PEvent EventHandler
Definition: main.c:60
AdiTransferStreamStart
CyU3PReturnStatus_t AdiTransferStreamStart()
Starts a protocol agnostic SPI transfer stream.
Definition: StreamFunctions.c:256
AdiRealTimeStreamStart
CyU3PReturnStatus_t AdiRealTimeStreamStart()
Starts a real time stream for ADcmXLx021 DUTs.
Definition: StreamFunctions.c:434
FX3State
BoardState FX3State
Definition: main.c:112
main.h
Main header file for the Analog Devices iSensor FX3 Demonstration Platform firmware.
AdiAppErrorHandler
void AdiAppErrorHandler(CyU3PReturnStatus_t status)
This function handles critical errors generated by the ADI application.
Definition: main.c:801
StreamState::TransferByteLength
uint32_t TransferByteLength
Definition: main.h:221
AdiStopAnyDataStream
CyU3PReturnStatus_t AdiStopAnyDataStream()
This function sets a flag to notify the streaming thread that the user requested to cancel streaming.
Definition: StreamFunctions.c:73
AdiTransferStreamStart
CyU3PReturnStatus_t AdiTransferStreamStart()
Starts a protocol agnostic SPI transfer stream.
Definition: StreamFunctions.c:256
AdiGenericStreamStart
CyU3PReturnStatus_t AdiGenericStreamStart()
Starts a register read/write stream, with options to trigger on a data ready.
Definition: StreamFunctions.c:949
AdiRealTimeStreamFinished
CyU3PReturnStatus_t AdiRealTimeStreamFinished()
This function cleans up resources allocated for a real time stream.
Definition: StreamFunctions.c:647
StreamState::PinExitEnable
CyBool_t PinExitEnable
Definition: main.h:209
AdiSendStatus
void AdiSendStatus(uint32_t status, uint16_t count, CyBool_t isControlEndpoint)
Sends status back to PC over control endpoint or manual bulk in endpoint.
Definition: HelperFunctions.c:191
ADI_TIMER_PIN_INDEX
#define ADI_TIMER_PIN_INDEX
Definition: main.h:381
USBBuffer
uint8_t USBBuffer[4096]
ADI_BURST_STREAM_ENABLE
#define ADI_BURST_STREAM_ENABLE
Definition: AppThread.h:75
AdiPrintStreamState
CyBool_t AdiPrintStreamState()
This function prints all the stream state variables to the terminal if VERBOSE_MODE is defined.
Definition: StreamFunctions.c:114
ADI_GENERIC_STREAM_ENABLE
#define ADI_GENERIC_STREAM_ENABLE
Definition: AppThread.h:63
StreamState::PinStartEnable
CyBool_t PinStartEnable
Definition: main.h:212
StreamFunctions_c
@ StreamFunctions_c
Definition: ErrorLog.h:57
AdiI2CInit
CyU3PReturnStatus_t AdiI2CInit(uint32_t BitRate, CyBool_t isDMA)
Init I2C peripheral.
Definition: I2cFunctions.c:130
StreamState::NumRealTimeCaptures
uint32_t NumRealTimeCaptures
Definition: main.h:215
AdiLogError
void AdiLogError(FileIdentifier File, uint32_t Line, uint32_t ErrorCode)
Logs a firmware error to flash memory for later examination.
Definition: ErrorLog.c:51
StreamState::BytesPerUsbPacket
uint16_t BytesPerUsbPacket
Definition: main.h:239
ADI_GENERIC_STALL_OFFSET
#define ADI_GENERIC_STALL_OFFSET
Definition: main.h:375
AdiConfigureDrPin
CyU3PReturnStatus_t AdiConfigureDrPin()
Configures the data ready pin as an input with edge interrupt triggering enabled.
Definition: StreamFunctions.c:1118
AdiGenericStreamStart
CyU3PReturnStatus_t AdiGenericStreamStart()
Starts a register read/write stream, with options to trigger on a data ready.
Definition: StreamFunctions.c:949
StreamState::RoundedByteTransferLength
uint16_t RoundedByteTransferLength
Definition: main.h:224
AdiConfigStreamStallTimer
void AdiConfigStreamStallTimer()
Configures 10MHz timer to control stall time for generic or transfer streams.
Definition: StreamFunctions.c:44