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関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_SPI_OBJECT | SPIオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_SPI | HAL SPIエラー |
etSTS oTLE9201SG_INIT( void )
oTLE9201SG_INIT関数は、次の手順でTLE9201SGの初期化を行うAPI関数です。
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周期から計算するので、THREAD_OSS_ECAL_PERIOD [ms]にThread周期を設定してください。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_EXE | 実行中 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – PWM pin 選択エラー | ||
eSTS_ERR_COMMAND | Initialization mode中またはSleep mode中に本API関数コール | ||
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 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 ) |
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – PWM pin 選択エラー | ||
eSTS_ERR_COMMAND | Sleep mode中に本API関数コール | ||
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ステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – PWM pin 選択エラー – PWM出力設定値 -100%~100%範囲外 | ||
eSTS_ERR_COMMAND | PWM control modeまたはSPI control mode以外で本API関数コール | ||
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関数は、次の手順で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の読み出し値保存
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | GPIO pin 選択エラー | ||
eSTS_ERR_COMMAND | PWM control mode以外で本API関数コール | ||
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関数は、次の手順で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の読み出し値保存
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – PWM pin 選択エラー – PWM出力設定値 -100%~100%範囲外 | ||
eSTS_ERR_COMMAND | PWM control mode以外で本API関数コール | ||
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関数は、次の手順で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%
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – PWM pin 選択エラー | ||
eSTS_ERR_COMMAND | PWM control mode以外で本API関数コール | ||
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関数は、次の手順でTLE9201SGをSleep(VSO pin = Low)に設定するAPI関数です。このAPI関数は、VSO 動作が有効になっている(iTLE9201SG_PIN_VSO = iUSE)場合に用います。
戻り値 | etSTS | OSS-ECALステータスコード | |
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を初期モードまたはSleepモードからWake-upする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周期から計算するので、THREAD_OSS_ECAL_PERIOD [ms]にThread周期を設定してください。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_EXE | 実行中 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – PWM pin 選択エラー | ||
eSTS_ERR_COMMAND | Initialization modeまたはSleep mode中に本API関数コール | ||
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関数は、Register DIA_REGの値を読み出し、rltに保存するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
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関数は、Register DIA_REGの値をクリアするAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
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関数は、Register REV_REGの値を読み出し、rltに保存するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
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関数は、Register CTRL_REGの値を読み出し、rltに保存するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
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関数は、val & 0x1fの値をRegister CTRL_REGに書き込むAPI関数です。
valは、下表からCTRL_REGのbitを組み合わせて設定してください。
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ステータスコード | |
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関数は、val & 0x1fの値をRegister CTRL_REGに書き込み、その後Register CTRL_REGを読み出し、rltに保存するAPI関数です。
valは、下表からCTRL_REGのbitを組み合わせて設定してください。
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ステータスコード | |
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の書込み値 | |
引数 OUT | 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 object数 | 1U |
PWM_PIN_NUM | OSS-ECALで使用するPWM pin数 | 1U |
TLE9201SG_PWM_FREQ | PWMの周期[Hz] | 20000U |
CMP_GPIO_NUM | OSS-ECALで使用するGPIO object数 | 1U |
GPIO_PIN_NUM | OSS-ECALで使用するGPIO数 | 3U |
CMP_SPI_NUM | OSS-ECALで使用するSPI object数 | 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_TIMER | 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 |
サンプルアプリケーション
サンプルアプリケーションは、smple.c の oss_ecal 関数として提供しています。
oss_ecal関数のAPIは、グローバル変数vgTLE9201SG.cmdに下表のコマンドを設定することで、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 pinが有効な時に行ってください。 |
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であってもVerやMCU、開発環境が異なると動作が合わない場合がありますので、ご注意ください。
メーカ | SDK/IDE ツール | HAL名称 | 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 | メーカ | 開発ボード | 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 |
File構成
フォルダ* | ファイル | 概要 |
---|---|---|
TLE9201SG_HALNAME_VERSION/sample | sample.c | サンプル・アプリケーション・プログラム |
sample.h | サンプル・アプリケーション・ヘッダ | |
TLE9201SG_HALNAME_VERSION | oTLE9201SG.c | TLE9201SG用OSS-ECALプログラム |
oTLE9201SG.h | TLE9201SG用OSS-ECALヘッダ | |
oss_ecal.h | OSS-ECAL 共通ヘッダ | |
user_setting.c | ユーザ設定定数・テーブル | |
user_setting.h | ユーザ設定ヘッダ | |
readme.md | Readme | |
OSS-ECAL Terms of Use.txt | OSS-ECAL利用条件 |
* HALNAMEはHAL対応表を参照してください。
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 イベント割込み(優先順位高)で圧力取込み