STマイクロエレクトロニクス UM3469 X-CUBE-ISO1 ソフトウェア拡張

導入
STM1Cube用拡張ソフトウェアパッケージX-CUBE-ISO32はSTM32上で動作し、X-NUCLEO-ISO1A1用のファームウェアが含まれています。このソフトウェアは、X-NUCLEOが提供する基本的なPLCデバイスの開発を容易にするソリューションを提供します。この拡張はSTM32Cubeソフトウェア技術に基づいて構築されており、異なるSTM32マイクロコントローラ間での移植性を容易にします。
本ソフトウェアには、NUCLEO-G1RB開発ボード(またはNUCLEO-G1B071REもしくはNUCLEO-G0RB)に接続されたX-NUCLEO-ISO1A070拡張ボード上で動作する実装が付属しています。以降、本ドキュメントでは簡潔にするため、NUCLEO-G071RBのみを記載します。
X-NUCLEO-ISO1A1 ボードは、適切なジャンパー設定を使用して XNUMX つのボードをスタックし、入出力機能を拡張できるように設計されています。
頭字語と略語
表1.頭字語のリスト
| 頭字語 | 説明 |
| PLC | プログラマブルロジックコントローラ |
| 翻訳 | アプリケーションプログラミングインターフェース |
| パルス幅変調 | パルス幅変調 |
| GPIO | 汎用入出力。 |
| ハル | ハードウェアアブストラクションレイヤー |
| PC | パソコン |
| FW | ファームウェア |
STM32Cubeとは何ですか?
STM32Cube™は、開発の労力、時間、コストを削減することで開発者の負担を軽減するというSTMicroelectronicsの取り組みを表しています。STM32CubeはSTM32ポートフォリオをカバーしています。
STM32Cube バージョン 1.x には以下が含まれます。
- STM32CubeMX は、グラフィカル ウィザードを使用して C 初期化コードを生成できるグラフィカル ソフトウェア構成ツールです。
- 各シリーズ固有の包括的な組み込みソフトウェア プラットフォーム (STM32G0 シリーズの場合は STM32CubeG0 など) には、次のものが含まれます。
- STM32Cube HAL組み込み抽象化層ソフトウェアにより、STM32ポートフォリオ全体で最大限の移植性を確保
- RTOS、USB、TCP/IP、グラフィックスなどのミドルウェアコンポーネントの一貫したセット
- すべての組み込みソフトウェアユーティリティとexのフルセットampレ。
STM32Cubeアーキテクチャ
STM32Cube ファームウェア ソリューションは、下の図に示すように、互いに簡単にやり取りできる XNUMX つの独立したレベルを中心に構築されています。

STM1Cube用X-CUBE-ISO32ソフトウェア拡張
以上view
STM1環境とライブラリをベースに開発された産業用絶縁型入出力拡張ボードX-NUCLEO-ISO1A32のファームウェアは、STM32 Nucleoボードの高性能MCUを活用し、デジタル入力、診断機能付き出力、動的電流制限、PWM信号生成を制御します。デフォルトおよび代替条件のフレームワーク、プリスケーラ値設定用マクロ、GPIOポートおよびピンの定義など、包括的なボード構成と制御機能を備えています。
さまざまなsをサポートしますampデジタル入力から出力へのミラーリング、Nucleo ボードを介した UART 通信、障害検出、テスト ケース、PWM 生成などの多くのアプリケーション ユース ケースが用意されており、直接使用でき、簡単にカスタマイズおよび拡張できます。
APIは、デジタル入出力制御、障害検出、ボードステータス更新のための堅牢な関数セットを提供し、2枚のボードを異なるモードで同時に動作させるための設定も提供します。デジタル出力チャンネルのPWM信号の初期化、開始、停止、および設定には、専用のAPI関数が用意されています。
ボード サポート パッケージには、IPS1025H-32 とインターフェースされた GPIO ピンを制御および監視し、デジタル アイソレータを介して CLT03-2Q3 とインターフェースされた GPIO ピンの状態を読み取る機能が含まれています。
構成と初期化は STM32CubeMX に基づいており、開発とデバッグは STM32CubeIDE、IAR Systems、および Keil® ツールによってサポートされています。
建築
X-NUCLEO-ISO1A1 のファームウェアは、システムの動作のさまざまな側面を担当する複数の異なる機能ブロックに分割できます。

- ボードの構成と制御:
- board_config.h file ボードをデフォルト、代替条件、またはその両方で動作させるように設定するためのマクロが含まれています。また、プリスケーラ値、GPIOポートおよびピンの定義も含まれています。
- このブロックは、ボードが目的の動作条件に合わせて正しくセットアップされ、必要なハードウェア構成がすべて整っていることを確認します。
- アプリケーションの使用例:
- st_iso_app.h と st_iso_app.c fileには、ボードのさまざまな機能をテストするために設計されたアプリケーションの使用ケースが含まれています。
- これらのユースケースには、デジタル入力から出力へのミラーリング、障害検出テスト、PWM 信号生成が含まれます。
- Examp2 つのボードを異なるモードで同時に実行するためのファイル構成が提供されており、ファームウェアの汎用性と柔軟性が実証されています。
- API関数:
- iso1a1.h と iso1a1.c fileさまざまな機能をサポートするための包括的な API セットを提供します。
- これらの API には、デジタル入出力制御、障害検出、ボード ステータス更新の機能が含まれています。
- API はシンプルで直感的に操作できるように設計されており、ユーザーはボードと対話して必要な操作を簡単に実行できます。
- PWM信号制御:
- pwm_api.h と pwm_api.c fileには、PWM 信号生成に関連する特定の API 関数が含まれています。
- これらの関数を使用すると、デジタル出力チャネルの PWM 信号の初期化、構成、開始、停止が可能になります。
- PWM機能はデフォルトで選択されていません。これを有効にするには、ボード設定を変更する必要があります。詳細については、セクション3.5「API」を参照してください。
- ボードサポートパッケージ:
- 取締役会支援パッケージには以下が含まれます fileIPS1025H-32 とインターフェースされた GPIO ピンを制御および監視し、CLT03-2Q3 とインターフェースされた GPIO ピンの状態を読み取るためのものです。
- ips1025h_32.h と ips1025h_32.c fileIPS1025H-32 とインターフェースされた GPIO ピンの障害を設定、クリア、および検出する機能を提供します。
- clt03_2q3.h と clt03_2q3.c fileCLT03-2Q3 とインターフェースされた GPIO ピンの状態を読み取る機能を提供します。
デモ用ファームウェアは、システムの機能を紹介するために、いくつかのシンプルなユースケースを実装しています。これらのユースケースとユーザーAPIは連携して実行されるため、スムーズな動作と正確な結果が保証されます。アーキテクチャは容易に拡張できるように設計されており、ユーザーは必要に応じて新しい機能やユースケースを追加できます。デフォルト設定は、デジタル産業用IOを搭載した2枚のボードを実行するために提供されています。ジャンパー設定も、表XNUMXに示すようにデフォルトモードにする必要があります。デジタル入力デジタル出力ミラーリング(DIDO)は、ファームウェアアプリケーションのデフォルトのユースケースです。
フォルダ構造

次のフォルダがソフトウェアパッケージに含まれています。
- ドキュメントにはコンパイル済みの HTML が含まれています file ソース コードから生成され、ソフトウェア コンポーネントと API の詳細を示します。
- ドライバには以下が含まれます:
- STM32Cube HALフォルダは、STM32G0xx_HAL_Driverサブフォルダにあります。これらは fileこれらは X-CUBE-ISO1 ソフトウェアに固有のものではなく、STM32Cube フレームワークから直接取得されるため、ここでは説明しません。
- Cortex®マイクロコントローラソフトウェアインターフェース標準を含むCMSISフォルダ fileアームから。 これらは fileは、Cortex®-Mプロセッサシリーズ用のベンダー非依存のハードウェア抽象化レイヤです。このフォルダもSTM32Cubeフレームワークから変更なくそのまま提供されています。
- IPS1025H-32 および CLT03-2Q3 コンポーネントのコードと X-NUCLEO-ISO1A1 に関連する API を含む BSP フォルダー。
- アプリケーションには、main.c を含むユーザー フォルダが含まれています。 file、アプリケーションのユースケース file、st_iso_app.cおよびboard_config.h fileNUCLEO-G071RB プラットフォーム用に提供されます。
BSPフォルダー
X-CUBE-ISO1ソフトウェアはXNUMXつの異なるコンポーネントを使用します fileこれらは BSP/Components 内にあります:
IPS1025
ips1025h_32.h と ips1025h_32.c fileIPS1025H-32とインターフェースするGPIOピン用の包括的なドライバ実装を提供し、すべてのピンの制御と障害検出のための完全な機能を備えています。 fileデバイスの初期化、チャネルステータスの設定とクリア、障害状態の検出、PWM機能の管理などの機能を実装します。ドライバは複数のデバイスとチャネルをサポートし、個々のチャネルとグループの両方で完全な機能を提供します。
CLT03
clt03_2q3.h と clt03_2q3.c fileCLT03-2Q3とインターフェースするGPIOピン用のフル機能ドライバを実装し、すべてのピン状態を完全に読み出すことができます。このドライバは、デバイスの初期化、個々のチャネル状態の読み取り、そして全チャネルの状態情報を同時に取得する機能を提供します。複数のデバイス構成をサポートし、効率的なチャネル管理のために内部状態を維持します。
X-CUBE-ISO1ソフトウェアAPIはXNUMXつの主要なソースに分かれています。 fileISO1A1 サブフォルダ内にある:
ISO1A1
ISO1A1 fileは、ボード構成、コンポーネント間の連携、および障害管理のために設計された包括的なAPI関数セットを網羅しています。これらの関数は、読み取りおよび書き込み操作、障害検出および更新を容易にし、主要なAPI関数をサポートする様々なヘルパーユーティリティも含まれています。さらに、 fileLED 制御、GPIO 初期化、割り込み処理、UART 通信の機能を提供します。
PWM API
PWM APIは、PWM信号の初期化、設定、開始、停止のための機能を提供します。指定されたタイマーピンのPWM周波数とデューティサイクルを設定できるため、PWM動作を正確に制御できます。
アプリケーションフォルダ
アプリケーションフォルダにはメインの fileファームウェアに必要なヘッダーとソースコードを含む file以下は、 fileこのフォルダ内:
- board_config.h: ボードの構成マクロ。
- main.c: メインプログラム(元のコード)ampISO1A1 のライブラリをベースにしたファイル)。
- st_iso_app.c: ボードのテストと構成のためのアプリケーション関数。
- stm32g0xx_hal_msp.c: HAL 初期化ルーチン。
- stm32g0xx_it.c: 割り込みハンドラー。
- syscalls.c: システムコールの実装。
- sysmem.c: システムメモリ管理。
- system_stm32g0xx.c: システムの初期化。
ソフトウェアに必要なリソース
Nucleoデバイスは、GPIOを介してX-NUCLEO-ISO1A1ボードを制御および通信します。そのため、X-NUCLEO-ISO1A1ボードに搭載された産業用IOデバイスの入力、出力、および障害検出のために、複数のGPIOを使用する必要があります。詳細およびジャンパー設定については、ハードウェアユーザーマニュアルUM3483を参照してください。
ボード構成 (board_config.h)
board_config.h file ボード構成に応じてソフトウェアを構成するための、使用するリソースと構成マクロを定義します。最大2枚のボード(2枚のボードのスタックなど)を処理できます。
ソフトウェアのDEFAULT設定は、ジャンパーがデフォルトの位置にあるX-NUCLEO-ISO1A1拡張ボードに合わせています。X-NUCLEO-ISO1A1のソフトウェアをデフォルト設定にするには、board_config.hのBOARD_ID_DEFAULTマクロのコメントを解除してください。 file.
ソフトウェアALTERNATE構成は、board_config.hのBOARD_ID_ALTERNATEマクロのコメントを解除することで設定されます。 file ボード上のジャンパーの位置を変更します。
スタックアップ構成で2枚のボードを同時に使用するには、BOARD_ID_DEFAULTマクロとBOARD_ID_ALTERNATEマクロの両方のコメントを解除し、一方のボードのジャンパーがデフォルト位置に、もう一方のボードが代替位置に設定されていることを確認してください。両方のボードを同じ構成(両方をデフォルト、または両方を代替)にすることは推奨されず、望ましくない動作を引き起こす可能性があります。
1 つのボードのみを実行する場合は、ソフトウェアが 1 つの構成のみに設定され、他の構成に対応するマクロがコメント化されていることを確認します。

プリスケーラ
board_config.h で適切なマクロを設定することで、PWM出力の周波数範囲を変更できます。プリスケーラ値を使用するには、対応するマクロのコメントを解除し、その他のマクロのコメントをコメントアウトしてください。デフォルトでは、DEFAULT_PRESCALAR が使用されます。
- プリスケーラ_1
- プリスケーラ_2
- デフォルト_プリスケーラ
プリスケーラ値はタイマー使用時にのみ使用され、基本的なI/O操作には必要ありません。プリスケーラマクロの値とそれに対応する周波数範囲は、コードドキュメントまたはコード自体で確認できます。
ハートビートLED
NUCLEO-G7RBボードへの接続が適切かどうかを確認するため、緑色のユーザーLED(D071)をハートビートのように点滅させるように設定できます。マクロHEARTBEAT_LED(コメントアウトなし)は、X-NUCLEO-ISO1A1がNUCLEOに接続された際に、緑色のLEDを点滅させます。点灯時間は1秒間、消灯時間は2秒間で、タイミングはタイマーによって制御されます。マクロを使用しない場合、またはLED関連の関数が呼び出される場合は、マクロのコメントアウトを解除してください。
入力および出力GPIO構成
X-NUCLEO-ISO1A1ボードは、それぞれ1つの入力ポートと1つの出力ポートを備えています。X-NUCLEO-ISOXNUMXAXNUMXボードをXNUMX枚重ねることで、ボードの機能を拡張し、XNUMXつのデジタル入力ポートとXNUMXつのデジタル出力ポートを利用できるようになります。付属のソフトウェアには、ポートの読み取り、設定、クリアを容易にする包括的なAPIが含まれています。さらに、これらのAPIを使用することで、すべてのポートを同時に設定、読み取り、クリアすることも可能です。API関数の詳細については、コードドキュメントおよび本書のAPIセクションをご覧ください。

ここで、DI という接頭辞はデジタル入力ポート、DO という接頭辞はデジタル出力ポートを表します。代替設定の場合、ソフトウェアは同じ命名規則を使用し、接尾辞に _alt を付けます。
次の表は、さまざまな IO ポートに対応するソフトウェアで定義されている GPIO マクロの詳細を示しています。
表2. デフォルトおよび代替ソフトウェア構成に割り当てられたGPIO
| 名前 | 関数 | デフォルト設定 | 代替構成 |
| 入力ピン | 入力ピン1 | GPIOC、IA0_IN_1_PIN | GPIOD、IA0_IN_1_PIN |
| 入力ピン2 | GPIOD、IA1_IN_2_PIN | GPIOC、IA1_IN_1_PIN | |
| 出力ピン | 出力ピン1 | GPIOC、QA0_CNTRL_1_PIN | GPIOD、QA0_CNTRL_1_PIN |
| 出力ピン2 | GPIOC、QA1_CNTRL_2_PIN | GPIOC、QA1_CNTRL_2_PIN | |
| フォルトピン | 故障ピン1 | GPIOC、FLT1_QA0_2_OT_PIN | GPIOD、FLT1_QA0_1_OT_PIN |
| 故障ピン2 | GPIOC、FLT2_QA0_2_OL_PIN | GPIOD、FLT2_QA0_1_OL_PIN | |
| 故障ピン3 | GPIOC、FLT1_QA1_2_OT_PIN | GPIOC、FLT1_QA1_1_OT_PIN | |
| 故障ピン4 | GPIOC、FLT2_QA1_1_OL_PIN | GPIOD、FLT2_QA1_2_OL_PIN | |
| 構成マクロ | ボードIDデフォルト | ボードID代替 |
タイマーとPWM
X-CUBE-ISO1ファームウェアでは、タイマーを使用して特定のピンにPWM信号を生成することができます。デフォルトでは、TIM3以外のタイマーは初期化されていません。PWM信号を生成する前に、それぞれのタイマーを初期化し、それぞれの出力ポートをPWMモードで初期化する必要があります。
通常のGPIO入出力操作では、タイマーや出力ポートはデフォルトで自動的に設定されるので、設定する必要はありません。ただし、出力ピンをPWMモードに設定した場合は、GPIOピンとして使用するにはGPIOモードに再設定する必要があります。
注記: 出力ピンがPWM生成に使用されている場合、GPIO出力は無効になります。両方の機能を同時に実装することはできません。PWM使用後にGPIOを再度有効にするには、API関数ST_ISO_BoardConfigureDefault()またはST_ISO_InitGPIO()を呼び出してすべてのポートを一度にGPIOに設定するか、特定のGPIOポートとピンを指定してST_ISO_Init_GPIO()を呼び出すことができます。
前述の通り、ソフトウェアはデフォルトでタイマーTIM3を使用します。これは、ユーザーLEDタイミング、クロック、UARTタイミングの実装に使用されます。デフォルトでは1秒周期に設定されています。
次の表は、コード内の各ピンで使用できるタイマーの詳細を示しています。
表3. 各ピンで利用可能なタイマー
| ピン名 | ソフトウェア表現 | タイマー | タイマーチャンネル | 代替機能 |
| QA0_CNTRL_1_PIN | QA_0 | ティム2 | ティム_チャンネル_4 | GPIO_AF2_TIM2 |
| QA1_CNTRL_2_PIN | QA_1 | ティム1 | ティム_チャンネル_3 | GPIO_AF2_TIM1 |
| QA0_CNTRL_2_PIN | QA_0_ALT | ティム1 | ティム_チャンネル_4 | GPIO_AF2_TIM1 |
| QA1_CNTRL_1_PIN | QA_1_ALT | ティム17 | ティム_チャンネル_1 | GPIO_AF2_TIM17 |
ファームウェアの追加ユーティリティ
ファームウェアには、X-NUCLEO-ISO1A1評価ボードの機能を強化するための追加ユーティリティが含まれています。以下にその一部を紹介します。
シリアル
UART通信機能により、TeraTerm、PuTTYなどのPCユーティリティや類似アプリケーションを介して、ボードの状態をリアルタイムで監視およびデバッグできます。このソフトウェアは、NUCLEO-G071RBボードに搭載されているUARTを介してUARTデータ転送を可能にします。`ST_ISO_UART`関数は、システムの稼働時間、ファームウェア構成、障害ステータスなど、詳細なボードステータス情報をUART経由で送信します。このデータは、 viewTeraTermなどのシリアルポートアプリケーションを使用して接続できます。`ST_ISO_APP_DIDOandUART`関数は、デジタル入出力操作とUART通信を組み合わせ、指定された間隔ですべての入出力チャネルの状態を送信します。以下は設定値です。ampTeraTermでのデータの表示形式を示します。ポート名はシステムと使用しているシリアルポートによって異なる場合があります。


IOピンモード設定
IOピンモード設定ユーティリティでは、ST_ISO_BoardConfigure()関数を使用して、ボードの入出力ポートを設定できます。この関数は、0つの出力ポート(QA1、QA0)と1つの入力ポート(IAXNUMX、IAXNUMX)を、入出力モード、PWM出力モード、または割り込み入力モードに設定できます。パラメータを調整してこの関数を呼び出すことで、ユーザーはボードのIO構成を特定のニーズに合わせて簡単にカスタマイズできます。
入出力モードでは、ユーティリティは汎用デジタル演算用にGPIOピンを初期化します。PWM出力モードでは、正確なPWM信号制御のためにタイマーを設定します。割り込み入力モードでは、ユーティリティは割り込みを処理するようにピンを設定し、応答性の高いイベントドリブンプログラミングを可能にします。
割り込み処理
FAULT信号を処理するため、ソフトウェアは関連する割り込みラインを有効にし、応答性の高いイベント駆動型プログラミングを可能にします。これらの割り込みには、カスタマイズされたハンドラを関連付けることができます。
APIで定義されているHAL_GPIO_EXTI_Rising_Callback関数。ソフトウェアには、ST_ISO_BoardConfigure関数を介してGPIOピンを割り込みモードで初期化し、EXTI IRQハンドラで特定のアクションを設定する機能が含まれています。これにより、ユーザーはボードが外部イベントにどのように応答するかをカスタマイズし、さまざまな障害状態やトリガーを効果的に管理できるようになります。
APIについて
X-CUBE-ISO1ソフトウェアAPIは、PWM信号生成やGPIO操作など、X-NUCLEO-ISO1A1ボードを制御および監視するための包括的な機能セットを提供します。このAPIは使いやすく、様々なアプリケーションに統合できるように設計されており、ボードの機能を柔軟に制御できます。
X-CUBE-ISO1ソフトウェアAPIはBSP/ISO1A1フォルダに定義されています。その関数にはST_ISOという接頭辞が付きます。このAPIは、iso1a1.cおよびpwm_api.cを通じてアプリケーションから参照できます。 files は定数、データ構造、および関数の組み合わせです。
Sample ファームウェア アプリケーションはこれらの API を利用して、これらの機能の可能な使用法のいくつかを示します。
X-CUBE-ISO1 ソフトウェア パッケージは、次の XNUMX セットの API を提供します。
- ISO1A1 API
- PWM API
ISO1A1 API
ISO1A1 APIはiso1a1.hとiso1a1.cで定義されています。 fileGPIO入出力操作や障害検出など、ISO1A1ボードを構成および制御するための機能を提供します。
主な機能
- ST_ISO_BoardConfigureDefault: ボードの IO ポートをデフォルトの GPIO 構成で構成します。
- ST_ISO_BoardConfigure: ボードの入力ポートと出力ポートのモードを構成します。
- ST_ISO_BoardInit: ボードのハードウェアを初期化します。
- ST_ISO_BoardMapInit: チャネル ハンドルの構成に基づいてボード機能を初期化します。
- ST_ISO_GetFWVersion: 現在のファームウェア バージョンを返します。
- ST_ISO_GetChannelHandle: 指定されたチャネル名のチャネル ハンドルを取得します。
- ST_ISO_InitGPIO: 指定されたモジュール ID で指定された GPIO ピンを初期化します。
- ST_ISO_InitInterrupt: 指定された GPIO ピンを、指定されたモジュール ID を持つ割り込みとして初期化します。
- ST_ISO_EnableFaultInterrupt: 障害 GPIO ピンを割り込みモードで初期化します。
- ST_ISO_SetChannelStatus: 指定されたチャネルのステータスを設定します。
- ST_ISO_SetOne_DO: 単一のデジタル出力チャネルを設定します。
- ST_ISO_ClearOne_DO: 単一のデジタル出力チャネルをクリアします。
- ST_ISO_WriteAllChannels: すべてのデジタル出力チャネルにデータを書き込みます。
- ST_ISO_GetOne_DI: 単一のデジタル入力チャネルのステータスを取得します。
- ST_ISO_ReadAllChannel: すべての入力チャネルのステータスを読み取ります。
- ST_ISO_ReadAllOutputChannel: すべての出力チャネルのステータスを読み取ります。
- ST_ISO_ReadFaultStatus: すべての障害検出ポートから障害ステータスを読み取ります。
- ST_ISO_ReadFaultStatusPolling: ポーリング モードでボードの障害検出をテストします。
- ST_ISO_DisableOutputChannel: そのチャネルの出力を無効にします。
- ST_ISO_UpdateBoardStatusInfo: ボードのステータス情報を更新します。
- ST_ISO_UpdateFaultStatus: 特定のチャネルの障害ステータスを更新します。
- ST_ISO_BlinkLed: 指定された遅延と繰り返し回数で指定された LED を点滅させます。
- ST_ISO_UART: ボードのステータス情報を UART 経由で送信します。
- ST_ISO_SwitchInit: スイッチ コンポーネントを初期化します。
- ST_ISO_SwitchDeInit: スイッチ インスタンスを初期化解除します。
- ST_ISO_DigitalInputInit: デジタル入力コンポーネントを初期化します。
- ST_ISO_DigitalInputDeInit: デジタル入力インスタンスを初期化解除します。
PWM API
PWM APIはpwm_api.hとpwm_api.cで定義されています。 file特定のピンのPWM信号を初期化および制御するための次の機能を提供します。
- ST_ISO_Init_PWM_Signal: PWM 信号のタイマーと特定のピンを初期化します。
- ST_ISO_Set_PWM_Frequency: 特定のピンの PWM 周波数を設定します。
- ST_ISO_Set_PWM_Duty_Cycle: 特定のピンの PWM デューティ サイクルを設定します。
- ST_ISO_Start_PWM_Signal: 特定のピンで PWM 信号を開始します。
- ST_ISO_Stop_PWM_Signal: 特定のピンの PWM 信号を停止します。
各チャネルでPWM信号を開始するには、まずST_ISO_Init_PWM_Signal関数を呼び出し、次にST_ISO_Set_PWM_Frequencyを呼び出して希望の周波数とデューティサイクルを設定し、
ST_ISO_Set_PWM_Duty_Cycle 関数をそれぞれ呼び出して、ST_ISO_Start_PWM_Signal 関数を呼び出して PWM 信号を開始し、ST_ISO_Stop_PWM_Signal を呼び出して停止することができます。
この関数は、対応するピン名と使用可能なタイマーで呼び出す必要があります。タイマーの詳細は、表 3 に記載されています。異なる出力チャネルは、異なる周波数とデューティ サイクルで設定できます。周波数またはデューティ サイクルを変更しても、他には影響せず、同じままです。
ユーザーが利用できる API に関する詳細な技術情報は、コンパイルされた HTML にあります。 file すべての機能とパラメーターが完全に説明されているソフトウェアパッケージの「Documentation」フォルダー内にあります。
アプリケーションの説明
デモアプリケーションはいくつかのシンプルなユースケースを実装しています。st_iso_appとboard_config fileボードとそのアプリケーション機能の設定と使用において、これらの設定は重要な役割を果たします。これらの機能を使用する前に、ボードとソフトウェアの設定が互いに同期していることを確認してください。
アプリケーション関数 (st_iso_app.h および st_iso_app.c)
アプリケーション関数はST_ISO_APPという接頭辞を持ちます。これらはユーザーに見えるトップレベルの関数であり、API関数を呼び出して実装します。アプリケーション関数はmain.cで呼び出すことができます。 file 機能するため。
- ユースケースの選択: ユーザーはst_iso_app.cで希望するユースケースマクロのコメントを解除できます。 filemain.c で呼び出される関数 ST_ISO_APP_SelectUseCaseMacro() がそのユースケースを初期化し、関数 ST_ISO_APP_SelectedFunction() が main.c 内でそれを実装します。このアプローチにより、マクロ定義を変更するだけで動作モードを簡単に設定でき、選択されたユースケースに基づいて適切な機能が実行されるようになります。デフォルトではユースケース DIDO が選択されており、ユーザーはこれを実装するためにコードを変更する必要はありません。
- デジタル入力からデジタル出力へのミラーリング (ST_ISO_APP_UsecaseDIDO): この関数は、すべての入力チャネルのステータスを読み取り、同じステータスをすべての出力チャネルに書き込みます。デジタル入力をデジタル出力にミラーリングする場合に便利です。
- UARTによるデジタル入力からデジタル出力へのミラーリング(ST_ISO_APP_DIDOandUART):この関数は、ST_ISO_APP_UsecaseDIDO関数と同様に、デジタル入力をデジタル出力にミラーリングします。さらに、NucleoデバイスのUARTインターフェースを介してボードの状態を送信し、その状態をNucleoデバイスに通知します。 viewTera Term などのアプリケーションを使用してシリアル ポートに接続します。
- テストケース関数 (ST_ISO_APP_TestCase): この関数は、ボードの構成に基づいて一連のテストとアクションを実行します。障害状態をチェックし、2つのデジタル入力チャネルの状態を読み取り、その値に基づいてアクションを実行します。この関数は、ボードのパフォーマンスと機能を迅速に評価し、さまざまなLEDパターンを通じて視覚的なフィードバックを得るのに役立ちます。board_config.h の HEARTBEAT_LED マクロを確認してください。 file 適切な LED パターンを観察するようにコメントされています。
- PWM生成 (ST_ISO_APP_PWM _OFFSET): この関数は、両方の出力チャネルで周波数1Hz、デューティ比50%のPWM信号を生成します。PWM信号を初期化し、周波数とデューティ比を設定し、指定されたボードIDのPWM信号を生成します。PWM信号は両チャネル間にオフセットを設けて生成されるため、位相は一致しません。
- 障害検出テスト(ST_ISO_APP_FaultTest):この関数は、スマート出力モジュールIPS1025の内蔵診断ピンをポーリングモードまたは割り込みモードで動作させることで、障害検出を評価します。障害検出モードの設定、障害検出の初期化、および選択されたモードに基づく障害ステータス構造体の更新を行います。この関数は、障害を効果的に検出して処理することで、ボードの信頼性と安全性を確保するために不可欠です。ポーリングモードでは、障害ステータスはタイマーを使用してXNUMX秒ごとに更新され、defaultBoardFaultStatusまたはalternateBoardFaultStatus構造体に反映されます。割り込みモードでは、障害が発生した場合にのみ障害ステータスが更新され、ソフトウェアが対応する出力ポートをクリアするようにトリガーします。
- PWM変動テスト(ST_ISO_APP_PwmVariationTest):この関数は、ボード構成に基づいて、異なる出力チャネルにおけるPWM(パルス幅変調)信号の変動をテストするように設計されています。デフォルトおよび代替ボード構成の両方でPWM信号を初期化し、周波数を100 Hz、初期デューティサイクルを0%に設定します。その後、デューティサイクルを0%から100%まで5%ずつ増加させ、100%から0%まで5%ずつ減少させます。各ステップ間の遅延は2秒です。この制御された変動により、デフォルトボードのチャネルQA_0とQA_1、代替ボードのチャネルQA_0_ALTとQA_1_ALTにおけるPWM信号の動作を観察および評価できます。
これらの構成に従い、提供されているアプリケーション機能を利用することで、さまざまなデモンストレーション ユース ケースに X-NUCLEO-ISO1A1 ボードを効果的にセットアップして使用できます。
システムセットアップガイド
ハードウェアの説明
STM32 Nucleoプラットフォーム
STM32 Nucleo開発ボードは、ユーザーがSTM32マイクロコントローラーラインを使用してソリューションをテストし、プロトタイプを作成するための手頃で柔軟な方法を提供します。
Arduino® 接続サポートと ST morpho コネクタにより、幅広い専用拡張ボードから選択して STM32 Nucleo オープン開発プラットフォームの機能を簡単に拡張できます。
STM32 Nucleo ボードには、ST-LINK/V2-1 デバッガー/プログラマーが統合されているため、個別のプローブは必要ありません。
STM32 Nucleoボードには、包括的なSTM32ソフトウェアHALライブラリとさまざまなパッケージソフトウェアが付属しています。ampレ。

STM32 Nucleoボードに関する情報は以下から入手できます。 詳しくはこちら
X-NUCLEO-ISO1A1拡張ボード
X-NUCLEO-ISO1A1は、STM32 Nucleoボードを拡張し、マイクロPLC機能を提供するために設計された、絶縁型産業用入出力を備えた評価ボードです。X-NUCLEO-ISO1A1ボードを32枚、STM1577 Nucleoボード上に積み重ねて使用できます。拡張ボード上のジャンパーを適切に選択することで、GPIOインターフェースの競合を回避できます。UL620認証のデジタルアイソレータSTISO621およびSTISO03は、ロジック側コンポーネントとプロセス側コンポーネント間の絶縁を提供します。プロセス側からの2つの電流制限ハイサイド入力は、CLT3-03Q2を介して実現されます。CLT3-61000Q4は、IEC2-61000-4、IEC4-61000-4、IEC5-1025-32などの規格に準拠するように設計されており、産業環境における保護、絶縁、およびエネルギーレスステータス表示を提供します。ハイサイドスイッチIPS32H-5.6/HQ-1は、診断機能とスマートドライブ機能を備え、最大1Aの保護出力を提供します。容量性、抵抗性、または誘導性負荷を駆動できます。X-NUCLEO-ISO1AXNUMXは、X-CUBE-ISOXNUMXソフトウェアパッケージを使用して、オンボードICの迅速な評価を可能にします。

ハードウェアのセットアップ
次のハードウェアコンポーネントが必要です。
- STM32 Nucleo 開発プラットフォーム 71 個 (推奨注文コード: NUCLEO-GOXNUMXRB)
- 産業用デジタル出力拡張ボード 1 枚 (注文コード: X-NUCLEO-ISO1AXNUMX)
- STM32 NucleoをPCに接続するためのUSBタイプA-マイクロUSBケーブルXNUMX本
- X-NUCLEO-ISO24A1 拡張ボードに電力を供給するための外部電源 (1 V) と関連ワイヤ。
ソフトウェアのセットアップ
X-NUCLEO-ISO32A1 拡張ボードを搭載した STM1 Nucleo 用のアプリケーションを作成するための適切な開発環境をセットアップするには、次のソフトウェア コンポーネントが必要です。
- X-CUBE-ISO1:STM32Cube用の拡張ボードで、X-NUCLEO-ISO1A1ボードを使用するアプリケーション開発に最適です。X-CUBE-ISO1ファームウェアと関連ドキュメントは以下から入手できます。 詳しくはこちら
- 開発ツールチェーンとコンパイラ: STM32Cube 拡張ソフトウェアは、次の XNUMX つの環境をサポートしています。
- IAR Embedded Workbench for ARM® (IAR-EWARM) ツールチェーン
- 本物View マイクロコントローラ開発キット (MDK-ARM-STM32) ツールチェーン
- STM32CubeIDE。
ボードのセットアップ
ボードは、ハードウェアユーザーマニュアル(UM3483)に記載されている適切なジャンパー設定で構成する必要があります。これらのガイドラインに厳密に従うことは、適切な機能を確保し、潜在的な問題を回避するために不可欠です。
システムセットアップガイド
このセクションでは、STM32 Nucleo、NUCLEO-G071RB ボードと X-NUCLEO-ISO1A1 拡張ボード上でアプリケーションを開発および実行する前に、さまざまなハードウェア パーツを設定する方法について説明します。


X-CUBE-ISO1拡張パッケージのセットアップ
X-NUCLEO-ISO1A1は、ボードの動作構成に応じて、特定のジャンパー位置で設定する必要があります。詳細については、ハードウェアマニュアルをご覧ください。
- ステップ1。 morphoconnectors を介して、X-NUCLEO-ISO1A1 拡張ボードを STM32 Nucleo の上に差し込みます。
ボードを 11 枚重ねて使用する場合は、図 XNUMX のように積み重ねます。 - ステップ2。 ボードに電源を供給するには、USB ケーブルを使用して STM32 Nucleo ボードを USB コネクタ CN1 経由で PC に接続します。
- ステップ3。 X-NUCLEO-ISO1A1拡張ボードのJ1を24V DC電源に接続して電源を入れます。スタックされたボードを使用する場合は、両方のボードに電源が入っていることを確認してください。
- ステップ4。 希望するツールチェーン (Keil の MDK-ARM、IAR の EWARM、または STM32CubeIDE) を開きます。
- ステップ5。 ソフトウェア プロジェクトを開き、board_config.h に必要な変更を加えます。 file 使用されているボードの構成に応じて異なります。
- ステップ6。 st_iso_app.c で適切なユースケースマクロを設定します。 file または、main.c の ST_ISO_APP_SelectUseCase 関数を使用して必要なユースケースを呼び出します。 file その他の必要な機能も提供します。
- ステップ7。 プロジェクトをビルドしてすべてをコンパイルする fileコンパイルされたコードを STM32 Nucleo ボードのメモリにロードします。
- ステップ8。 STM32 Nucleo ボード上でコードを実行し、期待される動作を確認します。
改訂履歴
表4. 文書の改訂履歴
| 日付 | リビジョン | 変更点 |
| 14年2025月XNUMX日 | 1 | 初回リリース。 |
重要なお知らせ – よくお読みください
STMicroelectronics NV およびその子会社 (以下「ST」) は、ST 製品および/またはこのドキュメントを予告なしにいつでも変更、修正、拡張、修正、および改善する権利を留保します。購入者は、注文を行う前に ST 製品に関する最新の関連情報を入手する必要があります。ST 製品は、注文確認時に適用される ST の販売条件に従って販売されます。
ST 製品の選択、選択、使用については購入者が単独で責任を負い、ST は購入者の製品の適用支援や設計については一切責任を負いません。
ST は、明示的か黙示的かを問わず、いかなる知的財産権のライセンスも付与しません。
ここに記載されている情報と異なる規定を伴う ST 製品を再販した場合、当該製品に対して ST が付与した保証は無効になります。
STおよびSTロゴはSTの商標です。 STの商標の詳細については、www.st.com/trademarksを参照してください。 他のすべての製品名またはサービス名は、それぞれの所有者に帰属します。
このドキュメントの情報は、このドキュメントの以前のバージョンで以前に提供された情報に優先し、置き換えられます。
© 2025 STマイクロエレクトロニクス – 無断転載を禁じます
ドキュメント / リソース
![]() |
STマイクロエレクトロニクス UM3469 X-CUBE-ISO1 ソフトウェア拡張 [pdf] ユーザーマニュアル X-NUCLEO-ISO1A1、NUCLEO-G071RB、UM3469 X-CUBE-ISO1 ソフトウェア拡張、UM3469、X-CUBE-ISO1 ソフトウェア拡張、ソフトウェア拡張 |

