SparkFun Spectral Sensor - AS7343  v1.0.0-4-gd418547
Library for the SparkFun SpectralSensor - AS7343
Loading...
Searching...
No Matches
sfDevAS7343.h File Reference

Header file for the SparkFun Spectral Sensor - AS7343. More...

#include <stdint.h>
#include <sfTk/sfToolkit.h>
#include <sfTk/sfTkII2C.h>
Include dependency graph for sfDevAS7343.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  sfe_as7343_reg_auxid_t
 
union  sfe_as7343_reg_revid_t
 
union  sfe_as7343_reg_cfg12_t
 
union  sfe_as7343_reg_enable_t
 
union  sfe_as7343_reg_sp_th_l_t
 
union  sfe_as7343_reg_sp_th_h_t
 
union  sfe_as7343_reg_status_t
 
union  sfe_as7343_reg_astatus_t
 
union  sfe_as7343_reg_data_t
 
union  sfe_as7343_reg_status2_t
 
union  sfe_as7343_reg_status3_t
 
union  sfe_as7343_reg_status4_t
 
union  sfe_as7343_reg_fd_status_t
 
union  sfe_as7343_reg_data_status5_t
 
union  sfe_as7343_reg_cfg0_t
 
union  sfe_as7343_reg_cfg1_t
 
union  sfe_as7343_reg_cfg3_t
 
union  sfe_as7343_reg_cfg6_t
 
union  sfe_as7343_reg_cfg8_t
 
union  sfe_as7343_reg_cfg9_t
 
union  sfe_as7343_reg_cfg10_t
 
union  sfe_as7343_reg_pers_t
 
union  sfe_as7343_reg_gpio_t
 
union  sfe_as7343_reg_astep_t
 
union  sfe_as7343_reg_cfg20_t
 
union  sfe_as7343_reg_led_t
 
union  sfe_as7343_reg_agc_gain_max_t
 
union  sfe_as7343_reg_fd_time_2_t
 
union  sfe_as7343_reg_fd_cfg0_t
 
union  sfe_as7343_reg_intenab_t
 
union  sfe_as7343_reg_control_t
 
union  sfe_as7343_reg_fifo_map_t
 
union  sfe_as7343_reg_fifo_data_t
 
class  sfDevAS7343
 

Typedefs

typedef uint8_t sfe_as7343_reg_id_t
 
typedef uint8_t sfe_as7343_reg_atime_t
 
typedef uint8_t sfe_as7343_reg_wtime_t
 
typedef uint8_t sfe_as7343_reg_az_config_t
 
typedef uint8_t sfe_as7343_reg_fd_time_1_t
 
typedef uint8_t sfe_as7343_reg_fifo_lvl_t
 

Enumerations

enum  sfe_as7343_reg_bank_t { REG_BANK_0 = 0x00 , REG_BANK_1 = 0x01 }
 
enum  sfe_as7343_channel_t {
  CH_BLUE_FZ_450NM = 0x00 , CH_GREEN_FY_555NM , CH_ORANGE_FXL_600NM , CH_NIR_855NM ,
  CH_VIS_1 , CH_FD_1 , CH_DARK_BLUE_F2_425NM , CH_LIGHT_BLUE_F3_475NM ,
  CH_BLUE_F4_515NM , CH_BROWN_F6_640NM , CH_VIS_2 , CH_FD_2 ,
  CH_PURPLE_F1_405NM , CH_RED_F7_690NM , CH_DARK_RED_F8_745NM , CH_GREEN_F5_550NM ,
  CH_VIS_3 , CH_FD_3
}
 
enum  sfe_as7343_again_t {
  AGAIN_0_5 = 0x00 , AGAIN_1 , AGAIN_2 , AGAIN_4 ,
  AGAIN_8 , AGAIN_16 , AGAIN_32 , AGAIN_64 ,
  AGAIN_128 , AGAIN_256 , AGAIN_512 , AGAIN_1024 ,
  AGAIN_2048
}
 
enum  sfe_as7343_fd_gain_t {
  FD_GAIN_0_5 = 0x00 , FD_GAIN_1 , FD_GAIN_2 , FD_GAIN_4 ,
  FD_GAIN_8 , FD_GAIN_16 , FD_GAIN_32 , FD_GAIN_64 ,
  FD_GAIN_128 , FD_GAIN_256 , FD_GAIN_512 , FD_GAIN_1024 ,
  FD_GAIN_2048
}
 
enum  sfe_as7343_fifo_threshold_t { FIFO_THRESHOLD_LVL_1 = 0x00 , FIFO_THRESHOLD_LVL_4 , FIFO_THRESHOLD_LVL_8 , FIFO_THRESHOLD_LVL_16 }
 
enum  sfe_as7343_spectral_threshold_channel_t {
  SPECTRAL_THRESHOLD_CHANNEL_0 = 0x00 , SPECTRAL_THRESHOLD_CHANNEL_1 , SPECTRAL_THRESHOLD_CHANNEL_2 , SPECTRAL_THRESHOLD_CHANNEL_3 ,
  SPECTRAL_THRESHOLD_CHANNEL_4 , SPECTRAL_THRESHOLD_CHANNEL_5
}
 
enum  sfe_as7343_auto_smux_channel_t { AUTOSMUX_6_CHANNELS = 0x00 , AUTOSMUX_12_CHANNELS = 0x02 , AUTOSMUX_18_CHANNELS = 0x03 }
 
enum  sfe_as7343_gpio_mode_t { AS7343_GPIO_MODE_OUTPUT = 0x00 , AS7343_GPIO_MODE_INPUT }
 
enum  sfe_as7343_gpio_output_t { AS7343_GPIO_OUTPUT_LOW = 0x00 , AS7343_GPIO_OUTPUT_HIGH }
 

Variables

const uint8_t kAS7343Addr = 0x39
 
const uint8_t kDefaultAS7343DeviceID = 0x81
 
const uint8_t ksfAS7343NumChannels = 18
 
const uint8_t ksfAS7343RegAuxID = 0x58
 
const uint8_t ksfAS7343RegRevID = 0x59
 
const uint8_t ksfAS7343RegID = 0x5A
 
const uint8_t ksfAS7343RegCfg12 = 0x66
 
const uint8_t ksfAS7343RegEnable = 0x80
 
const uint8_t ksfAS7343RegATime = 0x81
 
const uint8_t ksfAS7343RegWTime = 0x83
 
const uint8_t ksfAS7343RegSpThL = 0x84
 
const uint8_t ksfAS7343RegSpThH = 0x86
 
const uint8_t ksfAS7343RegStatus = 0x93
 
const uint8_t ksfAS7343RegAStatus = 0x94
 
const uint8_t ksfAS7343RegData0 = 0x95
 
const uint8_t ksfAS7343RegData1 = 0x97
 
const uint8_t ksfAS7343RegData2 = 0x99
 
const uint8_t ksfAS7343RegData3 = 0x9B
 
const uint8_t ksfAS7343RegData4 = 0x9D
 
const uint8_t ksfAS7343RegData5 = 0x9F
 
const uint8_t ksfAS7343RegData6 = 0xA1
 
const uint8_t ksfAS7343RegData7 = 0xA3
 
const uint8_t ksfAS7343RegData8 = 0xA5
 
const uint8_t ksfAS7343RegData9 = 0xA7
 
const uint8_t ksfAS7343RegData10 = 0xA9
 
const uint8_t ksfAS7343RegData11 = 0xAB
 
const uint8_t ksfAS7343RegData12 = 0xAD
 
const uint8_t ksfAS7343RegData13 = 0xAF
 
const uint8_t ksfAS7343RegData14 = 0xB1
 
const uint8_t ksfAS7343RegData15 = 0xB3
 
const uint8_t ksfAS7343RegData16 = 0xB5
 
const uint8_t ksfAS7343RegData17 = 0xB7
 
const uint8_t ksfAS7343RegStatus2 = 0x90
 
const uint8_t ksfAS7343RegStatus3 = 0x91
 
const uint8_t ksfAS7343RegStatus4 = 0xBC
 
const uint8_t ksfAS7343RegFdStatus = 0xE3
 
const uint8_t ksfAS7343RegStatus5 = 0x93
 
const uint8_t ksfAS7343RegCfg0 = 0xBF
 
const uint8_t ksfAS7343RegCfg1 = 0xC6
 
const uint8_t ksfAS7343RegCfg3 = 0xC7
 
const uint8_t ksfAS7343RegCfg6 = 0xF5
 
const uint8_t ksfAS7343RegCfg8 = 0xC9
 
const uint8_t ksfAS7343RegCfg9 = 0xCA
 
const uint8_t ksfAS7343RegCfg10 = 0x65
 
const uint8_t ksfAS7343RegPers = 0xCF
 
const uint8_t ksfAS7343RegGpio = 0x6B
 
const uint8_t ksfAS7343RegAStep = 0xD4
 
const uint8_t ksfAS7343RegCfg20 = 0xD6
 
const uint8_t ksfAS7343RegLed = 0xCD
 
const uint8_t ksfAS7343RegAgcGainMax = 0xD7
 
const uint8_t ksfAS7343RegAzConfig = 0xDE
 
const uint8_t ksfAS7343RegFdTime1 = 0xE0
 
const uint8_t ksfAS7343RegFdTime2 = 0xE2
 
const uint8_t ksfAS7343RegFdTimeCfg0 = 0xDF
 
const uint8_t ksfAS7343RegIntEnab = 0xF9
 
const uint8_t ksfAS7343RegControl = 0xFA
 
const uint8_t ksfAS7343RegFifoMap = 0xFC
 
const uint8_t ksfAS7343RegFifoLvl = 0xFD
 
const uint8_t ksfAS7343RegFData = 0xFE
 

Detailed Description

Header file for the SparkFun Spectral Sensor - AS7343.

This file contains the class definitions, constants, and enums for interacting with the AS7343 sensor.

SfeAS7343Driver is a comms-agnostic driver for the AS7343 Spectral sensor that uses the SparkFun Toolkit. The SfeAS7343ArdI2C class defines the Arduino specific behavior for initializing and interacting with devices.

Enum Definitions

  • Sensor gain settings
  • Flicker Detection Gain Settings
  • FIFO Threshold settings
  • Spectral Threshold Channel
  • Automatic Channel Read-out (auto_smux setting)
Author
SparkFun Electronics
Date
2025

SPDX-License-Identifier: MIT

Configuration Register Descriptions

  • Configuration Registers
  • Measurement Registers

Classes

Repository

https://github.com/sparkfun/SparkFun_AS7343_Arduino_Library

Product Links

Typedef Documentation

◆ sfe_as7343_reg_atime_t

typedef uint8_t sfe_as7343_reg_atime_t

◆ sfe_as7343_reg_az_config_t

typedef uint8_t sfe_as7343_reg_az_config_t

◆ sfe_as7343_reg_fd_time_1_t

typedef uint8_t sfe_as7343_reg_fd_time_1_t

◆ sfe_as7343_reg_fifo_lvl_t

typedef uint8_t sfe_as7343_reg_fifo_lvl_t

◆ sfe_as7343_reg_id_t

typedef uint8_t sfe_as7343_reg_id_t

◆ sfe_as7343_reg_wtime_t

typedef uint8_t sfe_as7343_reg_wtime_t

Enumeration Type Documentation

◆ sfe_as7343_again_t

Enumerator
AGAIN_0_5 
AGAIN_1 
AGAIN_2 
AGAIN_4 
AGAIN_8 
AGAIN_16 
AGAIN_32 
AGAIN_64 
AGAIN_128 
AGAIN_256 
AGAIN_512 
AGAIN_1024 
AGAIN_2048 

◆ sfe_as7343_auto_smux_channel_t

Enumerator
AUTOSMUX_6_CHANNELS 
AUTOSMUX_12_CHANNELS 
AUTOSMUX_18_CHANNELS 

◆ sfe_as7343_channel_t

Enumerator
CH_BLUE_FZ_450NM 
CH_GREEN_FY_555NM 
CH_ORANGE_FXL_600NM 
CH_NIR_855NM 
CH_VIS_1 
CH_FD_1 
CH_DARK_BLUE_F2_425NM 
CH_LIGHT_BLUE_F3_475NM 
CH_BLUE_F4_515NM 
CH_BROWN_F6_640NM 
CH_VIS_2 
CH_FD_2 
CH_PURPLE_F1_405NM 
CH_RED_F7_690NM 
CH_DARK_RED_F8_745NM 
CH_GREEN_F5_550NM 
CH_VIS_3 
CH_FD_3 

◆ sfe_as7343_fd_gain_t

Enumerator
FD_GAIN_0_5 
FD_GAIN_1 
FD_GAIN_2 
FD_GAIN_4 
FD_GAIN_8 
FD_GAIN_16 
FD_GAIN_32 
FD_GAIN_64 
FD_GAIN_128 
FD_GAIN_256 
FD_GAIN_512 
FD_GAIN_1024 
FD_GAIN_2048 

◆ sfe_as7343_fifo_threshold_t

Enumerator
FIFO_THRESHOLD_LVL_1 
FIFO_THRESHOLD_LVL_4 
FIFO_THRESHOLD_LVL_8 
FIFO_THRESHOLD_LVL_16 

◆ sfe_as7343_gpio_mode_t

Enumerator
AS7343_GPIO_MODE_OUTPUT 
AS7343_GPIO_MODE_INPUT 

◆ sfe_as7343_gpio_output_t

Enumerator
AS7343_GPIO_OUTPUT_LOW 
AS7343_GPIO_OUTPUT_HIGH 

◆ sfe_as7343_reg_bank_t

Enumerator
REG_BANK_0 
REG_BANK_1 

◆ sfe_as7343_spectral_threshold_channel_t

Enumerator
SPECTRAL_THRESHOLD_CHANNEL_0 
SPECTRAL_THRESHOLD_CHANNEL_1 
SPECTRAL_THRESHOLD_CHANNEL_2 
SPECTRAL_THRESHOLD_CHANNEL_3 
SPECTRAL_THRESHOLD_CHANNEL_4 
SPECTRAL_THRESHOLD_CHANNEL_5 

Variable Documentation

◆ kAS7343Addr

const uint8_t kAS7343Addr = 0x39

◆ kDefaultAS7343DeviceID

const uint8_t kDefaultAS7343DeviceID = 0x81

◆ ksfAS7343NumChannels

const uint8_t ksfAS7343NumChannels = 18

◆ ksfAS7343RegAgcGainMax

const uint8_t ksfAS7343RegAgcGainMax = 0xD7

◆ ksfAS7343RegAStatus

const uint8_t ksfAS7343RegAStatus = 0x94

◆ ksfAS7343RegAStep

const uint8_t ksfAS7343RegAStep = 0xD4

◆ ksfAS7343RegATime

const uint8_t ksfAS7343RegATime = 0x81

◆ ksfAS7343RegAuxID

const uint8_t ksfAS7343RegAuxID = 0x58

◆ ksfAS7343RegAzConfig

const uint8_t ksfAS7343RegAzConfig = 0xDE

◆ ksfAS7343RegCfg0

const uint8_t ksfAS7343RegCfg0 = 0xBF

◆ ksfAS7343RegCfg1

const uint8_t ksfAS7343RegCfg1 = 0xC6

◆ ksfAS7343RegCfg10

const uint8_t ksfAS7343RegCfg10 = 0x65

◆ ksfAS7343RegCfg12

const uint8_t ksfAS7343RegCfg12 = 0x66

◆ ksfAS7343RegCfg20

const uint8_t ksfAS7343RegCfg20 = 0xD6

◆ ksfAS7343RegCfg3

const uint8_t ksfAS7343RegCfg3 = 0xC7

◆ ksfAS7343RegCfg6

const uint8_t ksfAS7343RegCfg6 = 0xF5

◆ ksfAS7343RegCfg8

const uint8_t ksfAS7343RegCfg8 = 0xC9

◆ ksfAS7343RegCfg9

const uint8_t ksfAS7343RegCfg9 = 0xCA

◆ ksfAS7343RegControl

const uint8_t ksfAS7343RegControl = 0xFA

◆ ksfAS7343RegData0

const uint8_t ksfAS7343RegData0 = 0x95

◆ ksfAS7343RegData1

const uint8_t ksfAS7343RegData1 = 0x97

◆ ksfAS7343RegData10

const uint8_t ksfAS7343RegData10 = 0xA9

◆ ksfAS7343RegData11

const uint8_t ksfAS7343RegData11 = 0xAB

◆ ksfAS7343RegData12

const uint8_t ksfAS7343RegData12 = 0xAD

◆ ksfAS7343RegData13

const uint8_t ksfAS7343RegData13 = 0xAF

◆ ksfAS7343RegData14

const uint8_t ksfAS7343RegData14 = 0xB1

◆ ksfAS7343RegData15

const uint8_t ksfAS7343RegData15 = 0xB3

◆ ksfAS7343RegData16

const uint8_t ksfAS7343RegData16 = 0xB5

◆ ksfAS7343RegData17

const uint8_t ksfAS7343RegData17 = 0xB7

◆ ksfAS7343RegData2

const uint8_t ksfAS7343RegData2 = 0x99

◆ ksfAS7343RegData3

const uint8_t ksfAS7343RegData3 = 0x9B

◆ ksfAS7343RegData4

const uint8_t ksfAS7343RegData4 = 0x9D

◆ ksfAS7343RegData5

const uint8_t ksfAS7343RegData5 = 0x9F

◆ ksfAS7343RegData6

const uint8_t ksfAS7343RegData6 = 0xA1

◆ ksfAS7343RegData7

const uint8_t ksfAS7343RegData7 = 0xA3

◆ ksfAS7343RegData8

const uint8_t ksfAS7343RegData8 = 0xA5

◆ ksfAS7343RegData9

const uint8_t ksfAS7343RegData9 = 0xA7

◆ ksfAS7343RegEnable

const uint8_t ksfAS7343RegEnable = 0x80

◆ ksfAS7343RegFData

const uint8_t ksfAS7343RegFData = 0xFE

◆ ksfAS7343RegFdStatus

const uint8_t ksfAS7343RegFdStatus = 0xE3

◆ ksfAS7343RegFdTime1

const uint8_t ksfAS7343RegFdTime1 = 0xE0

◆ ksfAS7343RegFdTime2

const uint8_t ksfAS7343RegFdTime2 = 0xE2

◆ ksfAS7343RegFdTimeCfg0

const uint8_t ksfAS7343RegFdTimeCfg0 = 0xDF

◆ ksfAS7343RegFifoLvl

const uint8_t ksfAS7343RegFifoLvl = 0xFD

◆ ksfAS7343RegFifoMap

const uint8_t ksfAS7343RegFifoMap = 0xFC

◆ ksfAS7343RegGpio

const uint8_t ksfAS7343RegGpio = 0x6B

◆ ksfAS7343RegID

const uint8_t ksfAS7343RegID = 0x5A

◆ ksfAS7343RegIntEnab

const uint8_t ksfAS7343RegIntEnab = 0xF9

◆ ksfAS7343RegLed

const uint8_t ksfAS7343RegLed = 0xCD

◆ ksfAS7343RegPers

const uint8_t ksfAS7343RegPers = 0xCF

◆ ksfAS7343RegRevID

const uint8_t ksfAS7343RegRevID = 0x59

◆ ksfAS7343RegSpThH

const uint8_t ksfAS7343RegSpThH = 0x86

◆ ksfAS7343RegSpThL

const uint8_t ksfAS7343RegSpThL = 0x84

◆ ksfAS7343RegStatus

const uint8_t ksfAS7343RegStatus = 0x93

◆ ksfAS7343RegStatus2

const uint8_t ksfAS7343RegStatus2 = 0x90

◆ ksfAS7343RegStatus3

const uint8_t ksfAS7343RegStatus3 = 0x91

◆ ksfAS7343RegStatus4

const uint8_t ksfAS7343RegStatus4 = 0xBC

◆ ksfAS7343RegStatus5

const uint8_t ksfAS7343RegStatus5 = 0x93

◆ ksfAS7343RegWTime

const uint8_t ksfAS7343RegWTime = 0x83