TLE9201SG的概述以及TLE9201SG用OSS-ECAL的提供情况。TLE9201SG是英飞凌(Infineon)生产的BDC电机用MOTIX™全桥IC。
MCU interface : SPI、GPIO
注意: 本资源的原始语言为英语。 翻译仅为方便起见提供概要,可能使用了机器翻译,我们对翻译的准确性和合理性不作任何保证。 此外,在进行实际设计等操作前,请务必参考最新版本的Datasheet。
TLE9201SG
概述
TLE9201SG 是一款通用型 6 A H 桥,专为(但不限于)汽车应用中的直流电机或其他感性负载控制而设计。输出可进行脉宽调制,频率最高可达 20 kHz。PWM/DIR 控制可减少微控制器侧所需的 PWM 功能引脚数量。
当负载电流超过电流限制阈值(典型值 8A)时,H 桥将进入斩波电流限制模式。该器件具备短路保护和过温保护功能,并通过 SPI 接口提供全面的诊断信息,或通过错误标志提供基本错误反馈。当桥式电路禁用或在对感性负载进行 PWM 控制时,可检测到开路负载。
坚固的PG-DSO-12-17封装由于厚铜散热片提供了卓越的热性能。
由于散热片的凸起边缘,该封装非常适合自动光学焊锡检测。
特点
- Tj=25 °C 时,每个开关典型值的 RDSon 为 100 mΩ
- 逻辑输入 3.3 V 和 5.0 V TTL/CMOS 兼容
- 待机电流低
- 斩波器电流限制
- 带锁存行为的短路关断
- 过温关机,具有锁定行为
- VS 欠压关断
- 开启和关闭状态下的开路负载检测
- 详细的 SPI 诊断或简单的错误标记
- 绿色产品(符合 RoHS 标准)
- AEC 资格
OSS-ECAL规格
API 函数
OSS-ECAL API 函数基本上被假定为周期性Thread (TASK) 的函数调用。
etSTS oTLE9201SG_SPI_CONFIG( void )
oTLE9201SG_SPI_CONFIG 函数是一个用于配置 SPI 的 API 函数。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI 错误 |
etSTS oTLE9201SG_INIT( void )
oTLE9201SG_INIT 函数是一个 API 函数,通过以下步骤初始化 TLE9201SG。
TLE9201SG_PIN_VSO | control mode* | 处理 |
---|---|---|
VSO pin 有效 iUSE | PWM | Step1: VSO pin = Hi Step2: iTLE9201SG_OUTPUT_WUP_DELAY_MS等待 Step3: DIS pin = Low Step4: iTLE9201SG_OUTPUT_DIS_DELAY_US等待 Step5: DIR pin = Low Step6: PWM 0% Step7: PWM control mode设置(Register CTRL_REG OLDIS=1, SIN=0, SEN=0, SDIR=0, SPWM=0) Step8: iTLE9201SG_OUTPUT_ENA_DELAY_US等待 |
SPI | Step1: VSO pin = Hi Step2: iTLE9201SG_OUTPUT_WUP_DELAY_MS等待 Step3: SPI control mode设置(Register CTRL_REG OLDIS=1, SIN=1, SEN=1, SDIR=0, SPWM=0 ) Step4: iTLE9201SG_OUTPUT_ENA_DELAY_US等待 | |
VSO pin 无效 iDONT_USE | PWM | Step1: DIS pin = Low Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US等待 Step3: DIR pin = Low Step4: PWM 0% Step5: PWM control mode设置(Register CTRL_REG OLDIS=1, SIN=0, SEN=0, SDIR=0, SPWM=0) Step6: iTLE9201SG_OUTPUT_ENA_DELAY_US等待 |
SPI | Step1: SPI control mode设置(Register CTRL_REG OLDIS=1, SIN=1, SEN=1, SDIR=0, SPWM=0 ) Step2: iTLE9201SG_OUTPUT_ENA_DELAY_US等待 |
*: TLE9201SG_START_MODE 的值(PWM:iTLE9201SG_PWM_MODE,SPI:iTLE9201SG_SPI_MODE)
TLE9201SG_START_MODE是Wake-up后控control mode的设置值。
备注:
iTLE9201SG_OUTPUT_WUP_DELAY_MS[ms]的经过时间测量是根据调用此函数的线程周期进行计算的,因此请将线程周期设置为THREAD_OSS_ECAL_PERIOD [ms]。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_EXE | 处理中 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_PWM_OBJECT | PWM对象选择错误 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
eSTS_ERR_HAL_PWM | HAL PWM错误 |
etSTS oTLE9201SG_PWM_SPI_MODE_SELECT( uint8 mode )
oTLE9201SG_PWM_SPI_MODE_SELECT 函数是一个基于 mode 值设置 PWM 控制模式或 SPI 控制模式的 API 函数。
mode | 处理 |
---|---|
iTLE9201SG_PWM_MODE (PWM control mode) | Step1: DIS pin = Low Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US等待 Step3: DIR pin = Low Step4: PWM 0% Step5: PWM control mode设置(Register CTRL_REG OLDIS=1, SIN=0, SEN=0, SDIR=0, SPWM=0) |
iTLE9201SG_SPI_MODE (SPI control mode) | Step1: SPI control mode设置(Register CTRL_REG OLDIS=1, SIN=1, SEN=1, SDIR=0, SPWM=0 ) |
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_EXE | 处理中 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_PWM_OBJECT | PWM对象选择错误 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_PWM | HAL PWM错误 | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 IN | uint8 mode | 选择 PWM control mode 或 SPI control mode | PWM control mode: iTLE9201SG_PWM_MODE SPI control mode: iTLE9201SG_SPI_MODE |
etSTS oTLE9201SG_DIR_PWM_SET( float32 dir_duty )
oTLE9201SG_DIR_PWM_SET 函数是一个根据 dir_duty 值执行 DIR 和 PWM 输出的 API 函数。
mode | dir_duty | DIR | Duty |
---|---|---|---|
PWM control mode | dir_duty < 0.0f | Reverse: DIR pin = Low | PWM = -dir_duty |
dir_duty >= 0.0f | Forward: DIR pin = Hi | PWM = dir_duty | |
SPI control mode* | dir_duty < 0.0f | Reverse: Register CTRL_REG SDIR = 0 | Register CTRL_REG SPWM = 1 |
dir_duty > 0.0f | Forward: Register CTRL_REG SDIR = 1 | Register CTRL_REG SPWM = 1 | |
dir_duty = 0.0f | Reverse: Register CTRL_REG SDIR = 0 | Register CTRL_REG SPWM = 0 |
*:在 SPI control mode下,将OLDIS设置为1。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 – PWM 输出设定点 -100% 至 100% 超出范围 | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_PWM_OBJECT | PWM对象选择错误 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_PWM | HAL PWM错误 | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 IN | float32 dir_duty | DIR 和 PWM 设置点 [%] |
etSTS oTLE9201SG_OL_OFF_STATE( uint8* dia )
oTLE9201SG_OL_OFF_STATE 函数是一个 API 函数,用于按照以下步骤对 TLE9201SG 执行 Open Load Detection in OFF state 操作,读取 Register DIA_REG 的值并将其保存到 dia 中。
请使用 PWM control mode。
Step1: DIS pin = Hi
Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US等待
Step3: Open Load OFF State设置 (Register CTRL_REG OLDIS = 0)
Step4: Register DIA_REG清除
Step5: iTLE9201SG_OUTPUT_OL_OFF_DELAY_US等待
Step6: Register DIA_REG阅读
Step7: Open Load OFF State解除 (Register CTRL_REG OLDIS = 1)
Step8: DIS pin = Low
Step9: iTLE9201SG_OUTPUT_DIS_DELAY_US等待
Step10: 将Step6的读取值保存到dia中
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 OUT | uint8* dia | Register DIA_REG 读出值 |
etSTS oTLE9201SG_OL_ON_STATE( uint8* dia )
oTLE9201SG_OL_ON_STATE 函数是一个 API 函数,用于按照以下步骤对 TLE9201SG 执行 Open Load Detection in ON state 操作,读取 Register DIA_REG 的值并将其保存到 dia 中。
请使用 PWM control mode。
Step1: DIR pin = Hi
Step2: PWM = TLE9201SG_OL_ON_DUTY_TEST
Step3: iTLE9201SG_HS_RISE_TIME_US + (1000000U / TLE9201SG_PWM_FREQ) * 5U)等待
Step4: Register DIA_REG阅读
Step5: 将Step4的读取值保存到dia中
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 – PWM 输出设定点 -100% 至 100% 超出范围 – SPI control mode | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_PWM_OBJECT | PWM对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
eSTS_ERR_HAL_PWM | HAL PWM错误 | ||
参数 OUT | uint8* dia | Register DIA_REG 读出值 |
etSTS oTLE9201SG_DISABLE( void )
oTLE9201SG_DISABLE 函数是一个 API 函数,用于按照以下步骤将 TLE9201SG 设置为禁用状态。
此函数在Sleep mode下请勿使用。请在PWM control mode下进行操作。
Step1: MOSFET on ( DIS pin = Hi )
Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US等待
Step3: Reverse ( DIR pin = Low )
Step4: PWM 0%
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 – SPI control mode | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_PWM_OBJECT | PWM对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_PWM | HAL PWM错误 |
etSTS oTLE9201SG_SLEEP( void )
oTLE9201SG_SLEEP 函数是一个 API 函数,用于按照以下步骤将 TLE9201SG 设置为睡眠模式(VSO 引脚为低电平)。此 API 函数仅在 VSO 功能启用(iTLE9201SG_PIN_VSO = iUSE)时使用。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | GPIO pin 选择错误 | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 |
etSTS oTLE9201SG_WAKEUP( void )
oTLE9201SG_WAKEUP函数是用于将TLE9201SG从初始模式或睡眠模式唤醒的API函数,其操作步骤如下:
TLE9201SG_PIN_VSO | TLE9201SG_START_MODE | 处理 |
---|---|---|
VSO pin 有効 iUSE | PWM control mode (iTLE9201SG_PWM_MODE) | Step1: 电源on ( VSO = Hi ) Step2: iTLE9201SG_OUTPUT_WUP_DELAY_MS等待 Step3: DIS pin = Low Step4: iTLE9201SG_OUTPUT_DIS_DELAY_US等待 Step5: DIR pin = Low Step6: PWM 0% Step7: PWM control mode设置(Register CTRL_REG OLDIS=1, SIN=0, SEN=0, SDIR=0, SPWM=0) |
SPI control mode (iTLE9201SG_SPI_MODE) | Step1: 电源on ( VSO = Hi ) Step2: iTLE9201SG_OUTPUT_WUP_DELAY_MS等待 Step3: SPI control mode设置(Register CTRL_REG OLDIS=1, SIN=1, SEN=1, SDIR=0, SPWM=0 ) | |
VSO pin 無効 iDONT_USE | PWM control mode (iTLE9201SG_PWM_MODE) | Step1: DIS pin = Low Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US等待 Step3: DIR pin = Low Step4: PWM 0% Step5: PWM control mode设置(Register CTRL_REG OLDIS=1, SIN=0, SEN=0, SDIR=0, SPWM=0) |
SPI control mode (iTLE9201SG_SPI_MODE) | Step1: SPI control mode设置(Register CTRL_REG OLDIS=1, SIN=1, SEN=1, SDIR=0, SPWM=0 ) |
备注:
iTLE9201SG_OUTPUT_WUP_DELAY_MS[ms]的经过时间测量是根据调用此函数的线程周期进行计算的,因此请将线程周期设置为THREAD_OSS_ECAL_PERIOD [ms]。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_EXE | 处理中 | ||
eSTS_ERR_PARAMETER | 在下列任一情况下 – GPIO pin 选择错误 – PWM pin 选择错误 | ||
eSTS_ERR_GPIO_OBJECT | GPIO对象选择错误 | ||
eSTS_ERR_PWM_OBJECT | PWM对象选择错误 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL。 | ||
eSTS_ERR_HAL_PWM | HAL PWM错误 | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 |
etSTS oTLE9201SG_RD_DIA( uint8* rlt )
oTLE9201SG_RD_DIA 函数是一个 API 函数,用于读取寄存器 DIA_REG 的值并将其保存到 rlt 中。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 OUT | uint8* rlt | Register DIA_REG 读出值 |
etSTS oTLE9201SG_RES_DIA( void )
oTLE9201SG_RES_DIA 函数是一个用于清除寄存器 DIA_REG 值的 API 函数。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 |
etSTS oTLE9201SG_RD_REV( uint8* rlt )
oTLE9201SG_RD_REV 函数是一个 API 函数,用于读取寄存器 REV_REG 的值并将其保存到 rlt 中。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 OUT | uint8* rlt | Register REV_REG 读出值 |
etSTS oTLE9201SG_RD_CTRL( uint8* rlt )
oTLE9201SG_RD_REV 函数是一个 API 函数,用于读取寄存器 CTRL_REG 的值并将其保存到 rlt 中。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 OUT | uint8* rlt | Register CTRL_REG 读出值 |
etSTS oTLE9201SG_WR_CTRL( uint8 val )
oTLE9201SG_WR_CTRL函数是一个API函数,用于将val与0x1f的值写入Register CTRL_REG寄存器。
val的设置请从下表中选择并组合CTRL_REG的位。
Bit名 | Bit | 处理 |
---|---|---|
iTLE9201SG_OLDIS | b4 | Open Load Disconnect |
iTLE9201SG_SIN | b3 | Control output PWM/DIR or SPI |
iTLE9201SG_SEN | b2 | Enable/Disable SPI control |
iTLE9201SG_SDIR | b1 | DIR SPI control |
iTLE9201SG_SPWM | b0 | PWM SPI control |
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 IN | uint8 val | 将写入值写入Register CTRL_REG |
etSTS oTLE9201SG_WR_CTRL_RD_DIA( uint8 val, uint8* rlt )
oTLE9201SG_WR_CTRL_RD_DIA 函数是一个 API 函数,它将 val & 0x1f 的值写入 CTRL_REG 寄存器,然后读取 CTRL_REG 寄存器并将其保存到 rlt 中。
val的设置请从下表中选择并组合CTRL_REG的位。
Bit名 | Bit | 处理 |
---|---|---|
iTLE9201SG_OLDIS | b4 | Open Load Disconnect |
iTLE9201SG_SIN | b3 | Control output PWM/DIR or SPI |
iTLE9201SG_SEN | b2 | Enable/Disable SPI control |
iTLE9201SG_SDIR | b1 | DIR SPI control |
iTLE9201SG_SPWM | b0 | PWM SPI control |
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_SPI_OBJECT | SPI对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行HAL | ||
eSTS_ERR_HAL_SPI | HAL SPI错误 | ||
参数 IN | uint8 val | 将写入值写入Register CTRL_REG | |
uint8* rlt | Register CTRL_REG 读出值 |
提供时的设置
通用设置值
提供时的默认设置值如下表所示的user_setting.h文件中的值。请根据具体产品进行相应修改。
标签名称 | 概述 | 设定点 |
---|---|---|
THREAD_OSS_ECAL_PERIOD | Thread/Task 周期[ms] | 10U |
iTLE9201SG_PIN_VSO | VSO输出信号的存在 iUSE: 有 iDONT_USE: 無 | iDONT_USE |
TLE9201SG_START_MODE | Control mode的默认设置值 iTLE9201SG_PWM_MODE: PWM control mode iTLE9201SG_SPI_MODE: SPI control mode | iTLE9201SG_PWM_MODE |
TLE9201SG_PIN_VSO_SIG | 指定VSO输出信号的非反转或反转 iNORMAL: 非反转 iREVERSE: 反转 | iNORMAL |
TLE9201SG_PIN_DIS_SIG | 指定DIS输出信号的非反转或反转 iNORMAL: 非反转 iREVERSE: 反转 | iNORMAL |
TLE9201SG_PIN_DIR_SIG | 指定DIR输出信号的非反转或反转 iNORMAL: 非反转 iREVERSE: 反转 | iNORMAL |
TLE9201SG_OL_ON_DUTY_TEST | Open Load Detection in ON state时的PWM Duty值[%] | 40.0F |
CMP_PWM_NUM | 在OSS-ECAL中使用的PWM对象数量 | 1U |
PWM_PIN_NUM | OSS-ECALで使用するPWM引脚数 | 1U |
TLE9201SG_PWM_FREQ | PWMの周期[Hz] | 20000U |
CMP_GPIO_NUM | 在OSS-ECAL中使用的GPIO对象数量 | 1U |
GPIO_PIN_NUM | OSS-ECALで使用するGPIO引脚数 | 3U |
CMP_SPI_NUM | 在OSS-ECAL中使用的SPI对象数量 | 1U |
HZ_TLE9201SG | SPI 通信波特率[bps] | 1000000U |
SPI_RETRY | SPI 通信出错时的重试次数 | 3U |
ESP32 HAL配置参数
ESP32 HAL的设置值在提供时为下表中user_setting.h中的值。请根据各产品进行相应修改。
标签名称 | 概述 | 设定点 |
---|---|---|
PWM_TLE9201SG_TIMER | PWM 定时器对象 | LEDC_TIMER_0 |
PIN_TLE9201SG_PWM | PWM pin | GPIO_NUM_8 |
TLE9201SG_PWM_CHANNEL | PWM 定时器对象的通道 | LEDC_CHANNEL_0 |
PWM_TLE9201SG_MODE | LEDC speed mode | LEDC_LOW_SPEED_MODE |
TLE9201SG_PWM_RESOLUTION_BITS | PWM resolution (10-bit = 0~1023 duty) | LEDC_TIMER_10_BIT |
PIN_TLE9201SG_DIS | DIS pin | GPIO_NUM_1 |
PIN_TLE9201SG_DIR | DIR pin | GPIO_NUM_2 |
PIN_TLE9201SG_VSO | VSO pin iTLE9201SG_PIN_VSO=iUSE | GPIO_NUM_3 |
PIN_MOSI | MOSI pin | GPIO_NUM_6 |
PIN_MISO | MISO pin | GPIO_NUM_5 |
PIN_SCLK | SCLK pin | GPIO_NUM_4 |
PIN_TLE9201SG_CS | CS pin | GPIO_NUM_7 |
SPI_TLE9201SG_CFG | SPI_TLE9201SG_CFG 是 spi_bus_add_device 函数的参数 const spi_device_interface_config_t *dev_config 的全局变量。 该变量的定义应与spi_bus_add_device函数的定义保持一致。 esp_err_t spi_bus_add_device(spi_host_device_t host, const spi_device_interface_config_t *dev_config, spi_device_handle_t *handle) | vgTLE9201SG_CONFIG |
SPI_TLE9201SG | SPI_TLE9201SG 是 spi_bus_add_device 函数的参数 spi_device_handle_t *handle 的全局变量。 该变量的定义应与spi_bus_add_device函数的定义保持一致。 esp_err_t spi_bus_add_device(spi_host_device_t host, const spi_device_interface_config_t *dev_config, spi_device_handle_t *handle) | vgTLE9201SG_HANDLE |
ModusToolbox mtb-hal-cat1 配置参数
ModusToolbox mtb-hal-cat1 的设置值在提供时为下表中user_setting.h中的值。请根据相应产品进行更改。
标签名称 | 概述 | 设定点 |
---|---|---|
PWM_TLE9201SG | SPI_TLE9201SG 是 cyhal_pwm_init 函数的参数 cyhal_pwm_t obj 的全局变量。 该变量的定义应与cyhal_pwm_init函数的定义保持一致。 #define cyhal_pwm_init( obj, pin, clk ) | vgPWM_OBJ |
PIN_TLE9201SG_PWM | PWM pin | P7_1 |
PIN_TLE9201SG_DIS | DIS pin | P5_4 |
PIN_TLE9201SG_DIR | DIR pin | P5_5 |
PIN_TLE9201SG_VSO | VSO pin iTLE9201SG_PIN_VSO=iUSE | P5_6 |
PIN_MOSI | MOSI pin | P9_0 |
PIN_MISO | MISO pin | P9_1 |
PIN_SCLK | SCLK pin | P9_2 |
SPI_TLE9201SG | SPI_TLE9201SG 是 cyhal_spi_init 函数的参数 cyhal_spi_t* obj 的全局变量。 该变量的定义应与cyhal_spi_init函数的定义保持一致。 cy_rslt_t cyhal_spi_init(cyhal_spi_t* obj, cyhal_gpio_t mosi, cyhal_gpio_t miso, cyhal_gpio_t sclk, cyhal_gpio_t ssel, const cyhal_clock_t * clk, uint8_t bits, cyhal_spi_mode_t mode, bool is_slave) | vgSPI_OBJ |
PIN_TLE9201SG_CS | CS pin | P9_3 |
STM32CubeF4 配置参数
STM32CubeF4 的设置值在提供时为下表中user_setting.h中的值。请根据相应产品进行更改。
标签名称 | 概述 | 设定点 |
---|---|---|
TIME_DELAY | 用于测量经过时间的计时器对象 | htim2 |
PWM_TLE9201SG | PWM 定时器对象 | htim4 |
TLE9201SG_PWM_CHANNEL | PWM 定时器对象的通道 | TIM_CHANNEL_1 |
TLE9201SG_PWM_TIMER_PERIOD | PWM周期 | 3199U (20kHz=50µs) LSB = 0.015625 µs |
GPIO_TLE9201SG_DIS | DIS GPIO对象 | GPIOA |
PIN_TLE9201SG_DIS | DIS pin | GPIO_PIN_9 |
GPIO_TLE9201SG_DIR | DIR GPIO对象 | GPIOA |
PIN_TLE9201SG_DIR | DIR pin | GPIO_PIN_10 |
GPIO_TLE9201SG_VSO | VSO GPIO对象 iTLE9201SG_PIN_VSO=iUSE | GPIOA |
PIN_TLE9201SG_VSO | VSO pin iTLE9201SG_PIN_VSO=iUSE | GPIO_PIN_12 |
SPI_TLE9201SG | SPI对象 | hspi2 |
GPIO_TLE9201SG_CS | CS GPIO对象 | GPIOC |
PIN_TLE9201SG_CS | CS pin | GPIO_PIN_8 |
应用实例
示例应用程序作为 oss_ecal 函数在 smple.c 中提供。
通过在全局变量 vgTLE9201SG.cmd 中设置下表中的命令,可以使用 oss_ecal 函数 API 来执行 TLE9201SG 的 OSS-ECAL API 函数。
指令 | 概述。 |
---|---|
iTLE9201SG_SPI_CONFIG | SPI configuration command |
iTLE9201SG_INI_MODE | Initialize command |
iTLE9201SG_SPI_MODE | SPI control mode command |
iTLE9201SG_PWM_MODE | PWM control mode command |
iTLE9201SG_SLP_MODE | Sleep mode command 启用 VSO 引脚时执行此操作 |
iTLE9201SG_DIS_MODE | Disable mode command 请在 PWM control mode 下进行操作 |
iTLE9201SG_DIR_PWM_SET | PWM duty 設定command |
iTLE9201SG_OL_OFF_STATE | Open load OFF command 请在 PWM control mode 下进行操作 |
iTLE9201SG_OL_ON_STATE | Open load ON command 请在 PWM control mode 下进行操作 |
iTLE9201SG_WAKEUP | Wake-up command |
iTLE9201SG_RD_DIA | RD_DIA command |
iTLE9201SG_RES_DIA | RES_DIA command |
iTLE9201SG_RD_REV | RD_REV command |
iTLE9201SG_RD_CTRL | RD_CTRL command |
iTLE9201SG_WR_CTRL | WR_CTRL command |
iTLE9201SG_WR_CTRL_RD_DIA | WR_CTRL_RD_DIA command |
HAL 支持列表
OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。
Manufacturer | SDK/IDE Tool | HAL Name | Ver | HALNAME | Support |
---|---|---|---|---|---|
Arduino | Arduino IDE | Arduino | 1.8.6 | ARDUINO | – |
Debian | – | GNU/Linux | 10.3 | Linux | – |
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 | – |
Renesas | Synergy Software Package | HAL | 2.6.0 | SSP | – |
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 事件中断时采集压力(高优先级)