TLE9201SG

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 函数。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_SPIHAL SPI 错误
etSTS oTLE9201SG_INIT( void )

oTLE9201SG_INIT 函数是一个 API 函数,通过以下步骤初始化 TLE9201SG。

TLE9201SG_PIN_VSOcontrol mode*处理
VSO pin 有效
iUSE
PWMStep1: 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等待
SPIStep1: 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
PWMStep1: 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等待
SPIStep1: 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]。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE处理中
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_PWM_OBJECTPWM对象选择错误
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_SPIHAL SPI错误
eSTS_ERR_HAL_PWMHAL 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 )
返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE处理中
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_PWM_OBJECTPWM对象选择错误
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_PWMHAL PWM错误
eSTS_ERR_HAL_SPIHAL SPI错误
参数 INuint8 mode选择 PWM control mode 或 SPI control modePWM 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 函数。

modedir_duty DIRDuty
PWM control modedir_duty < 0.0fReverse: DIR pin = LowPWM = -dir_duty
dir_duty >= 0.0fForward: DIR pin = HiPWM = dir_duty
SPI control modedir_duty < 0.0fReverse: Register CTRL_REG SDIR = 0Register CTRL_REG SPWM = 1
dir_duty > 0.0fForward: Register CTRL_REG SDIR = 1Register CTRL_REG SPWM = 1
dir_duty = 0.0fReverse: Register CTRL_REG SDIR = 0Register CTRL_REG SPWM = 0

*:在 SPI control mode下,将OLDIS设置为1。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
– PWM 输出设定点 -100% 至 100% 超出范围
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_PWM_OBJECTPWM对象选择错误
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_PWMHAL PWM错误
eSTS_ERR_HAL_SPIHAL SPI错误
参数 INfloat32 dir_dutyDIR 和 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中

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_SPIHAL SPI错误
参数 OUTuint8* diaRegister 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中

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
– PWM 输出设定点 -100% 至 100% 超出范围
– SPI control mode
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_PWM_OBJECTPWM对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_SPIHAL SPI错误
eSTS_ERR_HAL_PWMHAL PWM错误
参数 OUTuint8* diaRegister 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%

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
– SPI control mode
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_PWM_OBJECTPWM对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_PWMHAL PWM错误
etSTS oTLE9201SG_SLEEP( void )

oTLE9201SG_SLEEP 函数是一个 API 函数,用于按照以下步骤将 TLE9201SG 设置为睡眠模式(VSO 引脚为低电平)。此 API 函数仅在 VSO 功能启用(iTLE9201SG_PIN_VSO = iUSE)时使用。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_PARAMETERGPIO pin 选择错误
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
etSTS oTLE9201SG_WAKEUP( void )

oTLE9201SG_WAKEUP函数是用于将TLE9201SG从初始模式或睡眠模式唤醒的API函数,其操作步骤如下:

TLE9201SG_PIN_VSOTLE9201SG_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]。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE处理中
eSTS_ERR_PARAMETER在下列任一情况下
– GPIO pin 选择错误
– PWM pin 选择错误
eSTS_ERR_GPIO_OBJECTGPIO对象选择错误
eSTS_ERR_PWM_OBJECTPWM对象选择错误
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL。
eSTS_ERR_HAL_PWMHAL PWM错误
eSTS_ERR_HAL_SPIHAL SPI错误
etSTS oTLE9201SG_RD_DIA( uint8* rlt )

oTLE9201SG_RD_DIA 函数是一个 API 函数,用于读取寄存器 DIA_REG 的值并将其保存到 rlt 中。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL
eSTS_ERR_HAL_SPIHAL SPI错误
参数 OUTuint8* rltRegister DIA_REG 读出值
etSTS oTLE9201SG_RES_DIA( void )

oTLE9201SG_RES_DIA 函数是一个用于清除寄存器 DIA_REG 值的 API 函数。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL
eSTS_ERR_HAL_SPIHAL SPI错误
etSTS oTLE9201SG_RD_REV( uint8* rlt )

oTLE9201SG_RD_REV 函数是一个 API 函数,用于读取寄存器 REV_REG 的值并将其保存到 rlt 中。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL
eSTS_ERR_HAL_SPIHAL SPI错误
参数 OUTuint8* rltRegister REV_REG 读出值
etSTS oTLE9201SG_RD_CTRL( uint8* rlt )

oTLE9201SG_RD_REV 函数是一个 API 函数,用于读取寄存器 CTRL_REG 的值并将其保存到 rlt 中。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL
eSTS_ERR_HAL_SPIHAL SPI错误
参数 OUTuint8* rltRegister CTRL_REG 读出值
etSTS oTLE9201SG_WR_CTRL( uint8 val )

oTLE9201SG_WR_CTRL函数是一个API函数,用于将val与0x1f的值写入Register CTRL_REG寄存器。

val的设置请从下表中选择并组合CTRL_REG的位。

Bit名Bit处理
iTLE9201SG_OLDISb4Open Load Disconnect
iTLE9201SG_SINb3Control output PWM/DIR or SPI
iTLE9201SG_SENb2Enable/Disable SPI control
iTLE9201SG_SDIRb1DIR SPI control
iTLE9201SG_SPWMb0PWM SPI control
返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL
eSTS_ERR_HAL_SPIHAL SPI错误
参数 INuint8 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_OLDISb4Open Load Disconnect
iTLE9201SG_SINb3Control output PWM/DIR or SPI
iTLE9201SG_SENb2Enable/Disable SPI control
iTLE9201SG_SDIRb1DIR SPI control
iTLE9201SG_SPWMb0PWM SPI control
返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_SPI_OBJECTSPI对象选择错误
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行HAL
eSTS_ERR_HAL_SPIHAL SPI错误
参数 INuint8 val将写入值写入Register CTRL_REG
uint8* rltRegister CTRL_REG 读出值

提供时的设置

通用设置值

提供时的默认设置值如下表所示的user_setting.h文件中的值。请根据具体产品进行相应修改。

标签名称概述设定点
THREAD_OSS_ECAL_PERIODThread/Task 周期[ms]10U
iTLE9201SG_PIN_VSOVSO输出信号的存在
iUSE: 有
iDONT_USE: 無
iDONT_USE
TLE9201SG_START_MODEControl 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_TESTOpen Load Detection in ON state时的PWM Duty值[%]40.0F
CMP_PWM_NUM在OSS-ECAL中使用的PWM对象数量1U
PWM_PIN_NUMOSS-ECALで使用するPWM引脚数1U
TLE9201SG_PWM_FREQPWMの周期[Hz]20000U
CMP_GPIO_NUM在OSS-ECAL中使用的GPIO对象数量1U
GPIO_PIN_NUMOSS-ECALで使用するGPIO引脚数3U
CMP_SPI_NUM在OSS-ECAL中使用的SPI对象数量1U
HZ_TLE9201SGSPI 通信波特率[bps]1000000U
SPI_RETRYSPI 通信出错时的重试次数3U
ESP32 HAL配置参数

ESP32 HAL的设置值在提供时为下表中user_setting.h中的值。请根据各产品进行相应修改。

标签名称概述设定点
PWM_TLE9201SG_TIMERPWM 定时器对象LEDC_TIMER_0
PIN_TLE9201SG_PWMPWM pinGPIO_NUM_8
TLE9201SG_PWM_CHANNELPWM 定时器对象的通道LEDC_CHANNEL_0
PWM_TLE9201SG_MODELEDC speed modeLEDC_LOW_SPEED_MODE
TLE9201SG_PWM_RESOLUTION_BITSPWM resolution (10-bit = 0~1023 duty)LEDC_TIMER_10_BIT
PIN_TLE9201SG_DISDIS pinGPIO_NUM_1
PIN_TLE9201SG_DIRDIR pinGPIO_NUM_2
PIN_TLE9201SG_VSOVSO pin
iTLE9201SG_PIN_VSO=iUSE
GPIO_NUM_3
PIN_MOSIMOSI pinGPIO_NUM_6
PIN_MISOMISO pinGPIO_NUM_5
PIN_SCLKSCLK pinGPIO_NUM_4
PIN_TLE9201SG_CSCS pinGPIO_NUM_7
SPI_TLE9201SG_CFGSPI_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_TLE9201SGSPI_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_TLE9201SGSPI_TLE9201SG 是 cyhal_pwm_init 函数的参数 cyhal_pwm_t obj 的全局变量。
该变量的定义应与cyhal_pwm_init函数的定义保持一致。

#define cyhal_pwm_init( obj, pin, clk )
vgPWM_OBJ
PIN_TLE9201SG_PWMPWM pinP7_1
PIN_TLE9201SG_DISDIS pinP5_4
PIN_TLE9201SG_DIRDIR pinP5_5
PIN_TLE9201SG_VSOVSO pin
iTLE9201SG_PIN_VSO=iUSE
P5_6
PIN_MOSIMOSI pinP9_0
PIN_MISOMISO pinP9_1
PIN_SCLKSCLK pinP9_2
SPI_TLE9201SGSPI_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_CSCS pinP9_3
STM32CubeF4 配置参数

STM32CubeF4 的设置值在提供时为下表中user_setting.h中的值。请根据相应产品进行更改。

标签名称概述设定点
TIME_DELAY用于测量经过时间的计时器对象htim2
PWM_TLE9201SGPWM 定时器对象htim4
TLE9201SG_PWM_CHANNELPWM 定时器对象的通道TIM_CHANNEL_1
TLE9201SG_PWM_TIMER_PERIODPWM周期3199U (20kHz=50µs)
LSB = 0.015625 µs
GPIO_TLE9201SG_DISDIS GPIO对象GPIOA
PIN_TLE9201SG_DISDIS pinGPIO_PIN_9
GPIO_TLE9201SG_DIRDIR GPIO对象GPIOA
PIN_TLE9201SG_DIRDIR pinGPIO_PIN_10
GPIO_TLE9201SG_VSOVSO GPIO对象
iTLE9201SG_PIN_VSO=iUSE
GPIOA
PIN_TLE9201SG_VSOVSO pin
iTLE9201SG_PIN_VSO=iUSE
GPIO_PIN_12
SPI_TLE9201SGSPI对象hspi2
GPIO_TLE9201SG_CSCS GPIO对象GPIOC
PIN_TLE9201SG_CSCS pinGPIO_PIN_8

应用实例

示例应用程序作为 oss_ecal 函数在 smple.c 中提供。
通过在全局变量 vgTLE9201SG.cmd 中设置下表中的命令,可以使用 oss_ecal 函数 API 来执行 TLE9201SG 的 OSS-ECAL API 函数。

指令概述。
iTLE9201SG_SPI_CONFIGSPI configuration command
iTLE9201SG_INI_MODEInitialize command
iTLE9201SG_SPI_MODESPI control mode command
iTLE9201SG_PWM_MODEPWM control mode command
iTLE9201SG_SLP_MODESleep mode command
启用 VSO 引脚时执行此操作
iTLE9201SG_DIS_MODEDisable mode command
请在 PWM control mode 下进行操作
iTLE9201SG_DIR_PWM_SETPWM duty 設定command
iTLE9201SG_OL_OFF_STATEOpen load OFF command
请在 PWM control mode 下进行操作
iTLE9201SG_OL_ON_STATEOpen load ON command
请在 PWM control mode 下进行操作
iTLE9201SG_WAKEUPWake-up command
iTLE9201SG_RD_DIARD_DIA command
iTLE9201SG_RES_DIARES_DIA command
iTLE9201SG_RD_REVRD_REV command
iTLE9201SG_RD_CTRLRD_CTRL command
iTLE9201SG_WR_CTRLWR_CTRL command
iTLE9201SG_WR_CTRL_RD_DIAWR_CTRL_RD_DIA command

HAL 支持列表

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

ManufacturerSDK/IDE ToolHAL NameVerHALNAMESupport
ArduinoArduino IDEArduino1.8.6ARDUINO
DebianGNU/Linux10.3Linux
EspressifESP-IDFHALv5.5ESP32X
InfineonModusToolboxmtb-hal-cat12.4.3ModusToolboxX
NXPMCUXpresso SDKSDK_2.x_EVKB-IMXRT10502.16iMXRT1051B1052B
RenesasSynergy Software PackageHAL2.6.0SSP
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: 内容受保护 !