spectrometer  2.0.0.0
spectrometer.h
Go to the documentation of this file.
1 /*
2  * MikroSDK - MikroE Software Development Kit
3  * Copyright© 2020 MikroElektronika d.o.o.
4  *
5  * Permission is hereby granted, free of charge, to any person
6  * obtaining a copy of this software and associated documentation
7  * files (the "Software"), to deal in the Software without restriction,
8  * including without limitation the rights to use, copy, modify, merge,
9  * publish, distribute, sublicense, and/or sell copies of the Software,
10  * and to permit persons to whom the Software is furnished to do so,
11  * subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be
14  * included in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
22  * OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24 
33 // ----------------------------------------------------------------------------
34 
35 #ifndef SPECTROMETER_H
36 #define SPECTROMETER_H
37 
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_i2c_master.h"
41 
42 
43 // -------------------------------------------------------------- PUBLIC MACROS
53 #define SPECTROMETER_MAP_MIKROBUS( cfg, mikrobus ) \
54  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
55  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
56  cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
57 
63 #define SPECTROMETER_RETVAL uint8_t
64 
65 #define SPECTROMETER_OK 0x00
66 #define SPECTROMETER_INIT_ERROR 0xFF
67 
73 #define SPECTROMETER_I2C_DEV_ADR 0x39
74 
80 #define SPECTROMETER_ASTAT 0x60
81 #define SPECTROMETER_CH0_DATA_L 0x61
82 #define SPECTROMETER_CH0_DATA_H 0x62
83 #define SPECTROMETER_ITIME_L 0x63
84 #define SPECTROMETER_ITIME_M 0x64
85 #define SPECTROMETER_ITIME_H 0x65
86 #define SPECTROMETER_CH1_DATA_L 0x66
87 #define SPECTROMETER_CH1_DATA_H 0x67
88 #define SPECTROMETER_CH2_DATA_L 0x68
89 #define SPECTROMETER_CH2_DATA_H 0x69
90 #define SPECTROMETER_CH3_DATA_L 0x6A
91 #define SPECTROMETER_CH3_DATA_H 0x6B
92 #define SPECTROMETER_CH4_DATA_L 0x6C
93 #define SPECTROMETER_CH4_DATA_H 0x6D
94 #define SPECTROMETER_CH5_DATA_L 0x6E
95 #define SPECTROMETER_CH5_DATA_H 0x6F
96 #define SPECTROMETER_CFG 0x70
97 #define SPECTROMETER_STAT 0x71
98 #define SPECTROMETER_SYNC_EDGE 0x72
99 #define SPECTROMETER_GPIO 0x73
100 #define SPECTROMETER_LED 0x74
101 #define SPECTROMETER_ENABLE 0x80
102 #define SPECTROMETER_ATIME 0x81
103 #define SPECTROMETER_WTIME 0x83
104 #define SPECTROMETER_SP_TH_L_LSB 0x84
105 #define SPECTROMETER_SP_TH_L_MSB 0x85
106 #define SPECTROMETER_SP_TH_H_LSB 0x86
107 #define SPECTROMETER_SP_TH_H_MSB 0x87
108 #define SPECTROMETER_AUXID 0x90
109 #define SPECTROMETER_REVID 0x91
110 #define SPECTROMETER_ID 0x92
111 #define SPECTROMETER_STATUS 0x93
112 #define SPECTROMETER_ASTATUS 0x94
113 #define SPECTROMETER_CH0_ADC_DATA_L 0x95
114 #define SPECTROMETER_CH0_ADC_DATA_H 0x96
115 #define SPECTROMETER_CH1_ADC_DATA_L 0x97
116 #define SPECTROMETER_CH1_ADC_DATA_H 0x98
117 #define SPECTROMETER_CH2_ADC_DATA_L 0x99
118 #define SPECTROMETER_CH2_ADC_DATA_H 0x9A
119 #define SPECTROMETER_CH3_ADC_DATA_L 0x9B
120 #define SPECTROMETER_CH3_ADC_DATA_H 0x9C
121 #define SPECTROMETER_CH4_ADC_DATA_L 0x9D
122 #define SPECTROMETER_CH4_ADC_DATA_H 0x9E
123 #define SPECTROMETER_CH5_ADC_DATA_L 0x9F
124 #define SPECTROMETER_CH5_ADC_DATA_H 0xA0
125 #define SPECTROMETER_STAT_2 0xA3
126 #define SPECTROMETER_STAT_3 0xA4
127 #define SPECTROMETER_STAT_5 0xA6
128 #define SPECTROMETER_STAT_6 0xA7
129 #define SPECTROMETER_CFG_0 0xA9
130 #define SPECTROMETER_CFG_1 0xAA
131 #define SPECTROMETER_CFG_3 0xAC
132 #define SPECTROMETER_CFG_6 0xAF
133 #define SPECTROMETER_CFG_8 0xB1
134 #define SPECTROMETER_CFG_9 0xB2
135 #define SPECTROMETER_CFG_10 0xB3
136 #define SPECTROMETER_CFG_12 0xB5
137 #define SPECTROMETER_PERS 0xBD
138 #define SPECTROMETER_GPIO_2 0xBE
139 #define SPECTROMETER_ASTEP_L 0xCA
140 #define SPECTROMETER_ASTEP_H 0xCB
141 #define SPECTROMETER_AGC_GAIN_MAX 0xCF
142 #define SPECTROMETER_AZ_CFG 0xD6
143 #define SPECTROMETER_FD_TIME_1 0xD8
144 #define SPECTROMETER_FD_TIME_2 0xDA
145 #define SPECTROMETER_FD_CFG0 0xD7
146 #define SPECTROMETER_FD_STAT 0xDB
147 #define SPECTROMETER_INTENAB 0xF9
148 #define SPECTROMETER_CTL 0xFA
149 #define SPECTROMETER_FIFO_MAP 0xFC
150 #define SPECTROMETER_FIFO_LVL 0xFD
151 #define SPECTROMETER_FDATA_L 0xFE
152 #define SPECTROMETER_FDATA_H 0xFF
153 
159 #define SPECTROMETER_CFG_LED_SEL 0x08
160 #define SPECTROMETER_CFG_INT_SEL 0x04
161 #define SPECTROMETER_CFG_INT_MODE_SYND 0x03
162 #define SPECTROMETER_CFG_INT_MODE_SYNS 0x01
163 #define SPECTROMETER_CFG_INT_MODE_SPM 0x00
164 
170 #define SPECTROMETER_STAT_WAIT_SYNC 0x02
171 #define SPECTROMETER_STAT_READY 0x01
172 
178 #define SPECTROMETER_GPIO_PD_GPIO 0x02
179 #define SPECTROMETER_GPIO_PD_INT 0x01
180 
186 #define SPECTROMETER_LED_LED_ACT 0x80
187 #define SPECTROMETER_LED_LED_DRV_4MA 0x00
188 #define SPECTROMETER_LED_LED_DRV_6MA 0x01
189 #define SPECTROMETER_LED_LED_DRV_8MA 0x02
190 #define SPECTROMETER_LED_LED_DRV_10MA 0x03
191 #define SPECTROMETER_LED_LED_DRV_12MA 0x04
192 #define SPECTROMETER_LED_LED_DRV_256MA 0x7E
193 #define SPECTROMETER_LED_LED_DRV_258MA 0x7F
194 
200 #define SPECTROMETER_EN_FDEN 0x40
201 #define SPECTROMETER_EN_SMUXEN 0x10
202 #define SPECTROMETER_EN_WEN 0x08
203 #define SPECTROMETER_EN_SP_EN 0x02
204 #define SPECTROMETER_EN_PON 0x01
205 
211 #define SPECTROMETER_STATUS_ASAT 0x80
212 #define SPECTROMETER_STATUS_AINT 0x08
213 #define SPECTROMETER_STATUS_FINT 0x04
214 #define SPECTROMETER_STATUS_CINT 0x02
215 #define SPECTROMETER_STATUS_SINT 0x01
216 
222 #define SPECTROMETER_STAT_2_AVALID 0x40
223 #define SPECTROMETER_STAT_2_ASAT_DIG 0x10
224 #define SPECTROMETER_STAT_2_ASAT_ANA 0x08
225 #define SPECTROMETER_STAT_2_FDSAT_ANA 0x02
226 #define SPECTROMETER_STAT_2_FDSAT_DIG 0x01
227 
233 #define SPECTROMETER_STAT_3_INT_SP_H 0x20
234 #define SPECTROMETER_STAT_3_INT_SP_L 0x10
235 
241 #define SPECTROMETER_STAT_5_SINT_FD 0x08
242 #define SPECTROMETER_STAT_5_SINT_SMUX 0x04
243 
249 #define SPECTROMETER_STAT_6_FIFO_OV 0x80
250 #define SPECTROMETER_STAT_6_OVTEMP 0x20
251 #define SPECTROMETER_STAT_6_FD_TRIG 0x10
252 #define SPECTROMETER_STAT_6_SP_TRIG 0x04
253 #define SPECTROMETER_STAT_6_SAI_ACT 0x02
254 #define SPECTROMETER_STAT_6_INT_BUSY 0x01
255 
261 #define SPECTROMETER_CFG_0_LOW_POW 0x20
262 #define SPECTROMETER_CFG_0_REG_BANK_1 0x10
263 #define SPECTROMETER_CFG_0_REG_BANK_0 0x00
264 #define SPECTROMETER_CFG_0_WLONG 0x04
265 
271 #define SPECTROMETER_CFG_1_AGAIN_512 0x0A
272 #define SPECTROMETER_CFG_1_AGAIN_256 0x09
273 #define SPECTROMETER_CFG_1_AGAIN_128 0x08
274 #define SPECTROMETER_CFG_1_AGAIN_64 0x07
275 #define SPECTROMETER_CFG_1_AGAIN_32 0x06
276 #define SPECTROMETER_CFG_1_AGAIN_16 0x05
277 #define SPECTROMETER_CFG_1_AGAIN_8 0x04
278 #define SPECTROMETER_CFG_1_AGAIN_4 0x03
279 #define SPECTROMETER_CFG_1_AGAIN_2 0x02
280 #define SPECTROMETER_CFG_1_AGAIN_1 0x01
281 #define SPECTROMETER_CFG_1_AGAIN_05 0x00
282 
288 #define SPECTROMETER_CFG_3_SAI 0x10
289 
295 #define SPECTROMETER_CFG_6_SMUX_CMD_2 0x10
296 #define SPECTROMETER_CFG_6_SMUX_CMD_1 0x08
297 #define SPECTROMETER_CFG_6_SMUX_CMD_0 0x00
298 
304 #define SPECTROMETER_CFG_8_FIFO_TH_16 0xC0
305 #define SPECTROMETER_CFG_8_FIFO_TH_8 0x80
306 #define SPECTROMETER_CFG_8_FIFO_TH_4 0x40
307 #define SPECTROMETER_CFG_8_FIFO_TH_1 0x00
308 #define SPECTROMETER_CFG_8_FD_AGC 0x08
309 #define SPECTROMETER_CFG_8_SP_AGC 0x04
310 
316 #define SPECTROMETER_CFG_9_SIEN_FD 0x40
317 #define SPECTROMETER_CFG_9_SIEN_SMUX 0x10
318 
324 #define SPECTROMETER_CFG_10_AGC_H_3 0xC0
325 #define SPECTROMETER_CFG_10_AGC_H_2 0x80
326 #define SPECTROMETER_CFG_10_AGC_H_1 0x40
327 #define SPECTROMETER_CFG_10_AGC_H_0 0x00
328 #define SPECTROMETER_CFG_10_AGC_L_3 0x60
329 #define SPECTROMETER_CFG_10_AGC_L_2 0x20
330 #define SPECTROMETER_CFG_10_AGC_L_1 0x10
331 #define SPECTROMETER_CFG_10_AGC_L_0 0x00
332 #define SPECTROMETER_CFG_10_FD_PERS_DEF 0x02
333 
339 #define SPECTROMETER_CFG_12_SP_TH_CH_4 0x04
340 #define SPECTROMETER_CFG_12_SP_TH_CH_3 0x03
341 #define SPECTROMETER_CFG_12_SP_TH_CH_2 0x02
342 #define SPECTROMETER_CFG_12_SP_TH_CH_1 0x01
343 #define SPECTROMETER_CFG_12_SP_TH_CH_0 0x00
344 
350 #define SPECTROMETER_PERS_APERS_60 0x0F
351 #define SPECTROMETER_PERS_APERS_55 0x0E
352 #define SPECTROMETER_PERS_APERS_50 0x0D
353 #define SPECTROMETER_PERS_APERS_45 0x0C
354 #define SPECTROMETER_PERS_APERS_40 0x0B
355 #define SPECTROMETER_PERS_APERS_35 0x0A
356 #define SPECTROMETER_PERS_APERS_30 0x09
357 #define SPECTROMETER_PERS_APERS_25 0x08
358 #define SPECTROMETER_PERS_APERS_20 0x07
359 #define SPECTROMETER_PERS_APERS_15 0x06
360 #define SPECTROMETER_PERS_APERS_10 0x05
361 #define SPECTROMETER_PERS_APERS_5 0x04
362 #define SPECTROMETER_PERS_APERS_3 0x03
363 #define SPECTROMETER_PERS_APERS_2 0x02
364 #define SPECTROMETER_PERS_APERS_1 0x01
365 #define SPECTROMETER_PERS_APERS 0x00
366 
372 #define SPECTROMETER_GPIO_2_GPIO_INV 0x08
373 #define SPECTROMETER_GPIO_2_GPIO_IN 0x04
374 #define SPECTROMETER_GPIO_2_GPIO_OUT 0x02
375 
381 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_512 0xA0
382 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_256 0x90
383 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_128 0x80
384 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_64 0x70
385 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_32 0x60
386 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_16 0x50
387 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_8 0x40
388 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_4 0x30
389 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_2 0x20
390 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_1 0x10
391 #define SPECTROMETER_AGC_GAIN_MAX_AGC_FD_GAIN_MAX_05 0x00
392 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_512 0x0A
393 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_256 0x09
394 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_128 0x08
395 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_64 0x07
396 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_32 0x06
397 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_16 0x05
398 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_8 0x04
399 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_4 0x03
400 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_2 0x02
401 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_1 0x01
402 #define SPECTROMETER_AGC_GAIN_MAX_AGC_AGAIN_MAX_05 0x00
403 
409 #define SPECTROMETER_FD_CFG0_FD_FIFO 0x80
410 
416 #define SPECTROMETER_FD_STAT_FD_VALID 0x20
417 #define SPECTROMETER_FD_STAT_FD_SAT 0x10
418 #define SPECTROMETER_FD_STAT_FD_120HZ_VALID 0x08
419 #define SPECTROMETER_FD_STAT_FD_100HZ_VALID 0x04
420 #define SPECTROMETER_FD_STAT_FD_120HZ 0x02
421 #define SPECTROMETER_FD_STAT_FD_100HZ 0x01
422 
428 #define SPECTROMETER_INTENAB_ASIEN 0x80
429 #define SPECTROMETER_INTENAB_SP_IEN 0x08
430 #define SPECTROMETER_INTENAB_F_IEN 0x04
431 #define SPECTROMETER_INTENAB_SIEN 0x01
432 
438 #define SPECTROMETER_CTL_AZ_SP_MAN 0x04
439 #define SPECTROMETER_CTL_FIFO_CLR 0x02
440 #define SPECTROMETER_CTL_CLR_SAI_ACT 0x01
441 
447 #define SPECTROMETER_FIFO_MAP_WR_DATA_CH6 0x40
448 #define SPECTROMETER_FIFO_MAP_WR_DATA_CH5 0x20
449 #define SPECTROMETER_FIFO_MAP_WR_DATA_CH3 0x10
450 #define SPECTROMETER_FIFO_MAP_WR_DATA_CH2 0x08
451 #define SPECTROMETER_FIFO_MAP_WR_DATA_CH1 0x04
452 #define SPECTROMETER_FIFO_MAP_WR_DATA_CH0 0x02
453 #define SPECTROMETER_FIFO_MAP_WR_ASTAT 0x01
454 
460 #define SPECTROMETER_FD_TIME_2_FD_GAIN_05 0x00
461 #define SPECTROMETER_FD_TIME_2_FD_GAIN_1 0x08
462 #define SPECTROMETER_FD_TIME_2_FD_GAIN_2 0x10
463 #define SPECTROMETER_FD_TIME_2_FD_GAIN_4 0x18
464 #define SPECTROMETER_FD_TIME_2_FD_GAIN_8 0x20
465 #define SPECTROMETER_FD_TIME_2_FD_GAIN_16 0x28
466 #define SPECTROMETER_FD_TIME_2_FD_GAIN_32 0x30
467 #define SPECTROMETER_FD_TIME_2_FD_GAIN_64 0x38
468 #define SPECTROMETER_FD_TIME_2_FD_GAIN_128 0x40
469 #define SPECTROMETER_FD_TIME_2_FD_GAIN_256 0x48
470 #define SPECTROMETER_FD_TIME_2_FD_GAIN_512 0x50
471 
477 #define SPECTROMETER_UNKNOWN_FREQ 0x01
478 #define SPECTROMETER_DETECTED_100_HZ 0x02
479 #define SPECTROMETER_DETECTED_120_HZ 0x03
480 #define SPECTROMETER_READING_ERROR 0x00
481 
487 #define SPECTROMETER_ID_VALUE 0x24
488  // End group macro
491 // --------------------------------------------------------------- PUBLIC TYPES
500 typedef struct
501 {
502  // Input pins
503 
504  digital_in_t int_pin;
505 
506  // Modules
507 
508  i2c_master_t i2c;
509 
510  // ctx variable
511 
512  uint8_t slave_address;
513 
515 
519 typedef struct
520 {
521  // Communication gpio pins
522 
523  pin_name_t scl;
524  pin_name_t sda;
525 
526  // Additional gpio pins
527 
528  pin_name_t int_pin;
529 
530  // static variable
531 
532  uint32_t i2c_speed;
533  uint8_t i2c_address;
534 
536  // End types group
538 // ----------------------------------------------- PUBLIC FUNCTION DECLARATIONS
539 
545 #ifdef __cplusplus
546 extern "C"{
547 #endif
548 
558 
568 
579 void spectrometer_generic_write ( spectrometer_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len );
580 
591 void spectrometer_generic_read ( spectrometer_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len );
592 
602 void spectrometer_pon ( spectrometer_t *ctx );
603 
616 void spectrometer_sp_en ( spectrometer_t *ctx, uint8_t state );
617 
629 
640 
652 
662 
672 
681 void spectrometer_fd_cfg ( spectrometer_t *ctx );
682 
693 void spectrometer_reg_bank_cfg ( spectrometer_t *ctx, uint8_t reg_bank );
694 
704 
713 void spectrometer_raw_rd_val_mode_1 ( spectrometer_t *ctx, uint8_t *adc_data );
714 
723 void spectrometer_raw_rd_val_mode_2 ( spectrometer_t *ctx, uint8_t *adc_data );
724 
735 
745 uint8_t spectrometer_get_int ( spectrometer_t *ctx );
746 
747 #ifdef __cplusplus
748 }
749 #endif
750 #endif // _SPECTROMETER_H_
751  // End public_function group
754 
755 // ------------------------------------------------------------------------- END
spectrometer_cfg_t::i2c_address
uint8_t i2c_address
Definition: spectrometer.h:533
spectrometer_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: spectrometer.h:532
spectrometer_t
Click ctx object definition.
Definition: spectrometer.h:500
SPECTROMETER_RETVAL
#define SPECTROMETER_RETVAL
Definition: spectrometer.h:63
spectrometer_raw_rd_val_mode_1
void spectrometer_raw_rd_val_mode_1(spectrometer_t *ctx, uint8_t *adc_data)
Raw Read Mode 1 function.
spectrometer_get_data_ready
uint8_t spectrometer_get_data_ready(spectrometer_t *ctx)
Reading and Polling the the AVALID bit function.
spectrometer_raw_rd_val_mode_2
void spectrometer_raw_rd_val_mode_2(spectrometer_t *ctx, uint8_t *adc_data)
Raw Read Mode 2 function.
spectrometer_generic_read
void spectrometer_generic_read(spectrometer_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic read function.
spectrometer_f5f8_clr_nir
void spectrometer_f5f8_clr_nir(spectrometer_t *ctx)
SMUX Configuration for F5,F6,F7,F8,NIR,Clear function.
spectrometer_cfg_setup
void spectrometer_cfg_setup(spectrometer_cfg_t *cfg)
Config Object Initialization function.
spectrometer_flicker_detection
uint8_t spectrometer_flicker_detection(spectrometer_t *ctx)
name function
spectrometer_cfg_t::scl
pin_name_t scl
Definition: spectrometer.h:523
spectrometer_cfg_t
Click configuration structure definition.
Definition: spectrometer.h:519
spectrometer_fd_cfg
void spectrometer_fd_cfg(spectrometer_t *ctx)
Flicker Detect Configuration function.
spectrometer_pon
void spectrometer_pon(spectrometer_t *ctx)
Set the power on bit function.
spectrometer_t::slave_address
uint8_t slave_address
Definition: spectrometer.h:512
spectrometer_cfg_t::int_pin
pin_name_t int_pin
Definition: spectrometer.h:528
spectrometer_f1f4_clr_nir
void spectrometer_f1f4_clr_nir(spectrometer_t *ctx)
SMUX Configuration for F1,F2,F3,F4,NIR,Clear function.
spectrometer_t::int_pin
digital_in_t int_pin
Definition: spectrometer.h:504
spectrometer_t::i2c
i2c_master_t i2c
Definition: spectrometer.h:508
spectrometer_init
SPECTROMETER_RETVAL spectrometer_init(spectrometer_t *ctx, spectrometer_cfg_t *cfg)
Initialization function.
spectrometer_reg_bank_cfg
void spectrometer_reg_bank_cfg(spectrometer_t *ctx, uint8_t reg_bank)
Select Register bank function.
spectrometer_get_smux_en
uint8_t spectrometer_get_smux_en(spectrometer_t *ctx)
Reading and Polling the the SMUX Enable bit function.
spectrometer_get_int
uint8_t spectrometer_get_int(spectrometer_t *ctx)
Get Interrupt state function.
spectrometer_sp_en
void spectrometer_sp_en(spectrometer_t *ctx, uint8_t state)
Set the spectral measurement enabled bit function.
spectrometer_generic_write
void spectrometer_generic_write(spectrometer_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic write function.
spectrometer_cfg_t::sda
pin_name_t sda
Definition: spectrometer.h:524
spectrometer_smux_en
void spectrometer_smux_en(spectrometer_t *ctx)
Starting the SMUX function.
spectrometer_def_cfg
void spectrometer_def_cfg(spectrometer_t *ctx)
Default configuration function.