Si7210 - Hall Effect SensorBSP > Thunderboard Sense BSP > HALL - Hall Effect Sensor
Detailed Description
Driver for the Silicon Labs Si7210 Hall effect sensor.
| Functions | |
| uint8_t | SI7210_calculateSlTime (uint32_t samplePeriod, uint8_t *slFast) | 
| Calculates the slTime value from the sleep time by finding the inverse of the formula: tsleep = (32 + slTime[4:0]) * 2^(8 + slTime[7:5]) / 12 MHz. | |
| uint8_t | SI7210_calculateSWHYST (float hysteresis, bool scale200mT) | 
| Calculates the sw_hyst value from the hysteresis by finding the inverse of the formula: hysteresis = (8 + sw_hyst[2:0]) * 2^sw_hyst[5:3]. | |
| uint8_t | SI7210_calculateSWOP (float threshold) | 
| Calculates the sw_op value from the threshold by finding the inverse of the formula: threshold = (16 + sw_op[3:0]) * 2^sw_op[6:4]. | |
| uint8_t | SI7210_calculateSWTAMPER (float tamper, bool scale200mT) | 
| Calculates the sw_tamper value from the tamper threshold by finding the inverse of the formula: tamper = (16 + sw_tamper[3:0]) * 2^(sw_tamper[5:4] + 5) | |
| uint32_t | SI7210_dataRead (int16_t *data) | 
| Read out Si7210 Conversion Data - 15bits. | |
| uint32_t | SI7210_enterContMode (void) | 
| Puts sensor into continuous mode, conversions performed every 7usec. | |
| uint32_t | SI7210_identify (uint8_t *id, uint8_t *rev) | 
| Read out Si7210 Revision and ID. | |
| static uint32_t | SI7210_loadCoeffsFromOtp (uint8_t otpAddr) | 
| Loads the coefficients A0..A6 from the OTP memory. | |
| uint32_t | SI7210_readmTDataSleep (bool range200mT, int32_t *mTdata) | 
| Wake-up from Sleep, perform burst-conversion(4samples), read mT-data, and then put part into sleep mode (no-measurement). Requires Wake-Up. | |
| uint32_t | SI7210_readmTDataSltimeena (bool range200mT, int32_t *mTdata) | 
| Perform burst-conversion(4samples), read mT-data, and then put part into sltimeena-sleep mode where OUT is updated every 200msec. | |
| uint32_t | SI7210_regClearBits (uint8_t addr, uint8_t mask) | 
| Clears the given bit(s) in a register in the Hall sensor device. | |
| uint32_t | SI7210_registerRead (uint8_t addr, uint8_t *data) | 
| Reads register from the Hall sensor device. | |
| uint32_t | SI7210_registerWrite (uint8_t addr, uint8_t data) | 
| Writes a register in the Hall sensor device. | |
| uint32_t | SI7210_regReadOTP (uint8_t otpAddr, uint8_t *otpData) | 
| Reads register from the OTP area of the Si7021 device. | |
| uint32_t | SI7210_regSetBits (uint8_t addr, uint8_t mask) | 
| Sets the given bit(s) in a register in the Hall sensor device. | |
| uint32_t | SI7210_set200mTRange (void) | 
| Change Mag-Field scale to 200mT. If desired, must be performed after power-up or wake-up from sleep. | |
| uint32_t | SI7210_sleep (void) | 
| Puts Si7210 into Sleep (No-measurement) Mode Wake-up command needs to be issued to become responsive. | |
| uint32_t | SI7210_sleepSltimeena (void) | 
| Puts Si7210 into Sleep w/ Measurement Mode: OUTPUT is updated 200msec. | |
| uint32_t | SI7210_wakeUp (void) | 
| Wakes up the Hall sensor chip. | |
| Error Codes | |
| #define | SI7210_OK 0 | 
| #define | SI7210_ERROR_I2C_TRANSFER_FAILED 0x0001 | 
| #define | SI7210_ERROR_INVALID_DEVICE_ID 0x0002 | 
| #define | SI7210_ERROR_CONFIG_INVALID_MODE 0x0003 | 
| #define | SI7210_ERROR_OTP_BUSY 0x0004 | 
| #define | SI7210_ERROR_READ_TIMEOUT 0x0005 | 
| #define | SI7210_ERROR_NODATA 0x0006 | 
Macro Definition Documentation
| #define SI7210_ERROR_CONFIG_INVALID_MODE 0x0003 | 
The chosen configuration is invalid
        Definition at line
        
         59
        
        of file
        
         hall_si7210.h
        
        .
       
| #define SI7210_ERROR_I2C_TRANSFER_FAILED 0x0001 | 
I2C transaction failed
        Definition at line
        
         57
        
        of file
        
         hall_si7210.h
        
        .
       
| #define SI7210_ERROR_INVALID_DEVICE_ID 0x0002 | 
The device ID is invalid
        Definition at line
        
         58
        
        of file
        
         hall_si7210.h
        
        .
       
| #define SI7210_ERROR_NODATA 0x0006 | 
No measurement data available
        Definition at line
        
         62
        
        of file
        
         hall_si7210.h
        
        .
       
Referenced by SI7210_dataRead() .
| #define SI7210_ERROR_OTP_BUSY 0x0004 | 
The OTP memory is busy
        Definition at line
        
         60
        
        of file
        
         hall_si7210.h
        
        .
       
Referenced by SI7210_regReadOTP() .
| #define SI7210_ERROR_READ_TIMEOUT 0x0005 | 
Timeout occurred during read operation
        Definition at line
        
         61
        
        of file
        
         hall_si7210.h
        
        .
       
| #define SI7210_OK 0 | 
No errors
        Definition at line
        
         56
        
        of file
        
         hall_si7210.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() , and SI7210_set200mTRange() .
| #define SI7210_OTP_ADDR_BASE_PART_NUMBER 0x14 | 
OTP Base part number
        Definition at line
        
         132
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_BPERVCAL 0x20 | 
OTP On-chip field generator calibration value
        Definition at line
        
         135
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_COEFFS_200MT 0x27 | 
OTP 200mT scale no magnet temperature compensation value
        Definition at line
        
         138
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_set200mTRange() .
| #define SI7210_OTP_ADDR_COEFFS_200MT_CERAMIC 0x3F | 
OTP 200mT scale ceramic magnet temperature compensation value
        Definition at line
        
         142
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_COEFFS_200MT_NEODYMIUM 0x33 | 
OTP 200mT scale neodymium temperature compensation value
        Definition at line
        
         140
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_COEFFS_20MT 0x21 | 
OTP 20mT scale no magnet temperature compensation value
        Definition at line
        
         137
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_COEFFS_20MT_CERAMIC 0x39 | 
OTP 20mT scale ceramic magnet temperature compensation value
        Definition at line
        
         141
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_COEFFS_20MT_NEODYMIUM 0x2D | 
OTP 20mT scale neodymium magnet temperature compensation value
        Definition at line
        
         139
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_CTRL1 0x04 | 
OTP Control register 1, output pin configuration
        Definition at line
        
         121
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_CTRL2 0x05 | 
OTP Control register 2, output pin configuration
        Definition at line
        
         122
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_CTRL3 0x08 | 
OTP Control register 3, output pin and sleep time configuration
        Definition at line
        
         124
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_CTRL4 0x0C | 
OTP Control register 4, Digital filter configuration
        Definition at line
        
         128
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_POWER_UP_A0 0x09 | 
OTP Coefficient A0
        Definition at line
        
         125
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_POWER_UP_A1 0x0A | 
OTP Coefficient A1
        Definition at line
        
         126
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_POWER_UP_A2 0x0B | 
OTP Coefficient A2
        Definition at line
        
         127
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_POWER_UP_A3 0x0D | 
OTP Coefficient A3
        Definition at line
        
         129
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_POWER_UP_A4 0x0E | 
OTP Coefficient A4
        Definition at line
        
         130
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_POWER_UP_A5 0x0F | 
OTP Coefficient A5
        Definition at line
        
         131
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_SERIAL_NUMBER 0x18 | 
OTP Serial number
        Definition at line
        
         134
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_SLTIME 0x06 | 
OTP Sleep time control register
        Definition at line
        
         123
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_OTP_ADDR_VARIANT 0x15 | 
OTP Variant number
        Definition at line
        
         133
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_ADDR_A0 0xCA | 
Coefficient A0
        Definition at line
        
         59
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() .
| #define SI7210_REG_ADDR_A1 0xCB | 
Coefficient A1
        Definition at line
        
         60
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() .
| #define SI7210_REG_ADDR_A2 0xCC | 
Coefficient A2
        Definition at line
        
         61
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() .
| #define SI7210_REG_ADDR_A3 0xCE | 
Coefficient A3
        Definition at line
        
         63
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() .
| #define SI7210_REG_ADDR_A4 0xCF | 
Coefficient A4
        Definition at line
        
         64
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() .
| #define SI7210_REG_ADDR_A5 0xD0 | 
Coefficient A5
        Definition at line
        
         65
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_loadCoeffsFromOtp() .
| #define SI7210_REG_ADDR_ARAUTOINC 0xC5 | 
Enables auto increment of the I2C register address pointer
        Definition at line
        
         54
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_ADDR_CTRL1 0xC6 | 
Control register 1, output pin configuration
        Definition at line
        
         55
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , and SI7210_enterContMode() .
| #define SI7210_REG_ADDR_CTRL2 0xC7 | 
Control register 2, output pin configuration
        Definition at line
        
         56
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , and SI7210_enterContMode() .
| #define SI7210_REG_ADDR_CTRL3 0xC9 | 
Control register 3, output pin and sleep time configuration
        Definition at line
        
         58
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , SI7210_enterContMode() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| #define SI7210_REG_ADDR_CTRL4 0xCD | 
Control register 4, Digital filter configuration
        Definition at line
        
         62
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| #define SI7210_REG_ADDR_DSPSIGL 0xC2 | 
The least significant byte of the last conversion result
        Definition at line
        
         51
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_dataRead() .
| #define SI7210_REG_ADDR_DSPSIGM 0xC1 | 
The most significant byte of the last conversion result
        Definition at line
        
         50
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_dataRead() .
| #define SI7210_REG_ADDR_DSPSIGSEL 0xC3 | 
Select the data after filtering
        Definition at line
        
         52
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_enterContMode() .
| #define SI7210_REG_ADDR_HREVID 0xC0 | 
Hardware revision ID register
        Definition at line
        
         49
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_identify() .
| #define SI7210_REG_ADDR_OTP_ADDR 0xE1 | 
OTP address of the data to read
        Definition at line
        
         66
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_regReadOTP() .
| #define SI7210_REG_ADDR_OTP_CTRL 0xE3 | 
OTP read control register
        Definition at line
        
         68
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_regReadOTP() .
| #define SI7210_REG_ADDR_OTP_DATA 0xE2 | 
Data read from OTP
        Definition at line
        
         67
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_regReadOTP() .
| #define SI7210_REG_ADDR_POWER_CTRL 0xC4 | 
Power control register
        Definition at line
        
         53
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , SI7210_enterContMode() , SI7210_identify() , SI7210_readmTDataSleep() , SI7210_readmTDataSltimeena() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| #define SI7210_REG_ADDR_SLTIME 0xC8 | 
Sleep time control register
        Definition at line
        
         57
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_enterContMode() .
| #define SI7210_REG_ADDR_TM_FG 0xE4 | 
On-chip test coil control
        Definition at line
        
         69
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL1_SW_LOW4FIELD_MASK 0x80 | 
Output polarity setting bit mask, Control register 1
        Definition at line
        
         94
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL1_SW_LOW4FIELD_SHIFT 7 | 
Output polarity setting bit shift value, Control register 1
        Definition at line
        
         95
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL1_SW_OP_MASK 0x7F | 
Switching point mask, Control register 1
        Definition at line
        
         92
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL1_SW_OP_SHIFT 0 | 
Switching point shift value, Control register 1
        Definition at line
        
         93
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL2_SW_FIELDPOLSEL_MASK 0xC0 | 
Switch polarity mask, Control register 2
        Definition at line
        
         99
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL2_SW_FIELDPOLSEL_SHIFT 6 | 
Switchi polarity shift value, Control register 2
        Definition at line
        
         100
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL2_SW_HYST_MASK 0x3F | 
Switch hysteresis mask, Control register 2
        Definition at line
        
         97
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL2_SW_HYST_SHIFT 0 | 
Switch hyteresis shift value, Control register 2
        Definition at line
        
         98
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() .
| #define SI7210_REG_CTRL3_SLFAST_MASK 0x02 | 
Sleep time reduction enable bit mask, Control register 3
        Definition at line
        
         104
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL3_SLFAST_SHIFT 1 | 
Sleep time reduction bit shift value, Control register 3
        Definition at line
        
         105
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL3_SLTIMEENA_MASK 0x01 | 
Sleep timer enable bit mask, Control register 3
        Definition at line
        
         102
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| #define SI7210_REG_CTRL3_SLTIMEENA_SHIFT 0 | 
Sleep timer enable bit shift value, Control register 3
        Definition at line
        
         103
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL3_SW_TAMPER_MASK 0xFC | 
Tamper switch threshold mask, Control register 3
        Definition at line
        
         106
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_sleepSltimeena() .
| #define SI7210_REG_CTRL3_SW_TAMPER_SHIFT 2 | 
Tamper switch threshold shift value, Control register 3
        Definition at line
        
         107
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL4_DF_BURSTSIZE_MASK 0x0E | 
Measurement burst size mask, Control register 4
        Definition at line
        
         113
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL4_DF_BURSTSIZE_SHIFT 5 | 
Measurement burst size shift value, Control register 4
        Definition at line
        
         114
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| #define SI7210_REG_CTRL4_DF_BW_MASK 0x1E | 
Number of samples to average mask, Control register 4
        Definition at line
        
         111
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL4_DF_BW_SHIFT 1 | 
Number of samples to average shift value, Control register 4
        Definition at line
        
         112
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| #define SI7210_REG_CTRL4_IIR_MASK 0x01 | 
IIR filter enable bit mask, Control register 4
        Definition at line
        
         109
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_CTRL4_IIR_SHIFT 0 | 
IIR filter enable bit shift value, Control register 4
        Definition at line
        
         110
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_DSPSIGM_DSPSIGM_MASK 0x7F | 
MSB bits of conversion mask, MSB of last conversion result register
        Definition at line
        
         78
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_dataRead() .
| #define SI7210_REG_DSPSIGM_DSPSIGM_SHIFT 0 | 
MSB bits of conversion shift value, MSB of last conversion result register
        Definition at line
        
         79
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_DSPSIGM_FRESH_MASK 0x80 | 
New data available mask, MSB of last conversion result register
        Definition at line
        
         76
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_DSPSIGM_FRESH_SHIFT 7 | 
New data available shift value, MSB of last conversion result register
        Definition at line
        
         77
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_dataRead() .
| #define SI7210_REG_HREVID_CHIPID_MASK 0xF0 | 
Chip ID mask, Hardware revision ID register
        Definition at line
        
         73
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_HREVID_CHIPID_SHIFT 4 | 
Revision ID shift value, Hardware revision ID register
        Definition at line
        
         74
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_identify() .
| #define SI7210_REG_HREVID_REVID_MASK 0x0F | 
Revision ID mask, Hardware revision ID register
        Definition at line
        
         71
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_identify() .
| #define SI7210_REG_HREVID_REVID_SHIFT 0 | 
Revision ID shift value, Hardware revision ID register
        Definition at line
        
         72
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_OTP_CTRL_BUSY_MASK 0x01 | 
OTP busy indicator bit mask, OTP read control register
        Definition at line
        
         116
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_regReadOTP() .
| #define SI7210_REG_OTP_CTRL_BUSY_SHIFT 0 | 
OTP busy indicator bit shift value, OTP read control register
        Definition at line
        
         117
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_OTP_CTRL_READ_EN_MASK 0x02 | 
OTP read enable bit mask, OTP read control register
        Definition at line
        
         118
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_regReadOTP() .
| #define SI7210_REG_OTP_CTRL_READ_EN_SHIFT 1 | 
OTP read enable bit shift value, OTP read control register
        Definition at line
        
         119
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_POWER_CTRL_MEAS_MASK 0x80 | 
Measurement in progress bit mask, Power control register
        Definition at line
        
         89
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_POWER_CTRL_MEAS_SHIFT 7 | 
Measurement in progress bit shift value, Power control register
        Definition at line
        
         90
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| #define SI7210_REG_POWER_CTRL_ONEBURST_MASK 0x04 | 
One burst mesurement bit mask, Power control register
        Definition at line
        
         85
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_identify() , SI7210_readmTDataSleep() , SI7210_readmTDataSltimeena() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| #define SI7210_REG_POWER_CTRL_ONEBURST_SHIFT 2 | 
One burst mesurement bit shift value, Power control register
        Definition at line
        
         86
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_POWER_CTRL_SLEEP_MASK 0x01 | 
Sleep mode bit mask, Power control register
        Definition at line
        
         81
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by SI7210_identify() , SI7210_readmTDataSleep() , SI7210_readmTDataSltimeena() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| #define SI7210_REG_POWER_CTRL_SLEEP_SHIFT 0 | 
Sleep mode bit shift value, Power control register
        Definition at line
        
         82
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_POWER_CTRL_STOP_MASK 0x02 | 
Stop bit mask, Power control register
        Definition at line
        
         83
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , SI7210_identify() , SI7210_readmTDataSleep() , SI7210_readmTDataSltimeena() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| #define SI7210_REG_POWER_CTRL_STOP_SHIFT 1 | 
Stop bit shift value, Power control register
        Definition at line
        
         84
        
        of file
        
         hall_si7210_regs.h
        
        .
       
| #define SI7210_REG_POWER_CTRL_USESTORE_MASK 0x08 | 
Save the current state of OTP regs bit mask, Power control register
        Definition at line
        
         87
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Referenced by HALL_configure() , SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| #define SI7210_REG_POWER_CTRL_USESTORE_SHIFT 3 | 
Save the current state of OTP regs bit shift value, Power control register
        Definition at line
        
         88
        
        of file
        
         hall_si7210_regs.h
        
        .
       
Function Documentation
| uint8_t SI7210_calculateSlTime | ( | uint32_t | 
            samplePeriod,
            | 
| uint8_t * | 
            slFast
            | ||
| ) | 
Calculates the slTime value from the sleep time by finding the inverse of the formula: tsleep = (32 + slTime[4:0]) * 2^(8 + slTime[7:5]) / 12 MHz.
- Parameters
- 
         [in] samplePeriodThe sleep time [out] slFastThe value of the slFast bit 
- Returns
- The value of the slTime bitfield
        Definition at line
        
         766
        
        of file
        
         hall_si7210.c
        
        .
       
| uint8_t SI7210_calculateSWHYST | ( | float | 
            hysteresis,
            | 
| bool | 
            scale200mT
            | ||
| ) | 
Calculates the sw_hyst value from the hysteresis by finding the inverse of the formula: hysteresis = (8 + sw_hyst[2:0]) * 2^sw_hyst[5:3].
- Parameters
- 
         [in] hysteresisHysteresis value [in] scale200mTscale200mT=false : full-scale equals 20mT scale200mT=true : full-scale equals 200mT 
- Returns
- The value of the sw_hyst bitfield
        Definition at line
        
         663
        
        of file
        
         hall_si7210.c
        
        .
       
Referenced by HALL_configure() .
| uint8_t SI7210_calculateSWOP | ( | float | 
            threshold
            | ) | 
Calculates the sw_op value from the threshold by finding the inverse of the formula: threshold = (16 + sw_op[3:0]) * 2^sw_op[6:4].
- Parameters
- 
         [in] thresholdThreshold value 
- Returns
- The value of the sw_op bitfield
        Definition at line
        
         617
        
        of file
        
         hall_si7210.c
        
        .
       
Referenced by HALL_configure() .
| uint8_t SI7210_calculateSWTAMPER | ( | float | 
            tamper,
            | 
| bool | 
            scale200mT
            | ||
| ) | 
Calculates the sw_tamper value from the tamper threshold by finding the inverse of the formula: tamper = (16 + sw_tamper[3:0]) * 2^(sw_tamper[5:4] + 5)
- Parameters
- 
         [in] tamperTamper value 
- 
         - Parameters
- 
           [in] scale200mTscale200mT=false : full-scale equals 20mT scale200mT=true : full-scale equals 200mT 
 - Returns
- The value of the sw_tamper bitfield
 
        Definition at line
        
         713
        
        of file
        
         hall_si7210.c
        
        .
       
| uint32_t SI7210_dataRead | ( | int16_t * | 
            data
            | ) | 
Read out Si7210 Conversion Data - 15bits.
- Parameters
- 
         [out] dataThe raw magnetic field conversion data (15 bits) 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         264
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_ERROR_NODATA , SI7210_REG_ADDR_DSPSIGL , SI7210_REG_ADDR_DSPSIGM , SI7210_REG_DSPSIGM_DSPSIGM_MASK , SI7210_REG_DSPSIGM_FRESH_SHIFT , and SI7210_registerRead() .
Referenced by SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| uint32_t SI7210_enterContMode | ( | void | 
            | ) | 
Puts sensor into continuous mode, conversions performed every 7usec.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         584
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_REG_ADDR_CTRL1 , SI7210_REG_ADDR_CTRL2 , SI7210_REG_ADDR_CTRL3 , SI7210_REG_ADDR_DSPSIGSEL , SI7210_REG_ADDR_POWER_CTRL , SI7210_REG_ADDR_SLTIME , SI7210_registerRead() , SI7210_registerWrite() , and SI7210_wakeUp() .
| uint32_t SI7210_identify | ( | uint8_t * | 
            id,
            | 
| uint8_t * | 
            rev
            | ||
| ) | 
Read out Si7210 Revision and ID.
- Parameters
- 
         [out] idSi7210 part ID [out] revSi7210 part Revision 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         345
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_REG_ADDR_HREVID , SI7210_REG_ADDR_POWER_CTRL , SI7210_REG_HREVID_CHIPID_SHIFT , SI7210_REG_HREVID_REVID_MASK , SI7210_REG_POWER_CTRL_ONEBURST_MASK , SI7210_REG_POWER_CTRL_SLEEP_MASK , SI7210_REG_POWER_CTRL_STOP_MASK , SI7210_registerRead() , SI7210_registerWrite() , and SI7210_wakeUp() .
Referenced by HALL_initDevice() .
| 
 | static | 
Loads the coefficients A0..A6 from the OTP memory.
- Parameters
- 
         [in] otpAddrThe register address to start reading from the OTP memory 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         414
        
        of file
        
         hall_si7210.c
        
        .
       
References HALL_OK , SI7210_OK , SI7210_REG_ADDR_A0 , SI7210_REG_ADDR_A1 , SI7210_REG_ADDR_A2 , SI7210_REG_ADDR_A3 , SI7210_REG_ADDR_A4 , SI7210_REG_ADDR_A5 , SI7210_registerWrite() , and SI7210_regReadOTP() .
Referenced by SI7210_set200mTRange() .
| uint32_t SI7210_readmTDataSleep | ( | bool | 
            range200mT,
            | 
| int32_t * | 
            mTdata
            | ||
| ) | 
Wake-up from Sleep, perform burst-conversion(4samples), read mT-data, and then put part into sleep mode (no-measurement). Requires Wake-Up.
- Parameters
- 
         [in] range200mTrange200mT=false : full-scale equals 20mT range200mT=true : full-scale equals 200mT [out] mTdataMag-field conversion reading, signed 32-bit integer mTdata must be divided by 1000 to get decimal value in mT units 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         535
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_dataRead() , SI7210_REG_ADDR_CTRL4 , SI7210_REG_ADDR_POWER_CTRL , SI7210_REG_CTRL4_DF_BURSTSIZE_SHIFT , SI7210_REG_CTRL4_DF_BW_SHIFT , SI7210_REG_POWER_CTRL_MEAS_SHIFT , SI7210_REG_POWER_CTRL_ONEBURST_MASK , SI7210_REG_POWER_CTRL_SLEEP_MASK , SI7210_REG_POWER_CTRL_STOP_MASK , SI7210_REG_POWER_CTRL_USESTORE_MASK , SI7210_registerRead() , SI7210_registerWrite() , SI7210_set200mTRange() , SI7210_sleep() , and SI7210_wakeUp() .
| uint32_t SI7210_readmTDataSltimeena | ( | bool | 
            range200mT,
            | 
| int32_t * | 
            mTdata
            | ||
| ) | 
Perform burst-conversion(4samples), read mT-data, and then put part into sltimeena-sleep mode where OUT is updated every 200msec.
- Parameters
- 
         [in] range200mTrange200mT=false : full-scale equals 20mT range200mT=true : full-scale equals 200mT [out] mTdataMag-field conversion reading, signed 32-bit integer mTdata must be divided by 1000 to get decimal value in mT units 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         477
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_dataRead() , SI7210_REG_ADDR_CTRL4 , SI7210_REG_ADDR_POWER_CTRL , SI7210_REG_CTRL4_DF_BURSTSIZE_SHIFT , SI7210_REG_CTRL4_DF_BW_SHIFT , SI7210_REG_POWER_CTRL_MEAS_SHIFT , SI7210_REG_POWER_CTRL_ONEBURST_MASK , SI7210_REG_POWER_CTRL_SLEEP_MASK , SI7210_REG_POWER_CTRL_STOP_MASK , SI7210_REG_POWER_CTRL_USESTORE_MASK , SI7210_registerRead() , SI7210_registerWrite() , SI7210_set200mTRange() , SI7210_sleepSltimeena() , and SI7210_wakeUp() .
Referenced by HALL_measure() .
| uint32_t SI7210_regClearBits | ( | uint8_t | 
            addr,
            | 
| uint8_t | 
            mask
            | ||
| ) | 
Clears the given bit(s) in a register in the Hall sensor device.
- Parameters
- 
         [in] addrThe address of the register [in] maskThe mask specifies which bits should be clear. If a given bit of the mask is 1 that register bit will be cleared to 0. All the other register bits will be untouched. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         927
        
        of file
        
         hall_si7210.c
        
        .
       
References HALL_OK , SI7210_registerRead() , and SI7210_registerWrite() .
Referenced by HALL_configure() .
| uint32_t SI7210_registerRead | ( | uint8_t | 
            addr,
            | 
| uint8_t * | 
            data
            | ||
| ) | 
Reads register from the Hall sensor device.
- Parameters
- 
         [in] addrThe register address to read from in the sensor [out] dataThe data read from the device 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         821
        
        of file
        
         hall_si7210.c
        
        .
       
References I2C_TransferSeq_TypeDef::addr , BOARD_i2cBusSelect() , I2C_TransferSeq_TypeDef::buf , I2C_TransferSeq_TypeDef::data , I2C_TransferSeq_TypeDef::flags , HALL_ERROR_I2C_TRANSACTION_FAILED , HALL_OK , I2C_FLAG_WRITE_READ , I2CSPM_Transfer() , i2cTransferDone , and I2C_TransferSeq_TypeDef::len .
Referenced by SI7210_dataRead() , SI7210_enterContMode() , SI7210_identify() , SI7210_readmTDataSleep() , SI7210_readmTDataSltimeena() , SI7210_regClearBits() , SI7210_regReadOTP() , SI7210_regSetBits() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| uint32_t SI7210_registerWrite | ( | uint8_t | 
            addr,
            | 
| uint8_t | 
            data
            | ||
| ) | 
Writes a register in the Hall sensor device.
- Parameters
- 
         [in] addrThe register address to write [in] dataThe data to write to the register 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         857
        
        of file
        
         hall_si7210.c
        
        .
       
References I2C_TransferSeq_TypeDef::addr , BOARD_i2cBusSelect() , I2C_TransferSeq_TypeDef::buf , I2C_TransferSeq_TypeDef::data , I2C_TransferSeq_TypeDef::flags , HALL_ERROR_I2C_TRANSACTION_FAILED , HALL_OK , I2C_FLAG_WRITE_WRITE , I2CSPM_Transfer() , i2cTransferDone , and I2C_TransferSeq_TypeDef::len .
Referenced by HALL_configure() , SI7210_enterContMode() , SI7210_identify() , SI7210_loadCoeffsFromOtp() , SI7210_readmTDataSleep() , SI7210_readmTDataSltimeena() , SI7210_regClearBits() , SI7210_regReadOTP() , SI7210_regSetBits() , SI7210_sleep() , and SI7210_sleepSltimeena() .
| uint32_t SI7210_regReadOTP | ( | uint8_t | 
            otpAddr,
            | 
| uint8_t * | 
            otpData
            | ||
| ) | 
Reads register from the OTP area of the Si7021 device.
- Parameters
- 
         [in] otpAddrThe register address to read from in the sensor [out] otpDataThe data read from the device 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         375
        
        of file
        
         hall_si7210.c
        
        .
       
References HALL_OK , SI7210_ERROR_OTP_BUSY , SI7210_REG_ADDR_OTP_ADDR , SI7210_REG_ADDR_OTP_CTRL , SI7210_REG_ADDR_OTP_DATA , SI7210_REG_OTP_CTRL_BUSY_MASK , SI7210_REG_OTP_CTRL_READ_EN_MASK , SI7210_registerRead() , and SI7210_registerWrite() .
Referenced by SI7210_loadCoeffsFromOtp() .
| uint32_t SI7210_regSetBits | ( | uint8_t | 
            addr,
            | 
| uint8_t | 
            mask
            | ||
| ) | 
Sets the given bit(s) in a register in the Hall sensor device.
- Parameters
- 
         [in] addrThe address of the register [in] maskThe mask specifies which bits should be set. If a given bit of the mask is 1 that register bit will be set to 1. All the other register bits will be untouched. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         895
        
        of file
        
         hall_si7210.c
        
        .
       
References HALL_OK , SI7210_registerRead() , and SI7210_registerWrite() .
Referenced by HALL_configure() .
| uint32_t SI7210_set200mTRange | ( | void | 
            | ) | 
Change Mag-Field scale to 200mT. If desired, must be performed after power-up or wake-up from sleep.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         454
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_loadCoeffsFromOtp() , SI7210_OK , and SI7210_OTP_ADDR_COEFFS_200MT .
Referenced by SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .
| uint32_t SI7210_sleep | ( | void | 
            | ) | 
Puts Si7210 into Sleep (No-measurement) Mode Wake-up command needs to be issued to become responsive.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         292
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_REG_ADDR_CTRL3 , SI7210_REG_ADDR_POWER_CTRL , SI7210_REG_CTRL3_SLTIMEENA_MASK , SI7210_REG_POWER_CTRL_ONEBURST_MASK , SI7210_REG_POWER_CTRL_SLEEP_MASK , SI7210_REG_POWER_CTRL_STOP_MASK , SI7210_registerRead() , and SI7210_registerWrite() .
Referenced by SI7210_readmTDataSleep() .
| uint32_t SI7210_sleepSltimeena | ( | void | 
            | ) | 
Puts Si7210 into Sleep w/ Measurement Mode: OUTPUT is updated 200msec.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         315
        
        of file
        
         hall_si7210.c
        
        .
       
References SI7210_REG_ADDR_CTRL3 , SI7210_REG_ADDR_POWER_CTRL , SI7210_REG_CTRL3_SLTIMEENA_MASK , SI7210_REG_CTRL3_SW_TAMPER_MASK , SI7210_REG_POWER_CTRL_ONEBURST_MASK , SI7210_REG_POWER_CTRL_SLEEP_MASK , SI7210_REG_POWER_CTRL_STOP_MASK , SI7210_registerRead() , and SI7210_registerWrite() .
Referenced by SI7210_readmTDataSltimeena() .
| uint32_t SI7210_wakeUp | ( | void | 
            | ) | 
Wakes up the Hall sensor chip.
- Returns
- None
        Definition at line
        
         951
        
        of file
        
         hall_si7210.c
        
        .
       
References I2C_TransferSeq_TypeDef::addr , BOARD_i2cBusSelect() , I2C_TransferSeq_TypeDef::buf , I2C_TransferSeq_TypeDef::data , I2C_TransferSeq_TypeDef::flags , HALL_ERROR_I2C_TRANSACTION_FAILED , HALL_OK , I2C_FLAG_WRITE , I2CSPM_Transfer() , i2cTransferDone , and I2C_TransferSeq_TypeDef::len .
Referenced by HALL_configure() , HALL_initDevice() , SI7210_enterContMode() , SI7210_identify() , SI7210_readmTDataSleep() , and SI7210_readmTDataSltimeena() .