以下將介紹TLE493D-P2B6的概要,以及針對TLE493D-P2B6提供的OSS-ECAL。TLE493D-P2B6是英飛凌科技(Infineon)生產的高精度低功耗3D霍爾感測器(全量程-160至160 mT,短量程-100至100 mT)。
MCU介面:I2C
请注意:本资料的原文为英文。译文仅供参考,可能使用机器翻译,我们不保证译文的准确性和有效性。在实际设计等工作之前,请参考最新版本的数据表。
TLE493D-P2B6
概述
这种 3D 霍尔效应传感器可通过微控制器进行配置。测量数据以数字格式传输到微控制器。微控制器是主站,传感器是从站。它还具有测试功能和唤醒沉睡系统的能力。
特点
- 三维(X、Y、Z)磁通密度传感 ±160 mT
- 可编程磁通量分辨率低至 65 µT(典型值)
- X-Y 角度测量模式
- 诊断测量,检查传感器和霍尔探头的数字和模拟组件
- 具有唤醒功能的掉电模式,功耗为 7 nA(典型值)
- 每个测量方向都有 12 位数据分辨率和 10 位温度传感器
- 可变更新频率和功率模式(可在运行过程中进行配置)
- 温度范围 Tj = -40°C…125°C, 电源电压范围 = 2.8 V…3.5 V
- 可通过 I2C 协议从外部 µC 触发
- 中断信号,向微控制器指示有效测量
用途
TLE493D-P2B6專為以下廣泛的磁感測應用而設計:
- 变速杆位置
- 顶柱模块和多功能方向盘控制元件
- 多功能旋钮
- 踏板/阀门位置感应
好处
- 基于三维磁性测量原理的组件缩减
- 灵活性高,应用范围广
- 通过设备配置实现平台适应性
- 通过集成诊断支持功能安全
- 唤醒模式可实现极低的系统功耗,延长电池寿命
- 与高通量测量范围相比,小的杂散场干扰可以忽略不计
OSS-ECAL规格
API 功能
OSS-ECAL的API函式,基本上是以從定周期 Thread(TASK) 中呼叫函式為前提設計的。
提供时的设定值
Label Name | Description | Set value at the time of provision |
---|---|---|
TLE493D_P2B6_TYPE | 請從下列值中選擇Product Type。 eTLE493D_P2B6_A0: Product Type A0 eTLE493D_P2B6_A1: Product Type A1 eTLE493D_P2B6_A2: Product Type A2 eTLE493D_P2B6_A3: Product Type A3 | eTLE493D_P2B6_A0 |
I2C_PROTOCOL_INI | I²C 1byte 或 2byte 讀取通訊協定,請從下列值中選擇。 i1BYTE: 1byte i2BYTE: 2byte | i1BYTE |
WAKEUP_FEATURE | 從下列值中選擇 Register WU bit6 WU。 iENABLE: Enable iDISABLE: Disable | iDISABLE |
WAKEUP_XL_INI | Register XL的設定值。 X-Direction : Wake Up lower threshold [mT] | 0.0F |
WAKEUP_XH_INI | Register XH的設定值。 X-Direction : Wake Up lower threshold [mT] | 0.0F |
WAKEUP_YL_INI | Register YL的設定值。 X-Direction : Wake Up lower threshold [mT] | 0.0F |
WAKEUP_YH_INI | Register YH的設定值。 Y-Direction : Wake Up upper threshold [mT] | 0.0F |
WAKEUP_ZL_INI | Register ZL的設定值。 Z-Direction : Wake Up lower threshold [mT] | 0.0F |
WAKEUP_ZH_INI | Register ZH的設定值。 Z-Direction : Wake Up upper threshold [mT] | 0.0F |
SENSITIVITY | 從下列值中選擇 Full-range 或 Short-range。 iRANGE_FULL: Full-range iRANGE_SHORT: Short-range | iRANGE_FULL |
Config_INI | Register Config的設定值。 | bit7 DT = 0 bit6 AM = 0 bit5:4 TRIG = 00 bit3 X2 = 0 bit2:1 TL_mag = 00 bit0 CP = 1 |
READ_OUT | 從下列值中選取是否以 12bit 或 8bit 讀取磁性資料。 i12BITS: 12bit i8BITS: 8bit | i12BITS |
POWER_MODE | 從下列值中選擇 Power Mode。 eLOW_POWER_MODE: Low power mode eMASTER_CONTROL_MODE: Master control mode eFAST_MODE: Fast mode | eMASTER_CONTROL_MODE |
UPDATE_RATE_INI | 從下列數值中選擇 Register MOD2 PRD” 的頻率設定。 eRATE_700_HZ: 770 Hz eRATE_97_HZ: 97 Hz eRATE_24_HZ: 24 Hz eRATE_12_HZ: 12 Hz eRATE_6_HZ: 6 Hz eRATE_3_HZ: 3 Hz eRATE_0_4_HZ: 0.4 Hz eRATE_0_05_HZ: 0.05 Hz | eRATE_12_HZ |
etSTS oTLE493D_P2B6_RESET( void )
oTLE493D_P2B6_RESET函數是重設TLE493D-P2B6的API函數。
– Step1 Send 0xFF
– Step2 Send 0xFF again
– Step3 Send 0x00
– Step4 Send 0x00 again
– Step5 Wait 30μs required after device reset to ensure stable startup
– Step6 Correct CP bit
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 |
etSTS oTLE493D_P2B6_INIT( void )
oTLE493D_P2B6_INIT函式是重置後設定TLE493D-P2B6的API函式。
– Step1 Configuration bus
– Step2 Disable Interrupt before other settings
– Step3 Sensor Configuration
– Step4 Disable Test Mode
– Step5 Enable/Disable Wake-Up
– Step6 Set Wake-Up Threshold
– Step7 Set Power Mode
– Step8 Set Update Rate
– Step9 Enable/Disable Collision Avoidance or Clock Stretching
– Step10 Enable/Disable Interrupt
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 1. 如果 I2C_PROTOCOL_INI 的值与下列值不同 i1BYTE, i2BYTES 2. 如果 TLE493D_P2B6_TYPE 的值与下列值不同 eTLE493D_P2B6_A0, eTLE493D_P2B6_A1, eTLE493D_P2B6_A2, eTLE493D_P2B6_A3 3. 當 Wake-up Threshold 的數值為以下情況時 WAKEUP_XL_INI > WAKEUP_XH_INI WAKEUP_YL_INI > WAKEUP_YH_INI WAKEUP_ZL_INI > WAKEUP_ZH_INI 4.當 Wake-up Threshold 設定值超出下列範圍時 iMIN_TLE493D_P2B6_XL_f ≦ WAKEUP_XL_INI ≦ iMAX_TLE493D_P2B6_XL_f iMIN_TLE493D_P2B6_YL_f ≦ WAKEUP_YL_INI ≦ iMAX_TLE493D_P2B6_YL_f iMIN_TLE493D_P2B6_ZL_f ≦ WAKEUP_ZL_INI ≦ iMAX_TLE493D_P2B6_ZL_f iMIN_TLE493D_P2B6_XH_f ≦ WAKEUP_XHL_INI ≦ iMAX_TLE493D_P2B6_XH_f iMIN_TLE493D_P2B6_YH_f ≦ WAKEUP_YH_INI ≦ iMAX_TLE493D_P2B6_YH_f iMIN_TLE493D_P2B6_ZH_f ≦ WAKEUP_ZH_INI ≦ iMAX_TLE493D_P2B6_ZH_f 5. POWER_MODE的值若非下列值時 eLOW_POWER_MODE, eFAST_MODE, eMASTER_CONTROL_MODE 6. 當UPDATE_RATE_INI的值非下列值時 eRATE_700_HZ, eRATE_97_HZ, eRATE_24_HZ, eRATE_12_HZ, eRATE_6_HZ, eRATE_3_HZ, eRATE_0_4_HZ, eRATE_0_05_HZ | ||
eSTS_ERR_DIAG | 在下列任一情况下 1. Fuse Parity Error 2. Register Diag CF = 0 3. Register Diag T = 1 |
etSTS oTLE493D_P2B6_WRITE_WAKEUP( uint8 wu_sts )
oTLE493D_P2B6_WRITE_WAKEUP函數是設定 “喚醒” 功能啟用/停用的API函數。
– Step1 Read all registers and retrieve the WU, Config, and Diag register values
– Step2 Confirm test mode is disabled and CF = 1
– Step3 Write Register 0x0D( WU ) : Setting wake-up bit
– Step4 Write Register 0x0D( WU ) : Setting wake-up
– Step5 Write Register 0x10(Config): Update CP bit
注意:當 Wake-up 功能啟用時,必須將 Test Mode 功能關閉。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_DIAG | 在下列任一情况下 1. Register Diag CF = 0 2. Register Diag T = 1 | ||
参数 IN | uint8 wu_sts | 启用/禁用 Wake-up 功能。 | 从以下数值中选择 iENABLE, iDISABLE |
etSTS oTLE493D_P2B6_WRITE_WAKEUP_THRES( float32 thres_xl, float32 thres_yl, float32 thres_zl, float32 thres_xh, float32 thres_yh, float32 thres_zh )
oTLE493D_P2B6_WRITE_WAKEUP_THRES函数是用于设置唤醒功能阈值的API函数。
– Step1 Check Threshold
– Step2 Set Wake-Up Lower Threshold
– Step3 Set Wake-Up Upper Threshold
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 1. 当Wake-up Threshold值为以下情况时 thres_xl > thres_xh thres_yl > thres_yh thres_zl > thres_zh 2.Wake-up Threshold的设置值超出下列范围时 iMIN_TLE493D_P2B6_XL_f ≦ thres_xl ≦ iMAX_TLE493D_P2B6_XL_f iMIN_TLE493D_P2B6_YL_f ≦ thres_yl ≦ iMAX_TLE493D_P2B6_YL_f iMIN_TLE493D_P2B6_ZL_f ≦ thres_zl ≦ iMAX_TLE493D_P2B6_ZL_f iMIN_TLE493D_P2B6_XH_f ≦ thres_xh ≦ iMAX_TLE493D_P2B6_XH_f iMIN_TLE493D_P2B6_YH_f ≦ thres_yh ≦ iMAX_TLE493D_P2B6_YH_f iMIN_TLE493D_P2B6_ZH_f ≦ thres_zh ≦ iMAX_TLE493D_P2B6_ZH_f full range iMIN_TLE493D_P2B6_XL_f -160.0mT iMAX_TLE493D_P2B6_XL_f 160.0mT iMIN_TLE493D_P2B6_YL_f -160.0mT iMAX_TLE493D_P2B6_YL_f 160.0mT iMIN_TLE493D_P2B6_ZL_f -160.0mT iMAX_TLE493D_P2B6_ZL_f 160.0mT short range iMIN_TLE493D_P2B6_XL_f -100.0mT iMAX_TLE493D_P2B6_XL_f 100.0mT iMIN_TLE493D_P2B6_YL_f -100.0mT iMAX_TLE493D_P2B6_YL_f 100.0mT iMIN_TLE493D_P2B6_ZL_f -100.0mT iMAX_TLE493D_P2B6_ZL_f 100.0mT | ||
参数 IN | float32 thres_xl | Wake-Up Lower X Threshold | full range 7.7LSB/mT (Typ.) short range 15.4LSB/mT (Typ.) |
float32 thres_yl | Wake-Up Lower Y Threshold | full range 7.7LSB/mT (Typ.) short range 15.4LSB/mT (Typ.) | |
float32 thres_zl | Wake-Up Lower Z Threshold | full range 7.7LSB/mT (Typ.) short range 15.4LSB/mT (Typ.) | |
float32 thres_xh | Wake-Up Upper X Threshold | full range 7.7LSB/mT (Typ.) short range 15.4LSB/mT (Typ.) | |
float32 thres_yh | Wake-Up Upper Y Threshold | full range 7.7LSB/mT (Typ.) short range 15.4LSB/mT (Typ.) | |
float32 thres_zh | Wake-Up Upper Z Threshold | full range 7.7LSB/mT (Typ.) short range 15.4LSB/mT (Typ.) |
etSTS oTLE493D_P2B6_WRITE_POWER_MODE( etTLE493D_P2B6_POWER power )
oTLE493D_P2B6_WRITE_POWER_MODE函数是用于设置 Power Mode 的API函数。
– Step1 Validate input and determine MODE bitsValidate input and determine MODE bits
– Step2 Read 0x11(MOD1), 0x13(MOD2) Register Value and Check Fuse Parity
– STep3 Write Register 0x11( MOD1 ) : Setting Power mode
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_PARAMETER | 如果不是以下值 eLOW_POWER_MODE, eFAST_MODE, eMASTER_CONTROL_MODE | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 IN | etTLE493D_P2B6_POWER power | Register MOD1 MODE的设定值 | 从以下数值中选择 eLOW_POWER_MODE, eFAST_MODE, eMASTER_CONTROL_MODE |
etSTS oTLE493D_P2B6_WRITE_RATE( etTLE493D_P2B6_RATE rate )
oTLE493D_P2B6_WRITE_RATE函数是用于设置感应周期的API函数。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_PARAMETER | 如果不是以下值 eRATE_700_HZ, eRATE_97_HZ, eRATE_24_HZ, eRATE_12_HZ, eRATE_6_HZ, eRATE_3_HZ, eRATE_0_4_HZ, eRATE_0_05_HZ | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 IN | etTLE493D_P2B6_RATE rate | Register MOD2 PRD的设定值 | 从以下数值中选择 eRATE_700_HZ, eRATE_97_HZ, eRATE_24_HZ, eRATE_12_HZ, eRATE_6_HZ, eRATE_3_HZ, eRATE_0_4_HZ, eRATE_0_05_HZ |
etSTS oTLE493D_P2B6_WRITE_INT( uint8 en_dis )
oTLE493D_P2B6_WRITE_INT函数是用于设置/INT功能启用/禁用的API函数。
– Step1 Read 0x11(MOD1), 0x13(MOD2) Register Value and Check Fuse Parity
– Step2 Write Register 0x11( MOD1 ) : Interrupt enable/disable
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 IN | uint8 en_dis | Register MOD1 INT的设定值 | 从以下数值中选择 iENABLE, iDISABLE |
etSTS oTLE493D_P2B6_WRITE_CA( uint8 ca )
oTLE493D_P2B6_WRITE_CA函数是用于设置 Collision avoidance 功能启用/禁用的API函数。
– Step1 Read 0x11(MOD1), 0x13(MOD2) Register Value and Check Fuse Parity
– Step2 Write Register 0x11( MOD1 ) : Setting Collision avoidance
注:时钟拉伸功能仅在主控模式和低功耗模式下支持。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 IN | uint8 ca | Register MOD1 CA的设定值 | 从以下数值中选择 iENABLE, iDISABLE |
etSTS oTLE493D_P2B6_WRITE_TEST_MODE( etTLE493D_P2B6_TEST mode )
oTLE493D_P2B6_WRITE_TEST_MODE函数是用于设置 Test Mode 功能的API函数。
– Step1 Input validation and determine Regsiter TMode TST bit
– Step2 Update Regsiter TMode TST bits
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_PARAMETER | 如果不是以下值 eTEST_MODE_NO, eTEST_MODE_VAHLL, eTEST_MODE_SPIN, eTEST_MODE_SAT | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 IN | etTLE493D_P2B6_TEST mode | Regsiter TMode TST的设定值 | 从以下数值中选择 eTEST_MODE_NO, eTEST_MODE_VAHLL, eTEST_MODE_SPIN, eTEST_MODE_SAT |
etSTS oTLE493D_P2B6_WRITE_TRIGGER( etTLE493D_P2B6_TRIGGER trig_type )
oTLE493D_P2B6_WRITE_TRIGGER函数是用于设置 Trigger 功能的API函数。
– Step1 Validate input and determine Register Config TRIG bits
– Step2 Update Register Config TRIG bits
– Step3 Write Register 0x10( Config ) : Setting Trigger
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_PARAMETER | 如果不是以下值 eTRIG_NO_TRIGGER, eTRIG_AFTER_WRITE, eTRIG_BEFORE_MSB, eTRIG_AFTER_05H | ||
参数 IN | etTLE493D_P2B6_TRIGGER trig_type | Register Config TRIG的设定值 | 从以下数值中选择 eTRIG_NO_TRIGGER, eTRIG_AFTER_WRITE, eTRIG_BEFORE_MSB, eTRIG_AFTER_05H |
etSTS oTLE493D_P2B6_READ_MAG_RAW( stTLE493D_P2B6_RAW_O* rlt )
oTLE493D_P2B6_READ_MAG_RAW函数是用于读取X轴、Y轴、Z轴磁场 RAW (原始数据)值的API函数。
注:使用此函数可在无需温度数据时加速磁性测量。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
参数 OUT | stTLE493D_P2B6_RAW_O* rlt | Register Bx, By and Bz读值 sint16 rlt.raw_bx [mT/LSB] sint16 rlt.raw_by [mT/LSB] sint16 rlt.raw_bz [mT/LSB] |
etSTS oTLE493D_P2B6_READ_MAG( stTLE493D_P2B6_O* rlt )
oTLE493D_P2B6_READ_MAG函数是用于读取X轴、Y轴、Z轴磁性数据的API函数。
注:使用此函数可在无需温度数据时加速磁性测量。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_MAX | full-range:如果超过 160.0 mT short-range:如果超过 100.0 mT | ||
eSTS_ERR_MIN | full-range:小于 -160.0 mT short-range:小于 -100.0mT | ||
参数 OUT | stTLE493D_P2B6_O* rlt | Register Bx、By 和 Bz 读值 float32 rlt.bx [mT] float32 rlt.by [mT] float32 rlt.bz [mT] |
etSTS oTLE493D_P2B6_READ_MAG_TEMP_RAW( stTLE493D_P2B6_RAW_O* rlt )
oTLE493D_P2B6_READ_MAG_TEMP_RAW函数是用于读取X轴、Y轴、Z轴磁场及温度 RAW(原始数据) 值的API函数。
注:要使用此功能,必须启用温度测量功能。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
参数 OUT | stTLE493D_P2B6_O* rlt | Register Bx, By, Bz and Temp读值 sint16 rlt.raw_bx [mT/LSB] sint16 rlt.raw_by [mT/LSB] sint16 rlt.raw_bz [mT/LSB] sint16 rlt.raw_temp [°C] |
etSTS oTLE493D_P2B6_READ_MAG_TEMP( stTLE493D_P2B6_O* rlt )
oTLE493D_P2B6_READ_MAG_TEMP函数是用于读取X轴、Y轴、Z轴磁数据及温度数据的API函数。
注:要使用此功能,必须启用温度测量功能。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_MAX | 在下列任一情况下 1. Bx > iMAX_TLE493D_P2B6_BX_f 2. By > iMAX_TLE493D_P2B6_BY_f 3. Bz > iMAX_TLE493D_P2B6_BZ_f 4. temp > 125.0 °C full range iMAX_TLE493D_P2B6_BX_f 160.0mT iMAX_TLE493D_P2B6_BY_f 160.0mT iMAX_TLE493D_P2B6_BZ_f 160.0mT short range iMAX_TLE493D_P2B6_BX_f 100.0mT iMAX_TLE493D_P2B6_BY_f 100.0mT iMAX_TLE493D_P2B6_BZ_f 100.0mT | ||
eSTS_ERR_MIN | 在下列任一情况下 1. Bx < iMIN_TLE493D_P2B6_BX_f 2. By < iMIN_TLE493D_P2B6_BY_f 3. Bz < iMIN_TLE493D_P2B6_BZ_f 4. temp < -40.0 °C full range iMIN_TLE493D_P2B6_BX_f -160.0mT iMIN_TLE493D_P2B6_BY_f -160.0mT iMIN_TLE493D_P2B6_BZ_f -160.0mT short range iMIN_TLE493D_P2B6_BX_f -100.0mT iMIN_TLE493D_P2B6_BY_f -100.0mT iMIN_TLE493D_P2B6_BZ_f -100.0mT | ||
参数 OUT | stTLE493D_P2B6_O* rlt | Register Bx、By 和 Bz 的磁性数据 Register Temp 温度值 float32 rlt.bx [mT] float32 rlt.by [mT] float32 rlt.bz [mT] float32 rlt.temp [°C] |
etSTS oTLE493D_P2B6_READ_DIAG( uint8* diag )
oTLE493D_P2B6_READ_DIAG函数是用于读取Register Diag诊断信息的API函数。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 IN | uint8 ca | Register Diag读值 |
etSTS oTLE493D_P2B6_READ_REG( uint8* reg )
oTLE493D_P2B6_READ_REG函数是读取所有 Register 值的API函数。
返回值 | etSTS | OSS-ECAL状态码 | |
eSTS_FIN | 正常終止 | ||
eSTS_ERR_I2C_OBJECT | I2C对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C错误 | ||
eSTS_ERR_DIAG | Fuse Parity Error | ||
参数 OUT | uint8* reg | reg[0] = Register Bx reg[1] = Register By reg[2] = Register Bz reg[3] = Register Temp reg[4] = Register Bx2 reg[5] = Register Temp2 reg[6] = Register Diag reg[7] = Register XL reg[8] = Register XH reg[9] = Register YL reg[10] = Register YH reg[11] = Register ZL reg[12] = Register ZH reg[13] = Register WU reg[14] = Register TMode reg[15] = Register TPhase reg[16] = Register Config reg[17] = Register MOD1 reg[18] = Register Reserved reg[19] = Register MOD2 reg[20] = Register Reserved reg[21] = Register Reserved reg[22] = Register Ver |
Sample Application
OSS-ECAL在sample文件夹中包含了示例应用程序。本文将对该应用程序进行概述说明。请将其作为参考资料,用于将OSS-ECAL集成到贵公司的产品程序中。

State | vgTLE493D_P2B6_COMMAND | 状态转换条件 | 加工概述 | API 功能 |
---|---|---|---|---|
Initialize | iTLE493D_P2B6_INITIALIZE | 初回 | TLE493D-P2B6 Initialize State | oTLE493D_P2B6_RESET oTLE493D_P2B6_WRITE_TRIGGER |
Measure | iTLE493D_P2B6_MEASURE | 1. Initialize完成 2. vgTLE493D_P2B6_COMMAND= iTLE493D_P2B6_MEASURE | 3D Hall效应磁测量 | oTLE493D_P2B6_READ_DIAG oTLE493D_P2B6_READ_MAG_TEMP |
Self-test | iTLE493D_P2B6_SELF_TEST | vgTLE493D_P2B6_COMMAND= iTLE493D_P2B6_SELF_TEST | 自检 | oTLE493D_P2B6_WRITE_TEST_MODE oTLE493D_P2B6_WRITE_TRIGGER oTLE493D_P2B6_READ_MAG_TEMP_RAW |
Error | iTLE493D_P2B6_ERROR | vgTLE493D_P2B6_COMMAND= iTLE493D_P2B6_ERROR | Error过程 | -* |
Low Power | iTLE493D_P2B6_LOW_POWER | vgTLE493D_P2B6_COMMAND= iTLE493D_P2B6_LOW_POWER | Low Power | oTLE493D_P2B6_WRITE_POWER_MODE |
* 产品计划提供支持。
HAL 支持列表
OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。
Manufacturer | SDK/IDE Tool | HAL Name | Ver | HALNAME | Support |
---|---|---|---|---|---|
Arduino | Arduino IDE | Arduino | 1.8.6 | ARDUINO | X |
Debian | – | GNU/Linux | 10.3 | Linux | X |
Espressif | ESP-IDF | HAL | v5.5 | ESP32 | X |
Infineon | ModusToolbox | mtb-hal-cat1 | 2.4.3 | ModusToolbox | X |
NXP | MCUXpresso SDK | SDK_2.x_EVKB-IMXRT1050 | 2.16 | iMXRT1051B1052B | X |
Renesas | Synergy Software Package | HAL | 2.6.0 | SSP | X |
STMicroelectronics | STM32Cube | STM32CubeF4 | V1.28.1 | STM32F4 | X |
开发环境
OSS-ECAL 开发过程中的 MCU 和开发环境如下。
HALNAME | Manufacturer | Board | MCU | IDE |
---|---|---|---|---|
ARDUINO | Arduino | 1.Mega 2560 Rev3 2.Arduino Pro Mini 3.3V | ATmega2560 ATmega328P | Arduino IDE 2.3.3 |
ESP32 | Espressif | ESP32-C3-DevKitC-02 | ESP32-C3-WROOM-02U | Espressif-IDE |
Linux | BeagleBoard | BeagleBone Black | TI AM335x | – |
ModusToolbox | Infineon | CY8CPROTO-063-BLE PSoC 6 BLE Prototyping Kit | CYBLE-416045-02 | ModusToolbox |
iMXRT1051B1052B | NXP | IMXRT1050-EVKB | i.MX RT1050 | MCUXpresso IDE |
SSP | Renesas | S7G2 SK | R7FS7G27H3A01CFC | e² studio for Renesas Synergy |
STM32F4 | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | STM32CubeIDE |
文件结构
Folder* | File | summary |
---|---|---|
TLE9201SG_HALNAME_VERSION/sample | sample.c | Sample Application Program |
| sample.h | Sample Application Header |
TLE9201SG_HALNAME_VERSION | oTLE9201SG.c | OSS-ECAL Program for TLE9201SG |
| oTLE9201SG.h | OSS-ECAL Header for TLE9201SG |
| oss_ecal.h | OSS-ECAL Common Header |
| user_setting.c | Const and Table of User setting |
| user_setting.h | Header of User setting |
| readme.md | Readme |
| OSS-ECAL Terms of Use.txt | OSS-ECAL Terms of Use |
* 有关 HALNAME,请参阅 HAL 支持。
OSS-ECAL 下载
请从 OSS-ECAL 英文网站下载 OSS-ECAL。下载时,请先登录 OSS-ECAL 英文网站,然后再进行操作。
内置方法
如何在用户程序中整合多个 OSS-ECAL(相同的 MCU 功能)
如何在用户程序中整合多个 OSS-ECAL(不同 MCU 功能)
注意
OSS-ECAL 示例版本不适用于线程(任务)或不同优先级的中断。 请不要像下面的示例那样使用它。
例如 如果每个传感器被分配到相同的 ADC 组,而 OSS-ECAL API 在具有不同优先级的进程中执行,则可能无法获得正确的值。
ADC Gr0 Ch0 Temperature sensor AD22100A 每隔 100 毫秒采集一次温度(低优先级)
ADC Gr0 Ch1 Pressure sensor MPX5999D 事件中断时采集压力(高优先级)