TLE493D-P2B6

以下將介紹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 NameDescriptionSet 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_INII²C 1byte 或 2byte 讀取通訊協定,請從下列值中選擇。
i1BYTE: 1byte
i2BYTE: 2byte
i1BYTE
WAKEUP_FEATURE從下列值中選擇 Register WU bit6 WU。
iENABLE: Enable
iDISABLE: Disable
iDISABLE
WAKEUP_XL_INIRegister XL的設定值。
X-Direction : Wake Up lower threshold [mT]
0.0F
WAKEUP_XH_INIRegister XH的設定值。
X-Direction : Wake Up lower threshold [mT]
0.0F
WAKEUP_YL_INIRegister YL的設定值。
X-Direction : Wake Up lower threshold [mT]
0.0F
WAKEUP_YH_INIRegister YH的設定值。
Y-Direction : Wake Up upper threshold [mT]
0.0F
WAKEUP_ZL_INIRegister ZL的設定值。
Z-Direction : Wake Up lower threshold [mT]
0.0F
WAKEUP_ZH_INIRegister 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_INIRegister 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL 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 功能關閉。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_DIAG在下列任一情况下
1. Register Diag CF = 0
2. Register Diag T = 1
参数 INuint8 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL 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
参数 INfloat32 thres_xlWake-Up Lower X Thresholdfull range 7.7LSB/mT (Typ.)
short range 15.4LSB/mT (Typ.)
float32 thres_ylWake-Up Lower Y Thresholdfull range 7.7LSB/mT (Typ.)
short range 15.4LSB/mT (Typ.)
float32 thres_zlWake-Up Lower Z Thresholdfull range 7.7LSB/mT (Typ.)
short range 15.4LSB/mT (Typ.)
float32 thres_xhWake-Up Upper X Thresholdfull range 7.7LSB/mT (Typ.)
short range 15.4LSB/mT (Typ.)
float32 thres_yhWake-Up Upper Y Thresholdfull range 7.7LSB/mT (Typ.)
short range 15.4LSB/mT (Typ.)
float32 thres_zhWake-Up Upper Z Thresholdfull 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_PARAMETER如果不是以下值
eLOW_POWER_MODE,
eFAST_MODE,
eMASTER_CONTROL_MODE
eSTS_ERR_DIAGFuse Parity Error
参数 INetTLE493D_P2B6_POWER powerRegister MOD1 MODE的设定值从以下数值中选择
eLOW_POWER_MODE,
eFAST_MODE,
eMASTER_CONTROL_MODE
etSTS oTLE493D_P2B6_WRITE_RATE( etTLE493D_P2B6_RATE rate )

oTLE493D_P2B6_WRITE_RATE函数是用于设置感应周期的API函数。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL 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_DIAGFuse Parity Error
参数 INetTLE493D_P2B6_RATE rateRegister 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_DIAGFuse Parity Error
参数 INuint8 en_disRegister 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

注:时钟拉伸功能仅在主控模式和低功耗模式下支持。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_DIAGFuse Parity Error
参数 INuint8 caRegister 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_PARAMETER如果不是以下值
eTEST_MODE_NO,
eTEST_MODE_VAHLL,
eTEST_MODE_SPIN,
eTEST_MODE_SAT
eSTS_ERR_DIAGFuse Parity Error
参数 INetTLE493D_P2B6_TEST modeRegsiter 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

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_PARAMETER如果不是以下值
eTRIG_NO_TRIGGER,
eTRIG_AFTER_WRITE,
eTRIG_BEFORE_MSB,
eTRIG_AFTER_05H
参数 INetTLE493D_P2B6_TRIGGER trig_typeRegister 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函数。

注:使用此函数可在无需温度数据时加速磁性测量。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
参数 OUTstTLE493D_P2B6_RAW_O* rltRegister 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函数。

注:使用此函数可在无需温度数据时加速磁性测量。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_MAXfull-range:如果超过 160.0 mT
short-range:如果超过 100.0 mT
eSTS_ERR_MINfull-range:小于 -160.0 mT
short-range:小于 -100.0mT
参数 OUTstTLE493D_P2B6_O* rltRegister 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函数。

注:要使用此功能,必须启用温度测量功能。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
参数 OUTstTLE493D_P2B6_O* rltRegister 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函数。

注:要使用此功能,必须启用温度测量功能。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL 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
参数 OUTstTLE493D_P2B6_O* rltRegister 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函数。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_DIAGFuse Parity Error
参数 INuint8 caRegister Diag读值
etSTS oTLE493D_P2B6_READ_REG( uint8* reg )

oTLE493D_P2B6_READ_REG函数是读取所有 Register 值的API函数。

返回值etSTSOSS-ECAL状态码
eSTS_FIN正常終止
eSTS_ERR_I2C_OBJECTI2C对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C错误
eSTS_ERR_DIAGFuse Parity Error
参数 OUTuint8* regreg[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集成到贵公司的产品程序中。

StatevgTLE493D_P2B6_COMMAND状态转换条件加工概述API 功能
InitializeiTLE493D_P2B6_INITIALIZE初回TLE493D-P2B6 Initialize StateoTLE493D_P2B6_RESET
oTLE493D_P2B6_WRITE_TRIGGER
MeasureiTLE493D_P2B6_MEASURE1. Initialize完成
2. vgTLE493D_P2B6_COMMAND=
 iTLE493D_P2B6_MEASURE
3D Hall效应磁测量oTLE493D_P2B6_READ_DIAG
oTLE493D_P2B6_READ_MAG_TEMP
Self-testiTLE493D_P2B6_SELF_TESTvgTLE493D_P2B6_COMMAND=
iTLE493D_P2B6_SELF_TEST
自检oTLE493D_P2B6_WRITE_TEST_MODE
oTLE493D_P2B6_WRITE_TRIGGER
oTLE493D_P2B6_READ_MAG_TEMP_RAW
ErroriTLE493D_P2B6_ERRORvgTLE493D_P2B6_COMMAND=
iTLE493D_P2B6_ERROR
Error过程-*
Low PoweriTLE493D_P2B6_LOW_POWERvgTLE493D_P2B6_COMMAND=
iTLE493D_P2B6_LOW_POWER
Low PoweroTLE493D_P2B6_WRITE_POWER_MODE

* 产品计划提供支持。

HAL 支持列表

OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。

ManufacturerSDK/IDE ToolHAL NameVerHALNAMESupport
ArduinoArduino IDEArduino1.8.6ARDUINOX
DebianGNU/Linux10.3LinuxX
EspressifESP-IDFHALv5.5ESP32X
InfineonModusToolboxmtb-hal-cat12.4.3ModusToolboxX
NXPMCUXpresso SDKSDK_2.x_EVKB-IMXRT10502.16iMXRT1051B1052BX
RenesasSynergy Software PackageHAL2.6.0SSPX
STMicroelectronicsSTM32CubeSTM32CubeF4V1.28.1STM32F4X
开发环境

OSS-ECAL 开发过程中的 MCU 和开发环境如下。

HALNAMEManufacturerBoardMCUIDE
ARDUINOArduino1.Mega 2560 Rev3
2.Arduino Pro Mini 3.3V
ATmega2560
ATmega328P
Arduino IDE 2.3.3
ESP32EspressifESP32-C3-DevKitC-02ESP32-C3-WROOM-02UEspressif-IDE
LinuxBeagleBoardBeagleBone BlackTI AM335x
ModusToolboxInfineonCY8CPROTO-063-BLE PSoC 6 BLE Prototyping KitCYBLE-416045-02ModusToolbox
iMXRT1051B1052BNXPIMXRT1050-EVKBi.MX RT1050MCUXpresso IDE
SSPRenesasS7G2 SKR7FS7G27H3A01CFCe² studio for Renesas Synergy
STM32F4STMicroelectronicsSTM32 Nucleo-64 boardsSTM32F401RETxSTM32CubeIDE

文件结构

Folder*Filesummary
TLE9201SG_HALNAME_VERSION/samplesample.cSample Application Program
sample.hSample Application Header
TLE9201SG_HALNAME_VERSIONoTLE9201SG.cOSS-ECAL Program for TLE9201SG
oTLE9201SG.hOSS-ECAL Header for TLE9201SG
oss_ecal.hOSS-ECAL Common Header
user_setting.cConst and Table of User setting
user_setting.hHeader of User setting
readme.mdReadme
OSS-ECAL Terms of Use.txtOSS-ECAL Terms of Use

* 有关 HALNAME,请参阅 HAL 支持。

OSS-ECAL 下载

请从 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 事件中断时采集压力(高优先级)

OSS-ECAL Chinese
error: 内容受保护 !