no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
common.h
Go to the documentation of this file.
1
5
12
13#ifndef _COMMON_H_
14#define _COMMON_H_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20/* build project settings include the path to the desired platform folder for correct includes */
21#include "stdint.h"
22
23#define THROW_ERROR()
24
25#define SPIARRAYSIZE 1024
26
27/* assuming 3 byte SPI message - integer math enforces floor() */
28#define SPIARRAYTRIPSIZE ((SPIARRAYSIZE / 3) * 3)
29
30/*========================================
31 * Enums and structures
32 *=======================================*/
33/* proposed to increase number of error return values to make unique for each return */
39
45
46/* bit 0 is MESSAGE, bit 1 is WARNING, bit 2 is ERROR */
57
61typedef struct {
65 uint8_t MSBFirst;
66 uint8_t CPHA;
67 uint8_t CPOL;
69 uint8_t autoIncAddrUp;
70 uint8_t fourWireMode;
71 uint32_t spiClkFreq_Hz;
73
74/* global variable so application layer can set the log level */
76
77/* close hardware pointers */
79
80/* GPIO function */
81commonErr_t CMB_setGPIO(uint32_t GPIO);
82
83/* hardware reset function */
84commonErr_t CMB_hardReset(uint8_t spiChipSelectIndex);
85
86/* SPI read/write functions */
88 *spiSettings); /* allows the platform HAL to work with devices with various SPI settings */
90 chipSelectIndex); /* value of 0 deasserts all chip selects */
91commonErr_t CMB_SPIWriteByte(spiSettings_t *spiSettings, uint16_t addr,
92 uint8_t data); /* single SPI byte write function */
93commonErr_t CMB_SPIWriteBytes(spiSettings_t *spiSettings, uint16_t *addr,
94 uint8_t *data, uint32_t count);
95commonErr_t CMB_SPIReadByte(spiSettings_t *spiSettings, uint16_t addr,
96 uint8_t *readdata); /* single SPI byte read function */
97commonErr_t CMB_SPIWriteField(spiSettings_t *spiSettings, uint16_t addr,
98 uint8_t field_val, uint8_t mask,
99 uint8_t start_bit); /* write a field in a single register */
100commonErr_t CMB_SPIReadField(spiSettings_t *spiSettings, uint16_t addr,
101 uint8_t *field_val, uint8_t mask,
102 uint8_t start_bit); /* read a field in a single register */
103
104/* platform timer functions */
105commonErr_t CMB_wait_ms(uint32_t time_ms);
106commonErr_t CMB_wait_us(uint32_t time_us);
107commonErr_t CMB_setTimeout_ms(uint32_t timeOut_ms);
108commonErr_t CMB_setTimeout_us(uint32_t timeOut_us);
110
111/* platform logging functions */
112commonErr_t CMB_openLog(const char *filename);
114commonErr_t CMB_writeToLog(ADI_LOGLEVEL level, uint8_t deviceIndex,
115 uint32_t errorCode, const char *comment);
117
118/* platform FPGA AXI register read/write functions */
119commonErr_t CMB_regRead(uint32_t offset, uint32_t *data);
120commonErr_t CMB_regWrite(uint32_t offset, uint32_t data);
121
122/* platform DDR3 memory read/write functions */
123commonErr_t CMB_memRead(uint32_t offset, uint32_t *data, uint32_t len);
124commonErr_t CMB_memWrite(uint32_t offset, uint32_t *data, uint32_t len);
125
126int32_t platform_init(void);
127int32_t platform_remove(void);
128
129#ifdef __cplusplus
130}
131#endif
132#endif
ADI_LOGLEVEL CMB_LOGLEVEL
Definition common.c:33
commonErr_t CMB_hasTimeoutExpired()
Definition common.c:319
commonErr_t CMB_setTimeout_ms(uint32_t timeOut_ms)
Definition common.c:301
commonErr_t
Definition common.h:41
@ COMMONERR_OK
Definition common.h:42
@ COMMONERR_FAILED
Definition common.h:43
int32_t platform_init(void)
Initialize the power controller and set the core and peripherals clock divider.
Definition platform_init.c:44
commonErr_t CMB_hardReset(uint8_t spiChipSelectIndex)
Definition common.c:138
commonErr_t CMB_openLog(const char *filename)
Definition common.c:272
commonErr_t CMB_SPIWriteBytes(spiSettings_t *spiSettings, uint16_t *addr, uint8_t *data, uint32_t count)
Definition common.c:189
commonErr_t CMB_SPIReadField(spiSettings_t *spiSettings, uint16_t addr, uint8_t *field_val, uint8_t mask, uint8_t start_bit)
Definition common.c:236
commonErr_t CMB_writeToLog(ADI_LOGLEVEL level, uint8_t deviceIndex, uint32_t errorCode, const char *comment)
Definition common.c:250
commonErr_t CMB_regWrite(uint32_t offset, uint32_t data)
Definition common.c:335
commonErr_t CMB_closeLog(void)
Definition common.c:277
ADI_ERR
Definition common.h:34
@ ADIERR_INV_PARM
Definition common.h:36
@ ADIERR_FAILED
Definition common.h:37
@ ADIERR_OK
Definition common.h:35
commonErr_t CMB_closeHardware(void)
Definition common.c:128
int32_t platform_remove(void)
Definition common.c:115
commonErr_t CMB_memWrite(uint32_t offset, uint32_t *data, uint32_t len)
Definition common.c:345
commonErr_t CMB_SPIWriteField(spiSettings_t *spiSettings, uint16_t addr, uint8_t field_val, uint8_t mask, uint8_t start_bit)
Definition common.c:219
commonErr_t CMB_SPIWriteByte(spiSettings_t *spiSettings, uint16_t addr, uint8_t data)
Definition common.c:173
commonErr_t CMB_SPIReadByte(spiSettings_t *spiSettings, uint16_t addr, uint8_t *readdata)
Definition common.c:202
commonErr_t CMB_wait_ms(uint32_t time_ms)
Definition common.c:287
commonErr_t CMB_setSPIChannel(uint16_t chipSelectIndex)
Definition common.c:168
commonErr_t CMB_flushLog(void)
Definition common.c:282
commonErr_t CMB_setGPIO(uint32_t GPIO)
Definition common.c:133
commonErr_t CMB_regRead(uint32_t offset, uint32_t *data)
Definition common.c:330
ADI_LOGLEVEL
Definition common.h:47
@ ADIHAL_LOG_WARNING
Definition common.h:50
@ ADIHAL_LOG_AXI_MEM
Definition common.h:54
@ ADIHAL_LOG_ERROR
Definition common.h:51
@ ADIHAL_LOG_MESSAGE
Definition common.h:49
@ ADIHAL_LOG_ALL
Definition common.h:55
@ ADIHAL_LOG_NONE
Definition common.h:48
@ ADIHAL_LOG_SPI
Definition common.h:52
@ ADIHAL_LOG_AXI_REG
Definition common.h:53
commonErr_t CMB_wait_us(uint32_t time_us)
Definition common.c:294
commonErr_t CMB_setSPIOptions(spiSettings_t *spiSettings)
Definition common.c:163
commonErr_t CMB_memRead(uint32_t offset, uint32_t *data, uint32_t len)
Definition common.c:340
commonErr_t CMB_setTimeout_us(uint32_t timeOut_us)
Definition common.c:312
Data structure to hold SPI settings for all system device types.
Definition common.h:61
uint32_t spiClkFreq_Hz
SPI Clk frequency in Hz (default 25000000), platform will use next lowest frequency that it's baud ra...
Definition common.h:71
uint8_t MSBFirst
1 = MSBFirst, 0 = LSBFirst
Definition common.h:65
uint8_t CPHA
clock phase, sets which clock edge the data updates (valid 0 or 1)
Definition common.h:66
uint8_t fourWireMode
1: Use 4-wire SPI, 0: 3-wire SPI (SDIO pin is bidirectional). NOTE: ADI's FPGA platform always uses 4...
Definition common.h:70
uint8_t longInstructionWord
1 = 16bit instruction word, 0 = 8bit instruction word
Definition common.h:64
uint8_t CPOL
clock polarity 0 = clock starts low, 1 = clock starts high
Definition common.h:67
uint8_t chipSelectIndex
valid 1~8
Definition common.h:62
uint8_t writeBitPolarity
the level of the write bit of a SPI write instruction word, value is inverted for SPI read operation
Definition common.h:63
uint8_t autoIncAddrUp
Not implemented. For SPI Streaming, set address increment direction. 1= next addr = addr+1,...
Definition common.h:69
uint8_t enSpiStreaming
Not implemented. SW feature to improve SPI throughput.
Definition common.h:68