TLE9201SG

TLE9201SGの概要と、TLE9201SG用OSS-ECALの提供についてご紹介いたします。TLE9201SGは、Infineon製のBDCモーター用MOTIX™フルブリッジICです。
MCUインタフェース:SPI, GPIO

ご注意:実際の設計などの前には、必ず最新版Datasheetをご参照くださいますようお願いいたします。

TLE9201SG

概要

TLE9201SGは、自動車アプリケーションにおけるDCモーターやその他の誘導負荷の制御を目的として設計された汎用6A Hブリッジです(ただし、これに限定されません)。出力は最大20kHzの周波数でパルス幅変調(PWM)が可能です。PWM/DIR制御により、マイクロコントローラー側で必要なPWM対応ピン数を削減できます。

負荷電流が電流制限閾値(8A 典型値)を超えると、Hブリッジはチョッパー電流制限モードに移行します。短絡や過温度から保護され、SPI経由の広範な診断機能またはエラーフラグ経由の基本的なエラーフィードバックを提供します。ブリッジが無効化されている場合や誘導負荷のPWM動作中に、オープン負荷を検出できます。

堅牢なPG-DSO-12-17パッケージは、厚い銅製ヒートスラグにより優れた熱性能を提供します。

ヒートスラグの突起したエッジにより、パッケージは自動光学はんだ検査に最適です。

特徴

  • Tj=25 °Cでスイッチあたり100 mΩのRDSon typ.
  • ロジック入力 3.3 Vおよび5.0 V TTL/CMOS対応
  • 低いスタンバイ電流
  • チョッパー電流制限
  • ラッチ動作による短絡シャットダウン
  • ラッチ動作による過熱シャットダウン
  • VS低電圧シャットダウン
  • ONおよびOFF状態でのオープンロード検出
  • 詳細なSPI診断または単純なエラーフラグ
  • グリーン製品(RoHS対応)
  • AEC認定

OSS-ECAL仕様

API関数

OSS-ECALのAPI関数は、基本的に定周期Thread(TASK)から関数コールされることを前提としています。

etSTS oTLE9201SG_SPI_CONFIG( void )

oTLE9201SG_SPI_CONFIG関数は、SPIをコンフィグレーションするAPI関数です。

戻り値etSTSOSS-ECALステータスコード
eSTS_FIN正常終了
eSTS_ERR_SPI_OBJECTSPIオブジェクト選択エラー
eSTS_ERR_HAL_OTHERS_RUN他のアプリケーションがHAL実行中
eSTS_ERR_HAL_SPIHAL SPIエラー
etSTS oTLE9201SG_INIT( void )

oTLE9201SG_INIT関数は、次の手順でTLE9201SGの初期化を行うAPI関数です。

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周期から計算するので、THREAD_OSS_ECAL_PERIOD [ms]にThread周期を設定してください。

戻り値etSTSOSS-ECALステータスコード
eSTS_FIN正常終了
eSTS_EXE実行中
eSTS_ERR_PARAMETER次のいづれかの場合
– GPIO pin 選択エラー
– PWM pin 選択エラー
eSTS_ERR_COMMANDInitialization mode中またはSleep mode中に本API関数コール
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 control mode または SPI control modeを設定する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ステータスコード
eSTS_FIN正常終了
eSTS_ERR_PARAMETER次のいづれかの場合
– GPIO pin 選択エラー
– PWM pin 選択エラー
eSTS_ERR_COMMANDSleep mode中に本API関数コール
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 modePWM 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関数です。

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ステータスコード
eSTS_FIN正常終了
eSTS_ERR_PARAMETER次のいづれかの場合
– GPIO pin 選択エラー
– PWM pin 選択エラー
– PWM出力設定値 -100%~100%範囲外
eSTS_ERR_COMMANDPWM control modeまたはSPI control mode以外で本API関数コール
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関数は、次の手順でTLE9201SGをOpen Load Detection in OFF stateを行い、Register DIA_REGの値を読み出し、diaに保存するAPI関数です。
尚、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: diaにStep6の読み出し値保存

戻り値etSTSOSS-ECALステータスコード
eSTS_FIN正常終了
eSTS_ERR_PARAMETERGPIO pin 選択エラー
eSTS_ERR_COMMANDPWM control mode以外で本API関数コール
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関数は、次の手順でTLE9201SGをOpen Load Detection in ON stateを行い、Register DIA_REGの値を読み出し、diaに保存する API関数です。
尚、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: diaにStep4の読み出し値保存

戻り値etSTSOSS-ECALステータスコード
eSTS_FIN正常終了
eSTS_ERR_PARAMETER次のいづれかの場合
– GPIO pin 選択エラー
– PWM pin 選択エラー
– PWM出力設定値 -100%~100%範囲外
eSTS_ERR_COMMANDPWM control mode以外で本API関数コール
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関数は、次の手順でTLE9201SGをDisable状態に設定するAPI関数です。
尚、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ステータスコード
eSTS_FIN正常終了
eSTS_ERR_PARAMETER次のいづれかの場合
– GPIO pin 選択エラー
– PWM pin 選択エラー
eSTS_ERR_COMMANDPWM control mode以外で本API関数コール
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関数は、次の手順でTLE9201SGをSleep(VSO pin = Low)に設定するAPI関数です。このAPI関数は、VSO 動作が有効になっている(iTLE9201SG_PIN_VSO = iUSE)場合に用います。

戻り値etSTSOSS-ECALステータスコード
eSTS_FIN正常終了
eSTS_ERR_PARAMETERGPIO pin 選択エラー
eSTS_ERR_GPIO_OBJECTGPIOオブジェクト選択エラー
eSTS_ERR_HAL_OTHERS_RUN他のアプリケーションがHAL実行中
etSTS oTLE9201SG_WAKEUP( void )

oTLE9201SG_WAKEUP関数は、次の手順でTLE9201SGを初期モードまたはSleepモードからWake-upする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周期から計算するので、THREAD_OSS_ECAL_PERIOD [ms]にThread周期を設定してください。

戻り値etSTSOSS-ECALステータスコード
eSTS_FIN正常終了
eSTS_EXE実行中
eSTS_ERR_PARAMETER次のいづれかの場合
– GPIO pin 選択エラー
– PWM pin 選択エラー
eSTS_ERR_COMMANDInitialization modeまたはSleep mode中に本API関数コール
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関数は、Register DIA_REGの値を読み出し、rltに保存するAPI関数です。

戻り値etSTSOSS-ECALステータスコード
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関数は、Register DIA_REGの値をクリアするAPI関数です。

戻り値etSTSOSS-ECALステータスコード
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関数は、Register REV_REGの値を読み出し、rltに保存するAPI関数です。

戻り値etSTSOSS-ECALステータスコード
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関数は、Register CTRL_REGの値を読み出し、rltに保存するAPI関数です。

戻り値etSTSOSS-ECALステータスコード
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関数は、val & 0x1fの値をRegister CTRL_REGに書き込むAPI関数です。

valは、下表からCTRL_REGのbitを組み合わせて設定してください。

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ステータスコード
eSTS_FIN正常終了
eSTS_ERR_SPI_OBJECTSPIオブジェクト選択エラー
eSTS_ERR_HAL_OTHERS_RUN他のアプリケーションがHAL実行中
eSTS_ERR_HAL_SPIHAL SPIエラー
引数 INuint8 valRegister CTRL_REGの書込み値
etSTS oTLE9201SG_WR_CTRL_RD_DIA( uint8 val, uint8* rlt )

oTLE9201SG_WR_CTRL_RD_DIA関数は、val & 0x1fの値をRegister CTRL_REGに書き込み、その後Register CTRL_REGを読み出し、rltに保存するAPI関数です。

valは、下表からCTRL_REGのbitを組み合わせて設定してください。

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ステータスコード
eSTS_FIN正常終了
eSTS_ERR_SPI_OBJECTSPIオブジェクト選択エラー
eSTS_ERR_HAL_OTHERS_RUN他のアプリケーションがHAL実行中
eSTS_ERR_HAL_SPIHAL SPIエラー
引数 INuint8 valRegister CTRL_REGの書込み値
引数 OUTuint8* 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_SIGVSO出力信号の非反転または反転を指定
iNORMAL: 非反転
iREVERSE: 反転
iNORMAL
TLE9201SG_PIN_DIS_SIGDIS出力信号の非反転または反転を指定
iNORMAL: 非反転
iREVERSE: 反転
iNORMAL
TLE9201SG_PIN_DIR_SIGDIR出力信号の非反転または反転を指定
iNORMAL: 非反転
iREVERSE: 反転
iNORMAL
TLE9201SG_OL_ON_DUTY_TESTOpen Load Detection in ON state時のPWM Duty値[%]40.0F
CMP_PWM_NUMOSS-ECALで使用するPWM object数1U
PWM_PIN_NUMOSS-ECALで使用するPWM pin数1U
TLE9201SG_PWM_FREQPWMの周期[Hz]20000U
CMP_GPIO_NUMOSS-ECALで使用するGPIO object数1U
GPIO_PIN_NUMOSS-ECALで使用するGPIO数3U
CMP_SPI_NUMOSS-ECALで使用するSPI object数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_TLE9201SG_TIMERPWMタイマ・オブジェクト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

サンプルアプリケーション

サンプルアプリケーションは、smple.c の oss_ecal 関数として提供しています。
oss_ecal関数のAPIは、グローバル変数vgTLE9201SG.cmdに下表のコマンドを設定することで、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 pinが有効な時に行ってください。
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であってもVerやMCU、開発環境が異なると動作が合わない場合がありますので、ご注意ください。

メーカSDK/IDE ツールHAL名称VerHALNAMESupport
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および開発環境は、次の通りです。

HALNAMEメーカ開発ボードMCUIDE
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

File構成

フォルダ*ファイル概要
TLE9201SG_HALNAME_VERSION/samplesample.cサンプル・アプリケーション・プログラム
sample.hサンプル・アプリケーション・ヘッダ
TLE9201SG_HALNAME_VERSIONoTLE9201SG.cTLE9201SG用OSS-ECALプログラム
oTLE9201SG.hTLE9201SG用OSS-ECALヘッダ
oss_ecal.hOSS-ECAL 共通ヘッダ
user_setting.cユーザ設定定数・テーブル
user_setting.hユーザ設定ヘッダ
readme.mdReadme
OSS-ECAL Terms of Use.txtOSS-ECAL利用条件

* HALNAMEはHAL対応表を参照してください。

OSS-ECAL ダウンロード

OSS-ECALのダウンロードは、英語版OSS-ECALサイトからお願いいたします。なお、ダウンロードを行う際は、英語版OSS-ECALサイトにログインしてから操作してください。

組込み方法

ユーザプログラムにOSS-ECALを組み込む方法

ユーザプログラムに複数のOSS-ECAL(同じMCU機能の電子部品)を組み込む方法

ユーザプログラムに複数のOSS-ECAL(異なるMCU機能の電子部品)を組み込む方法

ユーザプログラムに複数同じ電子部品を組み込む方法

電子部品の入れ替えによるユーザプログラムへの影響低減方法

注意事項

サンプル版OSS-ECALは、優先順位の異なるThread(Task)や割込みで用いることを前提としていません。下記の例のような使い方はしないでください。

例)同じADCグループに各センサーが割り当てられ、優先順位が異なる処理でOSS-ECAL APIを実行すると、正しい値を取得できない場合があります。
ADC Gr0 Ch0 温度センサ AD22100A 100ms周期 Thread(優先順位低)で温度取込み
ADC Gr0 Ch1 圧力センサ MPX5999D イベント割込み(優先順位高)で圧力取込み

OSS-ECAL Japanese
error: コンテンツは保護されている