Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_spi_master.h"
60 #define WAVEFORM4_REG_SPI_CONFIG 0x0000
61 #define WAVEFORM4_REG_POWER_CONFIG 0x0001
62 #define WAVEFORM4_REG_CLOCK_CONFIG 0x0002
63 #define WAVEFORM4_REG_REF_ADJ 0x0003
64 #define WAVEFORM4_REG_DAC4_AGAIN 0x0004
65 #define WAVEFORM4_REG_DAC3_AGAIN 0x0005
66 #define WAVEFORM4_REG_DAC2_AGAIN 0x0006
67 #define WAVEFORM4_REG_DAC1_AGAIN 0x0007
68 #define WAVEFORM4_REG_DACX_RANGE 0x0008
69 #define WAVEFORM4_REG_DAC4_RSET 0x0009
70 #define WAVEFORM4_REG_DAC3_RSET 0x000A
71 #define WAVEFORM4_REG_DAC2_RSET 0x000B
72 #define WAVEFORM4_REG_DAC1_RSET 0x000C
73 #define WAVEFORM4_REG_CAL_CONFIG 0x000D
74 #define WAVEFORM4_REG_COMP_OFFSET 0x000E
75 #define WAVEFORM4_REG_RAM_UPDATE 0x001D
76 #define WAVEFORM4_REG_PAT_STATUS 0x001E
77 #define WAVEFORM4_REG_PAT_TYPE 0x001F
78 #define WAVEFORM4_REG_PATTERN_DLY 0x0020
79 #define WAVEFORM4_REG_DAC4_DOF 0x0022
80 #define WAVEFORM4_REG_DAC3_DOF 0x0023
81 #define WAVEFORM4_REG_DAC2_DOF 0x0024
82 #define WAVEFORM4_REG_DAC1_DOF 0x0025
83 #define WAVEFORM4_REG_WAV43_CONFIG 0x0026
84 #define WAVEFORM4_REG_WAV21_CONFIG 0x0027
85 #define WAVEFORM4_REG_PAT_TIMEBASE 0x0028
86 #define WAVEFORM4_REG_PAT_PERIOD 0x0029
87 #define WAVEFORM4_REG_DAC43_PATX 0x002A
88 #define WAVEFORM4_REG_DAC21_PATX 0x002B
89 #define WAVEFORM4_REG_DOUT_START_DLY 0x002C
90 #define WAVEFORM4_REG_DOUT_CONFIG 0x002D
91 #define WAVEFORM4_REG_DAC4_CST 0x002E
92 #define WAVEFORM4_REG_DAC3_CST 0x002F
93 #define WAVEFORM4_REG_DAC2_CST 0x0030
94 #define WAVEFORM4_REG_DAC1_CST 0x0031
95 #define WAVEFORM4_REG_DAC4_DGAIN 0x0032
96 #define WAVEFORM4_REG_DAC3_DGAIN 0x0033
97 #define WAVEFORM4_REG_DAC2_DGAIN 0x0034
98 #define WAVEFORM4_REG_DAC1_DGAIN 0x0035
99 #define WAVEFORM4_REG_SAW43_CONFIG 0x0036
100 #define WAVEFORM4_REG_SAW21_CONFIG 0x0037
101 #define WAVEFORM4_REG_DDS_TW32 0x003E
102 #define WAVEFORM4_REG_DDS_TW1 0x003F
103 #define WAVEFORM4_REG_DDS4_PW 0x0040
104 #define WAVEFORM4_REG_DDS3_PW 0x0041
105 #define WAVEFORM4_REG_DDS2_PW 0x0042
106 #define WAVEFORM4_REG_DDS1_PW 0x0043
107 #define WAVEFORM4_REG_TRIG_TW_SEL 0x0044
108 #define WAVEFORM4_REG_DDSX_CONFIG 0x0045
109 #define WAVEFORM4_REG_TW_RAM_CONFIG 0x0047
110 #define WAVEFORM4_REG_START_DLY4 0x0050
111 #define WAVEFORM4_REG_START_ADDR4 0x0051
112 #define WAVEFORM4_REG_STOP_ADDR4 0x0052
113 #define WAVEFORM4_REG_DDS_CYC4 0x0053
114 #define WAVEFORM4_REG_START_DLY3 0x0054
115 #define WAVEFORM4_REG_START_ADDR3 0x0055
116 #define WAVEFORM4_REG_STOP_ADDR3 0x0056
117 #define WAVEFORM4_REG_DDS_CYC3 0x0057
118 #define WAVEFORM4_REG_START_DLY2 0x0058
119 #define WAVEFORM4_REG_START_ADDR2 0x0059
120 #define WAVEFORM4_REG_STOP_ADDR2 0x005A
121 #define WAVEFORM4_REG_DDS_CYC2 0x005B
122 #define WAVEFORM4_REG_START_DLY1 0x005C
123 #define WAVEFORM4_REG_START_ADDR1 0x005D
124 #define WAVEFORM4_REG_STOP_ADDR1 0x005E
125 #define WAVEFORM4_REG_DDS_CYC1 0x005F
126 #define WAVEFORM4_REG_CFG_ERROR 0x0060
127 #define WAVEFORM4_SRAM_ADDRESS_MIN 0x6000
128 #define WAVEFORM4_SRAM_ADDRESS_MAX 0x6FFF
146 #define WAVEFORM4_WAV_CFG_PRESTORE_CST 0x00
147 #define WAVEFORM4_WAV_CFG_PRESTORE_SAWTOOTH 0x10
148 #define WAVEFORM4_WAV_CFG_PRESTORE_PSEUDO 0x20
149 #define WAVEFORM4_WAV_CFG_PRESTORE_DDS 0x30
150 #define WAVEFORM4_WAV_CFG_WAVE_FROM_RAM 0x00
151 #define WAVEFORM4_WAV_CFG_WAVE_PRESTORED 0x01
152 #define WAVEFORM4_WAV_CFG_WAVE_PRESTORED_DELAY 0x02
153 #define WAVEFORM4_WAV_CFG_WAVE_PRESTORED_RAM 0x03
154 #define WAVEFORM4_DDSX_CFG_ENABLE_COSINE 0x08
155 #define WAVEFORM4_SAW_CFG_RAMP_UP 0x00
156 #define WAVEFORM4_SAW_CFG_RAMP_DOWN 0x01
157 #define WAVEFORM4_SAW_CFG_TRIANGLE 0x02
158 #define WAVEFORM4_SAW_CFG_NO_WAVE 0x03
159 #define WAVEFORM4_SAW_CFG_STEP_1 0x04
165 #define WAVEFORM4_DEFAULT_GAIN 0.5
166 #define WAVEFORM4_DEFAULT_FREQUENCY 100000
172 #define WAVEFORM4_UPDATE_SETTINGS 0x01
173 #define WAVEFORM4_MEM_ACCESS_ENABLE 0x04
174 #define WAVEFORM4_MEM_ACCESS_DISABLE 0x00
175 #define WAVEFORM4_BUF_READ 0x08
176 #define WAVEFORM4_START_PATTERN 0x01
177 #define WAVEFORM4_STOP_PATTERN 0x00
183 #define WAVEFORM4_CHANNEL_1 0x00
184 #define WAVEFORM4_CHANNEL_2 0x01
185 #define WAVEFORM4_CHANNEL_3 0x02
186 #define WAVEFORM4_CHANNEL_4 0x03
192 #define WAVEFORM4_WAVE_SINE 0x00
193 #define WAVEFORM4_WAVE_COSINE 0x01
194 #define WAVEFORM4_WAVE_TRIANGLE 0x02
195 #define WAVEFORM4_WAVE_POSITIVE_SAWTOOTH 0x03
196 #define WAVEFORM4_WAVE_NEGATIVE_SAWTOOTH 0x04
202 #define WAVEFORM4_GAIN_MAX 2.0
203 #define WAVEFORM4_GAIN_MIN (-2.0)
204 #define WAVEFORM4_GAIN_RESOLUTION 1024
210 #define WAVEFORM4_MASTER_CLOCK 125000000
211 #define WAVEFORM4_FREQ_RESOLUTION 0x1000000
217 #define WAVEFORM4_SPI_READ_MASK 0x80
218 #define WAVEFORM4_SPI_WRITE_MASK 0x7F
228 #define WAVEFORM4_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
229 #define WAVEFORM4_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
247 #define WAVEFORM4_MAP_MIKROBUS( cfg, mikrobus ) \
248 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
249 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
250 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
251 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
252 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
253 cfg.trg = MIKROBUS( mikrobus, MIKROBUS_PWM );
580 #endif // WAVEFORM4_H
uint32_t freq
Definition: main.c:34
float gain
Definition: main.c:35
This file contains SPI specific macros, functions, etc.
uint8_t channel
Definition: main.c:36
uint8_t wave
Definition: main.c:37