si72xx.c File Reference
Driver for the Si72xx Hall Effect Sensor.
- Version
- 5.5.0
License
Copyright 2017 Silicon Labs, Inc. http://www.silabs.com
This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.
       Definition in file
       
        si72xx.c
       
       .
      
       #include "
       
        i2cspm.h
       
       "
      
      
       #include "
       
        si72xx.h
       
       "
      
      
       #include <stddef.h>
      
      
       #include <stdbool.h>
      
      
| Functions | |
| int32_t | Si72xx_ConvertDataCodesToMagneticField ( Si72xxFieldScale_t fieldScale, int16_t dataCode) | 
| Convert Si7210 I2C Data Readings to Magnetic Field in microTeslas. | |
| uint32_t | Si72xx_EnterLatchMode ( I2C_TypeDef *i2c, uint8_t addr) | 
| Wake-up Si72xx, and configures output for Latch mode. Switch point = 0mT w/ 0.2mT hysteresis. | |
| uint32_t | Si72xx_EnterSleepMode ( I2C_TypeDef *i2c, uint8_t addr, Si72xxSleepMode_t sleepMode) | 
| Wake-up Si72xx, and set sleep-mode option. If Si72xx is in a sleep-mode, it requires a wake-up command first. Useful for placing Si72xx in SLTIMEENA mode from SLEEP mode, or vice-versa. | |
| uint32_t | Si72xx_FromIdle_GoToSleep ( I2C_TypeDef *i2c, uint8_t addr) | 
| Puts Si72xx into Sleep mode (lowest power).. Command can only be issued if Si72xx is idle mode. | |
| uint32_t | Si72xx_FromIdle_GoToSltimeena ( I2C_TypeDef *i2c, uint8_t addr) | 
| Puts Si72xx into Sleep-Timer-Enable mode. Si72xx periodically wakes-up, samples the magnetic field, updates the output, and goes back to sleep-timer-enabled mode. Command can only be issued if Si72xx is idle mode. | |
| uint32_t | Si72xx_IdentifyAndSleep ( I2C_TypeDef *i2c, uint8_t addr, uint8_t *partId, uint8_t *partRev) | 
| uint32_t | Si72xx_Read_MagField_Data ( I2C_TypeDef *i2c, uint8_t addr, int16_t *magData) | 
| Read out Si72xx Magnetic Field Conversion Data Command can only be issued if Si72xx is idle mode. | |
| static uint32_t | Si72xx_Read_OTP ( I2C_TypeDef *i2c, uint8_t addr, uint8_t otpAddr, uint8_t *otpData) | 
| Read Si72xx OTP Data Command can only be issued if Si72xx is idle mode. | |
| uint32_t | Si72xx_Read_Register ( I2C_TypeDef *i2c, uint8_t addr, uint8_t reg, uint8_t *data) | 
| Reads register from the Si72xx sensor. Command can only be issued if Si72xx is idle mode. | |
| uint32_t | Si72xx_ReadCorrectedTempAndSleep ( I2C_TypeDef *i2c, uint8_t addr, int16_t offsetData, int16_t gainData, int32_t *correctedTemp) | 
| Wakes up SI72xx, performs a temperature conversion, and places sensor back to sleep. Temperature calculation is performed using compensation data. | |
| uint32_t | Si72xx_ReadMagFieldDataAndSleep ( I2C_TypeDef *i2c, uint8_t addr, Si72xxFieldScale_t mTScale, Si72xxSleepMode_t sleepMode, int16_t *magFieldData) | 
| Wake-up SI72xx, performs a magnetic-field conversion with FIR, and places Si72xx back to sleep-mode. | |
| uint32_t | Si72xx_ReadTempCorrectionDataAndSleep ( I2C_TypeDef *i2c, uint8_t addr, int16_t *offsetValue, int16_t *gainValue) | 
| Wakes up SI72xx, performs temperature conversion and places Si72xx into SI72XX_SLEEP sleep-mode. | |
| uint32_t | Si72xx_ReadTemperatureAndSleep ( I2C_TypeDef *i2c, uint8_t addr, int32_t *rawTemp) | 
| Wakes up SI72xx, performs temperature conversion and places Si72xx into SI72XX_SLEEP sleep-mode. | |
| uint32_t | Si72xx_ReadVariantAndSleep ( I2C_TypeDef *i2c, uint8_t addr, uint8_t *basePn, uint8_t *pnVariant) | 
| static uint32_t | Si72xx_Set_mT_Range ( I2C_TypeDef *i2c, uint8_t addr, Si72xxFieldScale_t mTScale) | 
| Set magnetic-field output range, 20mT or 200mT full-scale Command can only be issued if Si72xx is idle mode. | |
| uint32_t | Si72xx_WakeUpAndIdle ( I2C_TypeDef *i2c, uint8_t addr) | 
| Wake-up Si72xx and places sensor in idle-mode. | |
| uint32_t | Si72xx_Write_Register ( I2C_TypeDef *i2c, uint8_t addr, uint8_t reg, uint8_t data) | 
| Writes register in the Si72xx sensor. Command can only be issued if Si72xx is idle mode. | |
Function Documentation
| 
 | static | 
Read Si72xx OTP Data Command can only be issued if Si72xx is idle mode.
- Parameters
- 
         [in] i2cThe I2C peripheral to use (not used). [in] addrThe I2C address of the sensor [in] otpAddrThe OTB Byte address of the coefficients [out] dataOTP data read out 
        Definition at line
        
         298
        
        of file
        
         si72xx.c
        
        .
       
References Si72xx_Read_Register() , and Si72xx_Write_Register() .
Referenced by Si72xx_ReadTempCorrectionDataAndSleep() , and Si72xx_Set_mT_Range() .
| 
 | static | 
Set magnetic-field output range, 20mT or 200mT full-scale Command can only be issued if Si72xx is idle mode.
- Parameters
- 
         [in] i2cThe I2C peripheral to use (not used). [in] addrThe I2C address of the sensor [in] mTScale20mT or 200mT 
        Definition at line
        
         330
        
        of file
        
         si72xx.c
        
        .
       
References Si72xx_Read_OTP() , and Si72xx_Write_Register() .
Referenced by Si72xx_ReadMagFieldDataAndSleep() .