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 46
of file hall_si7210.h
.
#define SI7210_ERROR_I2C_TRANSFER_FAILED 0x0001 |
I2C transaction failed
Definition at line 44
of file hall_si7210.h
.
#define SI7210_ERROR_INVALID_DEVICE_ID 0x0002 |
The device ID is invalid
Definition at line 45
of file hall_si7210.h
.
#define SI7210_ERROR_NODATA 0x0006 |
No measurement data available
Definition at line 49
of file hall_si7210.h
.
Referenced by SI7210_dataRead().
#define SI7210_ERROR_OTP_BUSY 0x0004 |
The OTP memory is busy
Definition at line 47
of file hall_si7210.h
.
Referenced by SI7210_regReadOTP().
#define SI7210_ERROR_READ_TIMEOUT 0x0005 |
Timeout occurred during read operation
Definition at line 48
of file hall_si7210.h
.
#define SI7210_OK 0 |
No errors
Definition at line 43
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 119
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_BPERVCAL 0x20 |
OTP On-chip field generator calibration value
Definition at line 122
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_COEFFS_200MT 0x27 |
OTP 200mT scale no magnet temperature compensation value
Definition at line 125
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 129
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_COEFFS_200MT_NEODYMIUM 0x33 |
OTP 200mT scale neodymium temperature compensation value
Definition at line 127
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_COEFFS_20MT 0x21 |
OTP 20mT scale no magnet temperature compensation value
Definition at line 124
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 128
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 126
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_CTRL1 0x04 |
OTP Control register 1, output pin configuration
Definition at line 108
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_CTRL2 0x05 |
OTP Control register 2, output pin configuration
Definition at line 109
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 111
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_CTRL4 0x0C |
OTP Control register 4, Digital filter configuration
Definition at line 115
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_POWER_UP_A0 0x09 |
OTP Coefficient A0
Definition at line 112
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_POWER_UP_A1 0x0A |
OTP Coefficient A1
Definition at line 113
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_POWER_UP_A2 0x0B |
OTP Coefficient A2
Definition at line 114
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_POWER_UP_A3 0x0D |
OTP Coefficient A3
Definition at line 116
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_POWER_UP_A4 0x0E |
OTP Coefficient A4
Definition at line 117
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_POWER_UP_A5 0x0F |
OTP Coefficient A5
Definition at line 118
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_SERIAL_NUMBER 0x18 |
OTP Serial number
Definition at line 121
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_SLTIME 0x06 |
OTP Sleep time control register
Definition at line 110
of file hall_si7210_regs.h
.
#define SI7210_OTP_ADDR_VARIANT 0x15 |
OTP Variant number
Definition at line 120
of file hall_si7210_regs.h
.
#define SI7210_REG_ADDR_A0 0xCA |
Coefficient A0
Definition at line 46
of file hall_si7210_regs.h
.
Referenced by SI7210_loadCoeffsFromOtp().
#define SI7210_REG_ADDR_A1 0xCB |
Coefficient A1
Definition at line 47
of file hall_si7210_regs.h
.
Referenced by SI7210_loadCoeffsFromOtp().
#define SI7210_REG_ADDR_A2 0xCC |
Coefficient A2
Definition at line 48
of file hall_si7210_regs.h
.
Referenced by SI7210_loadCoeffsFromOtp().
#define SI7210_REG_ADDR_A3 0xCE |
Coefficient A3
Definition at line 50
of file hall_si7210_regs.h
.
Referenced by SI7210_loadCoeffsFromOtp().
#define SI7210_REG_ADDR_A4 0xCF |
Coefficient A4
Definition at line 51
of file hall_si7210_regs.h
.
Referenced by SI7210_loadCoeffsFromOtp().
#define SI7210_REG_ADDR_A5 0xD0 |
Coefficient A5
Definition at line 52
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 41
of file hall_si7210_regs.h
.
#define SI7210_REG_ADDR_CTRL1 0xC6 |
Control register 1, output pin configuration
Definition at line 42
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 43
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 45
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 49
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 38
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 37
of file hall_si7210_regs.h
.
Referenced by SI7210_dataRead().
#define SI7210_REG_ADDR_DSPSIGSEL 0xC3 |
Select the data after filtering
Definition at line 39
of file hall_si7210_regs.h
.
Referenced by SI7210_enterContMode().
#define SI7210_REG_ADDR_HREVID 0xC0 |
Hardware revision ID register
Definition at line 36
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 53
of file hall_si7210_regs.h
.
Referenced by SI7210_regReadOTP().
#define SI7210_REG_ADDR_OTP_CTRL 0xE3 |
OTP read control register
Definition at line 55
of file hall_si7210_regs.h
.
Referenced by SI7210_regReadOTP().
#define SI7210_REG_ADDR_OTP_DATA 0xE2 |
Data read from OTP
Definition at line 54
of file hall_si7210_regs.h
.
Referenced by SI7210_regReadOTP().
#define SI7210_REG_ADDR_POWER_CTRL 0xC4 |
Power control register
Definition at line 40
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 44
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 56
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 81
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 82
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 79
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 80
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 86
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 87
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 84
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 85
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 91
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 92
of file hall_si7210_regs.h
.
#define SI7210_REG_CTRL3_SLTIMEENA_MASK 0x01 |
Sleep timer enable bit mask, Control register 3
Definition at line 89
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 90
of file hall_si7210_regs.h
.
#define SI7210_REG_CTRL3_SW_TAMPER_MASK 0xFC |
Tamper switch threshold mask, Control register 3
Definition at line 93
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 94
of file hall_si7210_regs.h
.
#define SI7210_REG_CTRL4_DF_BURSTSIZE_MASK 0x0E |
Measurement burst size mask, Control register 4
Definition at line 100
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 101
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 98
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 99
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 96
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 97
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 65
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 66
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 63
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 64
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 60
of file hall_si7210_regs.h
.
#define SI7210_REG_HREVID_CHIPID_SHIFT 4 |
Revision ID shift value, Hardware revision ID register
Definition at line 61
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 58
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 59
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 103
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 104
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 105
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 106
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 76
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 77
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 72
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 73
of file hall_si7210_regs.h
.
#define SI7210_REG_POWER_CTRL_SLEEP_MASK 0x01 |
Sleep mode bit mask, Power control register
Definition at line 68
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 69
of file hall_si7210_regs.h
.
#define SI7210_REG_POWER_CTRL_STOP_MASK 0x02 |
Stop bit mask, Power control register
Definition at line 70
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 71
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 74
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 75
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] samplePeriod
The sleep time [out] slFast
The value of the slFast bit
- Returns
- The value of the slTime bitfield
Definition at line 753
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] hysteresis
Hysteresis value [in] scale200mT
scale200mT=false : full-scale equals 20mT scale200mT=true : full-scale equals 200mT
- Returns
- The value of the sw_hyst bitfield
Definition at line 650
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] threshold
Threshold value
- Returns
- The value of the sw_op bitfield
Definition at line 604
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] tamper
Tamper value
- Parameters
-
[in] scale200mT
scale200mT=false : full-scale equals 20mT scale200mT=true : full-scale equals 200mT
- Returns
- The value of the sw_tamper bitfield
Definition at line 700
of file hall_si7210.c
.
uint32_t SI7210_dataRead | ( | int16_t * | data | ) |
Read out Si7210 Conversion Data - 15bits.
- Parameters
-
[out] data
The raw magnetic field conversion data (15 bits)
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line 251
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 571
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] id
Si7210 part ID [out] rev
Si7210 part Revision
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line 332
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] otpAddr
The register address to start reading from the OTP memory
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line 401
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] range200mT
range200mT=false : full-scale equals 20mT range200mT=true : full-scale equals 200mT [out] mTdata
Mag-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 522
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] range200mT
range200mT=false : full-scale equals 20mT range200mT=true : full-scale equals 200mT [out] mTdata
Mag-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 464
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] addr
The address of the register [in] mask
The 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 914
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] addr
The register address to read from in the sensor [out] data
The data read from the device
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line 808
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] addr
The register address to write [in] data
The data to write to the register
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line 844
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] otpAddr
The register address to read from in the sensor [out] otpData
The data read from the device
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line 362
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] addr
The address of the register [in] mask
The 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 882
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 441
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 279
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 302
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 938
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().