solidswitch9 2.2.0
Loading...
Searching...
No Matches
solidswitch9.h File Reference

This file contains API for SolidSwitch 9 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"
#include "drv_pwm.h"

Go to the source code of this file.

Data Structures

struct  solidswitch9_t
 SolidSwitch 9 Click context object. More...
struct  solidswitch9_cfg_t
 SolidSwitch 9 Click configuration object. More...

Macros

#define SOLIDSWITCH9_REG_OUTCTRCR0   0x00
 SolidSwitch 9 RAM register list.
#define SOLIDSWITCH9_REG_OUTCTRCR1   0x01
#define SOLIDSWITCH9_REG_OUTCTRCR2   0x02
#define SOLIDSWITCH9_REG_OUTCTRCR3   0x03
#define SOLIDSWITCH9_REG_OUTCFGR0   0x08
#define SOLIDSWITCH9_REG_OUTCFGR1   0x09
#define SOLIDSWITCH9_REG_OUTCFGR2   0x0A
#define SOLIDSWITCH9_REG_OUTCFGR3   0x0B
#define SOLIDSWITCH9_REG_CHLOFFTCR0   0x10
#define SOLIDSWITCH9_REG_CHLOFFTCR1   0x11
#define SOLIDSWITCH9_REG_SOCR   0x13
#define SOLIDSWITCH9_REG_CTRL   0x14
#define SOLIDSWITCH9_REG_OUTSR0   0x20
#define SOLIDSWITCH9_REG_OUTSR1   0x21
#define SOLIDSWITCH9_REG_OUTSR2   0x22
#define SOLIDSWITCH9_REG_OUTSR3   0x23
#define SOLIDSWITCH9_REG_ADC0SR   0x28
#define SOLIDSWITCH9_REG_ADC1SR   0x29
#define SOLIDSWITCH9_REG_ADC2SR   0x2A
#define SOLIDSWITCH9_REG_ADC3SR   0x2B
#define SOLIDSWITCH9_REG_ADC9SR   0x2C
#define SOLIDSWITCH9_REG_CLEAR_ALL_STATUS   0x3F
#define SOLIDSWITCH9_ROM_COMPANY_CODE   0x00
 SolidSwitch 9 ROM register list.
#define SOLIDSWITCH9_ROM_DEVICE_FAMILY   0x01
#define SOLIDSWITCH9_ROM_PRODUCT_CODE_1   0x02
#define SOLIDSWITCH9_ROM_PRODUCT_CODE_2   0x03
#define SOLIDSWITCH9_ROM_PRODUCT_CODE_3   0x04
#define SOLIDSWITCH9_ROM_VERSION   0x0A
#define SOLIDSWITCH9_ROM_SPI_MODE   0x10
#define SOLIDSWITCH9_ROM_WD_TYPE_1   0x11
#define SOLIDSWITCH9_ROM_WD_BIT_POSITION_1   0x13
#define SOLIDSWITCH9_ROM_WD_BIT_POSITION_2   0x14
#define SOLIDSWITCH9_ROM_SPI_CPHA   0x20
#define SOLIDSWITCH9_ROM_GSB_OPTIONS   0x3E
#define SOLIDSWITCH9_ROM_SW_RESET   0x3F
#define SOLIDSWITCH9_GSB_GSBN   0x80
 SolidSwitch 9 global status byte setting.
#define SOLIDSWITCH9_GSB_RESET   0x40
#define SOLIDSWITCH9_GSB_SPI_ERROR   0x20
#define SOLIDSWITCH9_GSB_OT_PL_VDS   0x10
#define SOLIDSWITCH9_GSB_T_CASE   0x08
#define SOLIDSWITCH9_GSB_LOFF   0x04
#define SOLIDSWITCH9_GSB_OLOFF   0x02
#define SOLIDSWITCH9_GSB_FAIL_SAFE   0x01
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_0_PCT   0x0000
 SolidSwitch 9 OUTCTRCRx registers setting.
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_5_PCT   0x0330
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_10_PCT   0x0660
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_15_PCT   0x0990
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_20_PCT   0x0CC0
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_25_PCT   0x1000
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_30_PCT   0x1330
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_35_PCT   0x1660
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_40_PCT   0x1990
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_45_PCT   0x1CC0
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_50_PCT   0x2000
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_55_PCT   0x2330
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_60_PCT   0x2660
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_65_PCT   0x2990
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_70_PCT   0x2CC0
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_75_PCT   0x3000
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_80_PCT   0x3330
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_85_PCT   0x3660
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_90_PCT   0x3990
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_95_PCT   0x3CC0
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_100_PCT   0x3FF0
#define SOLIDSWITCH9_OUTCTRCRX_DUTY_CR_MASK   0x3FF0
#define SOLIDSWITCH9_OUTCTRCRX_OLOFFCR_EN   0x0004
#define SOLIDSWITCH9_OUTCTRCRX_WDTB   0x0002
#define SOLIDSWITCH9_OUTCFGRX_SLOPECR_STANDARD   0x0000
 SolidSwitch 9 OUTCFGRx registers setting.
#define SOLIDSWITCH9_OUTCFGRX_SLOPECR_FAST   0x4000
#define SOLIDSWITCH9_OUTCFGRX_SLOPECR_FASTER   0x8000
#define SOLIDSWITCH9_OUTCFGRX_SLOPECR_FASTEST   0xC000
#define SOLIDSWITCH9_OUTCFGRX_SLOPECR_MASK   0xC000
#define SOLIDSWITCH9_OUTCFGRX_CHPHA_MASK   0x1F00
#define SOLIDSWITCH9_OUTCFGRX_CPCR_STOP   0x0000
#define SOLIDSWITCH9_OUTCFGRX_CPCR_START   0x0040
#define SOLIDSWITCH9_OUTCFGRX_CPCR_CONTINUOUS   0x0080
#define SOLIDSWITCH9_OUTCFGRX_CPCR_FILTERED   0x00C0
#define SOLIDSWITCH9_OUTCFGRX_CPCR_MASK   0x00C0
#define SOLIDSWITCH9_OUTCFGRX_PWMFCY_1024   0x0000
#define SOLIDSWITCH9_OUTCFGRX_PWMFCY_2048   0x0010
#define SOLIDSWITCH9_OUTCFGRX_PWMFCY_4096   0x0020
#define SOLIDSWITCH9_OUTCFGRX_PWMFCY_512   0x0030
#define SOLIDSWITCH9_OUTCFGRX_PWMFCY_MASK   0x0030
#define SOLIDSWITCH9_OUTCFGRX_CCR_BULB   0x0000
#define SOLIDSWITCH9_OUTCFGRX_CCR_LED   0x0008
#define SOLIDSWITCH9_OUTCFGRX_CCR_MASK   0x0008
#define SOLIDSWITCH9_OUTCFGRX_DIENCR_EN   0x0004
#define SOLIDSWITCH9_OUTCFGRX_VDSMASK   0x0002
#define SOLIDSWITCH9_CHLOFFTCR0_CH2_LATCH_OFF   0x0000
 SolidSwitch 9 CHLOFFTCR0 register setting.
#define SOLIDSWITCH9_CHLOFFTCR0_CH2_16MS   0x1000
#define SOLIDSWITCH9_CHLOFFTCR0_CH2_32MS   0x2000
#define SOLIDSWITCH9_CHLOFFTCR0_CH2_240MS   0xF000
#define SOLIDSWITCH9_CHLOFFTCR0_CH2_MASK   0xF000
#define SOLIDSWITCH9_CHLOFFTCR0_CH1_LATCH_OFF   0x0000
#define SOLIDSWITCH9_CHLOFFTCR0_CH1_16MS   0x0100
#define SOLIDSWITCH9_CHLOFFTCR0_CH1_32MS   0x0200
#define SOLIDSWITCH9_CHLOFFTCR0_CH1_240MS   0x0F00
#define SOLIDSWITCH9_CHLOFFTCR0_CH1_MASK   0x0F00
#define SOLIDSWITCH9_CHLOFFTCR0_CH0_LATCH_OFF   0x0000
#define SOLIDSWITCH9_CHLOFFTCR0_CH0_16MS   0x0010
#define SOLIDSWITCH9_CHLOFFTCR0_CH0_32MS   0x0020
#define SOLIDSWITCH9_CHLOFFTCR0_CH0_240MS   0x00F0
#define SOLIDSWITCH9_CHLOFFTCR0_CH0_MASK   0x00F0
#define SOLIDSWITCH9_CHLOFFTCR1_CH3_LATCH_OFF   0x0000
 SolidSwitch 9 CHLOFFTCR1 register setting.
#define SOLIDSWITCH9_CHLOFFTCR1_CH3_16MS   0x0010
#define SOLIDSWITCH9_CHLOFFTCR1_CH3_32MS   0x0020
#define SOLIDSWITCH9_CHLOFFTCR1_CH3_240MS   0x00F0
#define SOLIDSWITCH9_CHLOFFTCR1_CH3_MASK   0x00F0
#define SOLIDSWITCH9_SOCR_CH3_EN   0x0800
 SolidSwitch 9 SOCR register setting.
#define SOLIDSWITCH9_SOCR_CH2_EN   0x0400
#define SOLIDSWITCH9_SOCR_CH1_EN   0x0200
#define SOLIDSWITCH9_SOCR_CH0_EN   0x0100
#define SOLIDSWITCH9_SOCR_CHX_MASK   0x0F00
#define SOLIDSWITCH9_SOCR_WDTB   0x0002
#define SOLIDSWITCH9_CTRL_GOSTBY   0x8000
 SolidSwitch 9 CTRL register setting.
#define SOLIDSWITCH9_CTRL_UNLOCK   0x4000
#define SOLIDSWITCH9_CTRL_CTDTH_120C   0x0000
#define SOLIDSWITCH9_CTRL_CTDTH_130C   0x1000
#define SOLIDSWITCH9_CTRL_CTDTH_140C   0x2000
#define SOLIDSWITCH9_CTRL_CTDTH_MASK   0x3000
#define SOLIDSWITCH9_CTRL_EN   0x0800
#define SOLIDSWITCH9_CTRL_PWM_TRIG_RISING   0x0000
#define SOLIDSWITCH9_CTRL_PWM_TRIG_FALLING   0x0400
#define SOLIDSWITCH9_CTRL_PWM_TRIG_MASK   0x0400
#define SOLIDSWITCH9_CTRL_LOCKEN_SLOPECRX   0x0040
#define SOLIDSWITCH9_CTRL_LOCKEN_CCRX   0x0020
#define SOLIDSWITCH9_CTRL_LOCKEN_CHPHAX   0x0010
#define SOLIDSWITCH9_CTRL_LOCKEN_CHLOFFTCRX   0x0008
#define SOLIDSWITCH9_CTRL_LOCKEN_PWM_CLK_SYNC   0x0004
#define SOLIDSWITCH9_CTRL_LOCKEN_MASK   0x007C
#define SOLIDSWITCH9_CTRL_PWMSYNC   0x0002
#define SOLIDSWITCH9_OUTSRX_DIENSR   0x8000
 SolidSwitch 9 OUTSRx registers setting.
#define SOLIDSWITCH9_OUTSRX_DIOTP1   0x4000
#define SOLIDSWITCH9_OUTSRX_DIOTP0   0x2000
#define SOLIDSWITCH9_OUTSRX_CHFBSRX   0x1000
#define SOLIDSWITCH9_OUTSRX_VDSFSRX   0x0800
#define SOLIDSWITCH9_OUTSRX_STKFLTRX   0x0400
#define SOLIDSWITCH9_OUTSRX_OLPUSRX   0x0200
#define SOLIDSWITCH9_OUTSRX_CHLOFFSRX   0x0100
#define SOLIDSWITCH9_OUTSRX_RST   0x0080
#define SOLIDSWITCH9_OUTSRX_SPIE   0x0040
#define SOLIDSWITCH9_OUTSRX_PWMCLOCKLOW   0x0020
#define SOLIDSWITCH9_OUTSRX_VCCUV   0x0010
#define SOLIDSWITCH9_ADCXSR_ADCXSR_MASK   0x3FF0
 SolidSwitch 9 ADCxSR registers setting.
#define SOLIDSWITCH9_ADCXSR_SOCRX_EN   0x0004
#define SOLIDSWITCH9_ADCXSR_UPDTSR   0x0002
#define SOLIDSWITCH9_ADC9SR_ADC9SR_MASK   0x3FF0
 SolidSwitch 9 ADC9SR registers setting.
#define SOLIDSWITCH9_ADC9SR_UPDTSR   0x0002
#define SOLIDSWITCH9_INFO_COMPANY_CODE   0x00
 SolidSwitch 9 device info setting.
#define SOLIDSWITCH9_INFO_DEVICE_FAMILY   0x01
#define SOLIDSWITCH9_INFO_PRODUCT_CODE_1   0x58
#define SOLIDSWITCH9_INFO_PRODUCT_CODE_2   0x56
#define SOLIDSWITCH9_INFO_PRODUCT_CODE_3   0x61
#define SOLIDSWITCH9_OUT3   0x08
 SolidSwitch 9 output setting.
#define SOLIDSWITCH9_OUT2   0x04
#define SOLIDSWITCH9_OUT1   0x02
#define SOLIDSWITCH9_OUT0   0x01
#define SOLIDSWITCH9_OUT_MASK   0x0F
#define SOLIDSWITCH9_OUT_DUTY_0_PCT   0x0000
#define SOLIDSWITCH9_OUT_DUTY_5_PCT   0x0033
#define SOLIDSWITCH9_OUT_DUTY_10_PCT   0x0066
#define SOLIDSWITCH9_OUT_DUTY_15_PCT   0x0099
#define SOLIDSWITCH9_OUT_DUTY_20_PCT   0x00CC
#define SOLIDSWITCH9_OUT_DUTY_25_PCT   0x0100
#define SOLIDSWITCH9_OUT_DUTY_30_PCT   0x0133
#define SOLIDSWITCH9_OUT_DUTY_35_PCT   0x0166
#define SOLIDSWITCH9_OUT_DUTY_40_PCT   0x0199
#define SOLIDSWITCH9_OUT_DUTY_45_PCT   0x01CC
#define SOLIDSWITCH9_OUT_DUTY_50_PCT   0x0200
#define SOLIDSWITCH9_OUT_DUTY_55_PCT   0x0233
#define SOLIDSWITCH9_OUT_DUTY_60_PCT   0x0266
#define SOLIDSWITCH9_OUT_DUTY_65_PCT   0x0299
#define SOLIDSWITCH9_OUT_DUTY_70_PCT   0x02CC
#define SOLIDSWITCH9_OUT_DUTY_75_PCT   0x0300
#define SOLIDSWITCH9_OUT_DUTY_80_PCT   0x0333
#define SOLIDSWITCH9_OUT_DUTY_85_PCT   0x0366
#define SOLIDSWITCH9_OUT_DUTY_90_PCT   0x0399
#define SOLIDSWITCH9_OUT_DUTY_95_PCT   0x03CC
#define SOLIDSWITCH9_OUT_DUTY_100_PCT   0x03FF
#define SOLIDSWITCH9_DEF_FREQ   400000
 SolidSwitch 9 default PWM frequency.
#define SOLIDSWITCH9_DEF_DUTY_CYCLE   0.5
#define SOLIDSWITCH9_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
#define SOLIDSWITCH9_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
#define SOLIDSWITCH9_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Enumerations

enum  solidswitch9_return_value_t { SOLIDSWITCH9_OK = 0 , SOLIDSWITCH9_ERROR = -1 }
 SolidSwitch 9 Click return value data. More...

Functions

void solidswitch9_cfg_setup (solidswitch9_cfg_t *cfg)
 SolidSwitch 9 configuration object setup function.
err_t solidswitch9_init (solidswitch9_t *ctx, solidswitch9_cfg_t *cfg)
 SolidSwitch 9 initialization function.
err_t solidswitch9_default_cfg (solidswitch9_t *ctx)
 SolidSwitch 9 default configuration function.
err_t solidswitch9_write_reg (solidswitch9_t *ctx, uint8_t reg, uint16_t data_in)
 SolidSwitch 9 write register function.
err_t solidswitch9_read_reg (solidswitch9_t *ctx, uint8_t reg, uint16_t *data_out)
 SolidSwitch 9 read register function.
err_t solidswitch9_read_reg_clear (solidswitch9_t *ctx, uint8_t reg, uint16_t *data_out)
 SolidSwitch 9 read and clear register function.
err_t solidswitch9_read_rom (solidswitch9_t *ctx, uint8_t addr, uint8_t *data_out)
 SolidSwitch 9 read ROM function.
err_t solidswitch9_set_duty_cycle (solidswitch9_t *ctx, float duty_cycle)
 SolidSwitch 9 sets PWM duty cycle.
err_t solidswitch9_pwm_stop (solidswitch9_t *ctx)
 SolidSwitch 9 stop PWM module.
err_t solidswitch9_pwm_start (solidswitch9_t *ctx)
 SolidSwitch 9 start PWM module.
void solidswitch9_set_di0_pin (solidswitch9_t *ctx, uint8_t state)
 SolidSwitch 9 set DI0 pin function.
void solidswitch9_set_di1_pin (solidswitch9_t *ctx, uint8_t state)
 SolidSwitch 9 set DI1 pin function.
err_t solidswitch9_sw_reset (solidswitch9_t *ctx)
 SolidSwitch 9 software reset function.
err_t solidswitch9_clear_all_status (solidswitch9_t *ctx)
 SolidSwitch 9 clear all status function.
err_t solidswitch9_check_info (solidswitch9_t *ctx)
 SolidSwitch 9 check information function.
err_t solidswitch9_unlock_write (solidswitch9_t *ctx)
 SolidSwitch 9 unlock write function.
err_t solidswitch9_set_out_duty (solidswitch9_t *ctx, uint8_t out_mask, uint16_t duty)
 SolidSwitch 9 set output duty function.
err_t solidswitch9_enable_out (solidswitch9_t *ctx, uint8_t out_mask)
 SolidSwitch 9 enable outputs function.

Detailed Description

This file contains API for SolidSwitch 9 Click Driver.

Enumeration Type Documentation

◆ solidswitch9_return_value_t

SolidSwitch 9 Click return value data.

Predefined enum values for driver return values.

Enumerator
SOLIDSWITCH9_OK 
SOLIDSWITCH9_ERROR