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関数です。
Step1: VSO操作有効(iTLE9201SG_PIN_VSO = iUSE)の場合、
1) VSO = Hi
2) iTLE9201SG_OUTPUT_WUP_DELAY_MS待機
3) MOSFET on (DIS pin = Low)
4) iTLE9201SG_OUTPUT_DIS_DELAY_US待機
5) Reverse (DIR pin =Low)
6) PWM 0%
Step2: SPI controlモードに設定(oTLE9201SG_SPI_CONTROL_SET関数参照)
Step3: Diagnosis Registerクリア
Step4: MOSFET off ( DIS pin = Hi )
Step5: iTLE9201SG_OUTPUT_DIS_DELAY_US待機
Step6: PWM controlモードに設定(oTLE9201SG_PWM_CONTROL_SET関数参照)
Step7: PWM 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 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
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エラー |
etSTS oTLE9201SG_PWM_CONTROL( float32 dir_duty )
oTLE9201SG_PWM_CONTROL関数は、dir_dutyの値に基づき、DIR pin出力およびPWM出力を行うAPI関数です。
備考:
この関数を使用する前に、oTLE9201SG_PWM_CONTROL_SET関数を使用してPWMモードに切り替える必要があります。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
eSTS_ERR_GPIO_OBJECT | GPIOオブジェクト選択エラー | ||
eSTS_ERR_PWM_OBJECT | PWMオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_PWM | HAL PWMエラー | ||
引数 IN | float32 dir_duty | DIR pinおよびPWM duty設定値 | dir_duty < 0.0f の時: DIR pin = Low(Reverse), PWM duty = -dir_duty dir_duty >= 0.0fの時: DIR pin = Hi(Forward), PWM duty = dir_duty |
etSTS oTLE9201SG_SPI_CONTROL( float32 dir_duty )
oTLE9201SG_SPI_CONTROL関数は、dir_dutyの値に基づき、SPIにてDIRおよびPWMの値を設定するAPI関数です。
備考:
この関数を使用する前に、oTLE9201SG_SPI_CONTROL_SET関数を使用してSPIモードに切り替える必要があります。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_SPI_OBJECT | SPIオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_SPI | HAL SPIエラー | ||
引数 IN | float32 dir_duty | Register CTRL_REGのSDIRおよびSPWMの設定値 | dir_duty < 0.0f の時: SDIR = 0 (Reverse), SPWM = 1 dir_duty == 0.0fの時: SDIR = 0 (Reverse), SPWM = 0 dir_duty > 0.0fの時: SDIR = 1 (Forward), SPWM = 1 |
etSTS oTLE9201SG_OPEN_LOAD( uint8* dia )
oTLE9201SG_OPEN_LOAD関数は、次の手順でTLE9201SGをOpen Loadを行い、Register DIA_REGの値を読み出し、diaに保存する API関数です。
Step1: SPIモード(oTLE9201SG_SPI_CONTROL_SET関数実行)
Step2: 負荷電流源の開放(Register CTRL_REG OLDIS=1)
Step3: MOSFET on (DIS pin = Hi)
Step4: iTLE9201SG_OUTPUT_DIS_DELAY_US待機
Step5: SPIモード(oTLE9201SG_SPI_CONTROL_SET関数実行)
Step6: Register DIA_REG読込み
Step7: PWMモード(oTLE9201SG_PWM_CONTROL_SET関数実行)
Step8: diaにStep6の読み出し値保存
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
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_PWM_CONTROL_SET( void )
oTLE9201SG_PWM_CONTROL_SET関数は、次の手順でTLE9201SGをPWM controlモードに設定するAPI関数です。この関数は、Sleepモードの時は、使用しないでください。
Step1: MOSFET on ( DIS pin = Low)
Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US待機
Step3: Reverse ( DIR pin = Low )
Step4: PWM 0%
Step5: iTLE9201SG_OUTPUT_ENA_DELAY_US待機
Step6: Register CTRL_REG読込み
Step7: Register CTRL_REG SEN = 0, SIN = 0 書込み
Step8: Forward ( DIR pin = Hi )
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
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エラー |
etSTS oTLE9201SG_SPI_CONTROL_SET( void )
oTLE9201SG_SPI_CONTROL_SET関数は、次の手順でTLE9201SGをSPI controlモードに設定するAPI関数です。この関数は、Sleepモードの時は、使用しないでください。
Step1: MOSFET on ( DIS pin = Low)
Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US待機
Step3: Reverse ( DIR pin = Low )
Step4: PWM 0%
Step5: iTLE9201SG_OUTPUT_ENA_DELAY_US待機
Step6: Register CTRL_REG読込み
Step7: Register CTRL_REG SEN = 1, SIN = 1 書込み
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
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エラー |
etSTS oTLE9201SG_DISABLE( void )
oTLE9201SG_DISABLE関数は、次の手順でTLE9201SGをDisableに設定するAPI関数です。
Step1: MOSFET off ( 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 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
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に設定するAPI関数です。このAPI関数は、VSO 動作が有効になっている(iTLE9201SG_PIN_VSO = iUSE)場合に用います。
Step1: MOSFET on ( DIS pin = Low)
Step2: iTLE9201SG_OUTPUT_DIS_DELAY_US待機
Step3: Reverse ( DIR pin = Low )
Step4: PWM 0%
Step5: 電源off ( VSO = Low )
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
eSTS_ERR_GPIO_OBJECT | GPIOオブジェクト選択エラー | ||
eSTS_ERR_PWM_OBJECT | PWMオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_PWM | HAL PWMエラー |
etSTS oTLE9201SG_WAKEUP( void )
oTLE9201SG_WAKEUP関数は、次の手順でTLE9201SGをSleepモードからWake-upするAPI関数です。
Step1: 電源on ( VSO = Hi )
Step2: iTLE9201SG_OUTPUT_WUP_DELAY_MS待機
Step3: MOSFET on ( DIS pin = Low)
Step4: iTLE9201SG_OUTPUT_DIS_DELAY_US待機
Step5: Reverse ( DIR pin = Low )
Step6: PWM 0%
備考:
iTLE9201SG_OUTPUT_WUP_DELAY_MS[ms]経過計測は、この関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD [ms]にThread周期を設定してください。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_PARAMETER | 次のいづれかの場合 – GPIO pin 選択エラー – GPIO Output レベル選択エラー – PWM pin 選択エラー – PWM出力設定値 0%~100%範囲外 | ||
eSTS_ERR_GPIO_OBJECT | GPIOオブジェクト選択エラー | ||
eSTS_ERR_PWM_OBJECT | PWMオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_PWM | HAL PWMエラー |
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* dia | 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に書き込む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に書き込み、その後Register CTRLを読み出し、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 |
iTLE9201SG_PIN_VSO_SIG | VSO出力信号の非反転または反転を指定 iNORMAL: 非反転 iREVERSE: 反転 | iNORMAL |
iTLE9201SG_PIN_DIS_SIG | DIS出力信号の非反転または反転を指定 iNORMAL: 非反転 iREVERSE: 反転 | iNORMAL |
iTLE9201SG_PIN_DIR_SIG | DIR出力信号の非反転または反転を指定 iNORMAL: 非反転 iREVERSE: 反転 | iNORMAL |
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通信ボーレート | 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) |
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に下表のコマンドを設定することで、TLE9201SGのOSS-ECAL API関数を実行することができます。
コマンド | 概要 |
---|---|
iTLE9201SG_SPI_CONFIG | TLE9201SG SPI configuration command |
iTLE9201SG_INITIALIZE | TLE9201SG Initialize command |
iTLE9201SG_PWM_CTRL | TLE9201SG PWM control command |
iTLE9201SG_OPEN_LOAD | TLE9201SG Open load command |
iTLE9201SG_DISABLE | TLE9201SG Disable command |
iTLE9201SG_SLEEP | TLE9201SG Sleep command. This command is used when VSO operation is enabled (iTLE9201SG_PIN_VSO = iUSE). |
iTLE9201SG_WAKEUP | TLE9201SG Wake-up command. |
iTLE9201SG_SPI_CTRL | TLE9201SG SPI control command |
iTLE9201SG_RD_DIA | TLE9201SG RD_DIA command |
iTLE9201SG_RES_DIA | TLE9201SG RES_DIA command |
iTLE9201SG_RD_REV | TLE9201SG RD_REV command |
iTLE9201SG_RD_CTRL | TLE9201SG RD_CTRL command |
iTLE9201SG_WR_CTRL | TLE9201SG WR_CTRL command |
iTLE9201SG_WR_CTRL_RD_DIA | TLE9201SG 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 イベント割込み(優先順位高)で圧力取込み