STM32WL3xロゴ

STM32WL3x ソフトウェア パッケージ

STM32WL3x-ソフトウェア-パッケージ-製品

仕様

  • 製品名: STM32CubeWL3 ソフトウェア パッケージ
  • 互換性: STM32WL3x マイクロコントローラ
  • 主な特徴:
    • 低層 (LL) およびハードウェア抽象化レイヤー (HAL) API
    • SigfoxTM、FatFS、FreeRTOSTMカーネルミドルウェアコンポーネント
    • アプリケーションとデモンストレーション

製品使用説明書

はじめる
STM32CubeWL3 ソフトウェア パッケージの使用を開始するには、次の手順に従います。

  1. 公式からソフトウェアパッケージをダウンロードしてください webサイト。
  2. 必要な開発環境(STM32CubeIDE、EWARM、MDK-ARMなど)をインストールします。
  3. 元を参照ampガイダンス用に提供されたファイルとアプリケーション。

STM32CubeWL3アーキテクチャオーバーview
STM32CubeWL3ソフトウェアパッケージは、XNUMXつの主要なレベルを中心に構築されています。

  • レベル0: ハードウェア抽象化レイヤー (HAL) と BSP ドライバー。
  • レベル1: アプリケーション、ライブラリ、およびプロトコルベースのコンポーネント。

よくある質問(FAQ)

Q: STM32CubeWL3 ソフトウェア パッケージの主な機能は何ですか?
A: 主な機能には、低層および HAL API、SigfoxTM、FatFS、FreeRTOSTM カーネルなどのミドルウェア コンポーネント、アプリケーション、デモンストレーションが含まれます。

導入

STM32Cube は、開発の労力、時間、コストを削減することで設計者の生産性を大幅に向上させる STMicroelectronics 独自の取り組みです。 STM32Cube は、STM32 ポートフォリオ全体をカバーします。

STM32Cubeには次のものが含まれます。

  • 構想から実現までのプロジェクト開発をカバーする、ユーザーフレンドリーなソフトウェア開発ツールのセット。
    • STM32CubeMX、グラフィカルウィザードを使用してC初期化コードの自動生成を可能にするグラフィカルソフトウェア構成ツール
    • STM32CubeIDE、ペリフェラル構成、コード生成、コードコンパイル、およびデバッグ機能を備えたオールインワン開発ツール
    • STM32CubeCLT、コードコンパイル、ボードプログラミング、デバッグ機能を備えたオールインワンのコマンドライン開発ツールセット
    • STM32CubeProgrammer(STM32CubeProg)、グラフィカルバージョンとコマンドラインバージョンで利用可能なプログラミングツール
    • STM32CubeMonitor (STM32CubeMonitor、STM32CubeMonPwr、STM32CubeMonRF、STM32CubeMonUCPD)、STM32 アプリケーションの動作とパフォーマンスをリアルタイムで微調整する強力な監視ツール
  • STM32Cube MCU および MPU パッケージは、各マイクロコントローラおよびマイクロプロセッサ シリーズ (STM32WL3x 製品ラインの STM32CubeWL3 など) に固有の包括的な組み込みソフトウェア プラットフォームであり、次のものが含まれます。
    • STM32Cubeハードウェアアブストラクションレイヤー(HAL)、STM32ポートフォリオ全体で最大の移植性を保証
    • STM32Cubeの低層APIにより、ハードウェアに対する高度なユーザー制御で最高のパフォーマンスとフットプリントが保証されます。
    • FreeRTOS™カーネル、FatFS、Sigfox™などの一貫したミドルウェアコンポーネントのセット
    • 周辺機器とアプリケーションの完全なセットを備えたすべての組み込みソフトウェアユーティリティampレ
  • STM32Cube拡張パッケージ。STM32CubeMCUおよびMPUパッケージの機能を補完する組み込みソフトウェアコンポーネントが含まれています。
    • ミドルウェア拡張機能とアプリケーションレイヤー
    • Exampいくつかの特定のSTMicroelectronics開発ボードで実行されているファイル

このユーザー マニュアルでは、STM32CubeWL3 MCU パッケージの使用を開始する方法について説明します。
セクション2ではSTM32CubeWL3の主な機能について説明し、セクション3ではview アーキテクチャと MCU パッケージ構造について説明します。

一般情報

STM32CubeWL3 は、Arm® Cortex®‑M32+ プロセッサをベースにした STM3WL0x 製品ライン マイクロコントローラ上で、Sigfox™ バイナリを含むサブ GHz デモ アプリケーションを実行します。
STM32WL3x マイクロコントローラには、STMicroelectronics の最先端のサブ GHz 準拠 RF 無線周辺機器が組み込まれており、超低消費電力と優れた無線性能に最適化されており、比類のないバッテリ寿命を実現します。
注記Arm は、米国およびその他の国における Arm Limited (またはその子会社) の登録商標です。

STM32CubeWL3の主な機能

  • STM32CubeWL3 MCU パッケージは、Arm® Cortex®‑M32+ プロセッサをベースにした STM32 0 ビット マイクロコントローラ上で動作します。STM32WL3x 製品ライン マイクロコントローラ用のアプリケーションを開発するために必要なすべての汎用組み込みソフトウェア コンポーネントを XNUMX つのパッケージにまとめています。
  • このパッケージには、マイクロコントローラハードウェアをカバーする低層(LL)およびハードウェア抽象化層(HAL)APIと、広範なexampSTMicroelectronics ボード上で実行されるファイルです。HAL および LL API は、ユーザーの利便性のためにオープンソース BSD ライセンスで提供されています。また、Sigfox™、FatFS、FreeRTOS™ カーネル ミドルウェア コンポーネントも含まれています。
  • STM32CubeWL3 MCU パッケージは、すべてのミドルウェア コンポーネントを実装するいくつかのアプリケーションとデモも提供します。
  • STM32CubeWL3 MCU パッケージのコンポーネント レイアウトを図 1 に示します。

図1. STM32CubeWL3 MCUパッケージのコンポーネント 

STM32WL3x ソフトウェア パッケージ (2)

STM32CubeWL3アーキテクチャview

STM32CubeWL3 MCU パッケージ ソリューションは、図 2 に示すように、簡単に相互作用する XNUMX つの独立したレベルを中心に構築されています。 STM32WL3x ソフトウェア パッケージ (3)レベル0
このレベルは 3 つのサブレイヤーに分割されています。

  • ボードサポートパッケージ (BSP)。
  • ハードウェア抽象化レイヤー (HAL):
    • HAL 周辺機器ドライバー
    • 低層ドライバー
  • 基本的な周辺機器の使用例ampレ。

ボードサポートパッケージ(BSP)
このレイヤーは、ハードウェア ボード内のハードウェア コンポーネント (LED、ボタン、COM ドライバーなど) に関連する API セットを提供します。このレイヤーは、次の 2 つの部分で構成されます。

  • 成分:
    これは、STM32 ではなく、ボード上の外部デバイスに関連するドライバーです。コンポーネント ドライバーは、BSP ドライバーの外部コンポーネントに特定の API を提供し、他のボードに移植できます。
  • BSP ドライバー:

コンポーネント ドライバーを特定のボードにリンクし、ユーザー フレンドリな API セットを提供します。API の命名規則は BSP_FUNCT_Action() です。
Exampファイル: BSP_LED_Init()、BSP_LED_On()
BSP はモジュラー アーキテクチャに基づいており、低レベルのルーチンを実装するだけであらゆるハードウェアに簡単に移植できます。

ハードウェア抽象化層 (HAL) および低層 (LL)
STM32CubeWL3 HAL と LL は補完的であり、幅広いアプリケーション要件をカバーします。

  • HAL ドライバーは、高レベルの機能指向の移植性の高い API を提供します。 MCU と周辺機器の複雑さをエンドユーザーに隠します。
    HALドライバは、汎用のマルチインスタンス機能指向APIを提供し、すぐに使用できるプロセスを提供することでユーザーアプリケーションの実装を簡素化します。例:ampたとえば、通信周辺機器 (I2C、UART など) については、周辺機器の初期化と構成、ポーリング、割り込み、または DMA プロセスに基づくデータ転送の管理、通信中に発生する可能性のある通信エラーの処理を可能にする API を提供します。HAL ドライバー API は、次の XNUMX つのカテゴリに分かれています。
  1. 汎用 API。すべての STM32 シリーズ マイクロコントローラーに共通の汎用機能を提供します。
  2. 拡張 API。特定のファミリまたは特定の部品番号に特定のカスタマイズされた機能を提供します。
  • 低層 API はレジスタ レベルで低レベル API を提供しますが、最適化は優れていますが移植性は低くなります。MCU と周辺機器の仕様に関する深い知識が必要です。
    LL ドライバーは、HAL よりもハードウェアに近い、高速で軽量な専門家向けレイヤーを提供するように設計されています。 HAL とは対照的に、LL API は、最適化されたアクセスが重要な機能ではないペリフェラルや、重いソフトウェア構成や複雑な上位レベルのスタックを必要とするペリフェラルには提供されません。

LL ドライバーの特徴は次のとおりです。

  • データ構造で指定されたパラメータに従って周辺の主な機能を初期化するための関数のセット。
  • 各フィールドに対応するリセット値を初期化データ構造に入力する一連の関数。
  • 周辺機器の初期化解除(周辺機器レジスタをデフォルト値に復元)の機能。
  • 直接およびアトミックなレジスタ アクセスのためのインライン関数のセット。
  • HAL から完全に独立しており、スタンドアロン モード (HAL ドライバーなし) で使用できる機能。
  • サポートされる周辺機能を完全にカバーします。

基本的な周辺機器の使用例ampレ
この層は元を囲みますampHAL および BSP リソースのみを使用して STM32 ペリフェラル上に構築されたファイル。
デモンストレーション例ampより複雑な例を表示するためのリストも用意されていますampMRSUBG や LPAWUR などの特定の周辺機器を使用したシナリオ。

レベル1
このレベルは 2 つのサブレイヤーに分かれています。

  • ミドルウェアコンポーネント
  • Exampミドルウェアコンポーネントに基づくファイル

ミドルウェアコンポーネント
ミドルウェアは、FreeRTOS™ カーネル、FatFS、および Sigfox™ プロトコル ライブラリをカバーするライブラリのセットです。このレイヤーのコンポーネント間の水平方向の相互作用は、機能 API を呼び出すことによって行われます。
低層ドライバーとの垂直対話は、ライブラリ システム コール インターフェイスに実装された特定のコールバックと静的マクロを通じて行われます。
各ミドルウェア コンポーネントの主な機能は次のとおりです。

  • FreeRTOS™ カーネル: 組み込みシステム向けに設計されたリアルタイム オペレーティング システム (RTOS) を実装します。
  • Sigfox™: Sigfox™ プロトコル ネットワークに準拠した Sigfox™ プロトコル ライブラリを実装し、RF Sigfox™ ツールに対してテストするための RF テスト プロトコル ライブラリが含まれています。
  • FatFS: 汎用FATを実装 file システムモジュール。

Exampミドルウェアコンポーネントに基づくファイル
各ミドルウェア コンポーネントには 1 つ以上の ex が付属しています。ampアプリケーションとも呼ばれるファイルの使用方法を示します。統合例ampいくつかのミドルウェア コンポーネントを使用するファイルも提供されます。

STM32CubeWL3ファームウェアパッケージ終了view

サポートされているSTM32WL3xデバイスとハードウェア
STM32Cube は、汎用アーキテクチャに基づいて構築された、移植性の高いハードウェア抽象化レイヤー (HAL) を提供します。これにより、どの MCU が使用されているかを詳細に知らなくても、ミドルウェア レイヤーを使用して機能を実装するなど、レイヤーを積み重ねる原則が可能になります。これにより、ライブラリ コードの再利用性が向上し、他のデバイスへの移植が容易になります。

  • さらに、STM32CubeWL3 は階層化アーキテクチャを採用しており、すべての STM32WL3x 製品ラインを完全にサポートします。
  • ユーザーは stm32wl3x.h で適切なマクロのみを定義する必要があります。

表 1 は、使用する STM32WL3x 製品ライン デバイスに応じて定義するマクロを示しています。このマクロは、コンパイラ プリプロセッサでも定義する必要があります。
表1. STM32WL3x製品ラインのマクロ

マクロ定義 stm32wl3x.h STM32WL3x製品ラインデバイス
stm32wl33 STM32WL33xx マイクロコントローラ

STM32CubeWL3は豊富なexセットを備えていますampファイルとアプリケーションをあらゆるレベルでサポートし、HALドライバやミドルウェアコンポーネントを簡単に理解して使用できるようにします。ampファイルは、表 2 にリストされている STMicroelectronics ボード上で実行されます。

ボード STM32WL3xボード対応デバイス
核-WL33CC1 STM32WL33CC
核-WL33CC2 STM32WL33CC

STM32CubeWL3 MCUパッケージは、互換性のあるハードウェア上で実行できます。ユーザーは、BSPドライバを更新するだけで、提供されたexを移植できます。amp同じハードウェア機能 (LED やボタンなど) がある場合は、ボード上のファイルも同じになります。

ファームウェアパッケージが終了しましたview
STM32CubeWL3 MCU パッケージ ソリューションは、図 3 に示す構造を持つ単一の zip パッケージで提供されます。
図3. STM32CubeWL3ファームウェアパッケージ構造

STM32WL3x ソフトウェア パッケージ (4)

注意:

ユーザーはコンポーネントを変更してはならない files. ユーザーは \Projects ソースのみを編集できます。
各ボードに対して、ex のセットamples には、EWARM、MDK-ARM、および STM32CubeIDE ツールチェーン用の事前構成済みプロジェクトが付属しています。
図 4 は、NUCLEO-WL33CCx ボードのプロジェクト構造を示しています。 STM32WL3x ソフトウェア パッケージ (5)

元ampファイルは、適用される STM32CubeWL3 レベルに応じて分類されます。名前は次のように付けられます。

  • レベル0exampファイルはExと呼ばれますampレス、元amples_LL、およびExamples_MIX。それぞれHALドライバー、LLドライバー、およびミドルウェアコンポーネントなしでHALとLLドライバーの混合を使用します。デモ例amplesもご利用いただけます。
  • レベル1exampファイルはアプリケーションと呼ばれます。各ミドルウェア コンポーネントの一般的な使用例を提供します。

特定のボードのファームウェア アプリケーションは、Templates および Templates_LL ディレクトリで使用可能なテンプレート プロジェクトを使用して簡単に構築できます。

Exampレス、元amples_LL、およびExamples_MIX は同じ構造を持ちます:

  • すべてのヘッダーを含む\Incフォルダ files.
  • ソースコードを含む \Src フォルダー。
  • 各ツールチェーンの事前構成されたプロジェクトを含む \EWARM、\MDK-ARM、および \STM32CubeIDE フォルダー。
  • ex について説明した readme.md および readme.htmlample の動作と、それを機能させるために必要な環境。

STM32CubeWL3 を使い始める

最初の元カレを実行するample
このセクションでは、最初のexを実行するのがいかに簡単かを説明します。ampSTM32CubeWL3 内の le。例として、NUCLEO-WL33CC1 ボード上で実行される単純な LED トグルの生成を使用します。

  1. STM32CubeWL3 MCU パッケージをダウンロードします。
  2. 任意のディレクトリに解凍するか、提供されている場合はインストーラーを実行します。
  3. 図 3 に示すパッケージ構造を変更しないようにしてください。STM32CubeWL3 ファームウェア パッケージ構造。パスが長すぎると一部の IDE で問題が発生するため、ルート ボリュームに近い場所 (C:\ST または G:\Tests) にパッケージをコピーすることも推奨されます。

HAL exの実行方法ample
exをロードして実行する前にample、exを読むことを強くお勧めしますampリードミー file 特定の構成の場合。

  1. \Projects\NUCLEO-WL33CC\Exを参照しますampレ。
  2. \GPIO フォルダを開き、次に \GPIO_EXTI フォルダを開きます。
  3. 優先ツールチェーンでプロジェクトを開きます。view ex を開いて構築し、実行する方法についてampサポートされているツールチェーンを含むファイルを以下に示します。
  4. すべてを再構築 files を実行し、イメージをターゲット メモリにロードします。
  5. 元を実行しますamp詳細については、exampリードミー file.

exを開設、構築、運営するにはampサポートされている各ツールチェーンでファイルをインストールするには、次の手順に従います。

  • ウォーム:
  1. 例の下でamples フォルダーで、\EWARM サブフォルダーを開きます。
  2. Project.ewwワークスペースを起動します(ワークスペース名は、例によって異なる場合があります)。amp他の人に伝えます)。
  3. すべてを再構築 files: [プロジェクト]>[すべて再構築]。
  4. プロジェクトイメージをロードします: [プロジェクト]>[デバッグ]。
  5. プログラムを実行します: [デバッグ]>[実行 (F5)]。
  • MDK-ARM:
  1. 例の下でamples フォルダーで、\MDK-ARM サブフォルダーを開きます。
  2. Project.uvprojワークスペースを開きます(ワークスペース名は変更される場合があります)。amp他の人に伝えます)。
  3. すべてを再構築 files: [プロジェクト]>[すべてのターゲットを再構築] fileNS]。
  4. プロジェクトイメージをロードします: [デバッグ]>[デバッグセッションの開始/停止]。
  5. プログラムを実行します: [デバッグ]>[実行 (F5)]。
  • STM32CubeIDE:
  1. STM32CubeIDE ツールチェーンを開きます。
  2. クリック [File]>[ワークスペースの切り替え]>[その他]を選択し、STM32CubeIDE ワークスペース ディレクトリを参照します。
  3. クリック [File]>[インポート]をクリックし、[一般]>[既存のプロジェクトをワークスペースに]を選択して、[次へ]をクリックします。
  4. STM32CubeIDE ワークスペース ディレクトリを参照し、プロジェクトを選択します。
  5. すべてのプロジェクトをリビルドする files: プロジェクトエクスプローラーウィンドウでプロジェクトを選択し、
    [プロジェクト]>[プロジェクトのビルド]メニュー。
  6.  プログラムを実行します: [実行]>[デバッグ (F11)]。

カスタムアプリケーションの開発

STM32CubeMX を使用したアプリケーションの開発または更新
STM32Cube MCUパッケージでは、ほぼすべてのプロジェクトexampファイルは、システム、周辺機器、ミドルウェアを初期化するために STM32CubeMX ツールを使用して生成されます。

既存のプロジェクトの直接使用ampSTM32CubeMX ツールのファイルには STM32CubeMX 6.12.0 以降が必要です。

  • STM32CubeMX をインストールした後、提案されたプロジェクトを開き、必要に応じて更新します。
    既存のプロジェクトを開く最も簡単な方法は、*.iocをダブルクリックすることです。 file STM32CubeMX がプロジェクトとそのソースを自動的に開くようにする files. STM32CubeMX は、このようなプロジェクトの初期化ソース コードを生成します。
  • メイン アプリケーションのソース コードは、コメント「USER CODE BEGIN」と「USER CODE END」に含まれています。ペリフェラルの選択と設定が変更されると、STM32CubeMX はメイン アプリケーションのソース コードを保持しながらコードの初期化部分を更新します。

STM32CubeMX を使用してカスタム プロジェクトを開発するには、次の手順に従います。

  1. ピン配置競合ソルバー、クロックツリー設定ヘルパー、消費電力計算機、および MCU 周辺機器構成 (GPIO や USART など) を実行するユーティリティを使用して、必要なすべての組み込みソフトウェアを構成します。
  2. 選択した構成に基づいて初期化 C コードを生成します。このコードは、いくつかの開発環境ですぐに使用できます。ユーザーコードは次のコード生成時に保持されます。
    STM32CubeMX の詳細については、ユーザー マニュアル STM32CubeMX の STM32 構成および初期化 C コード生成 (UM1718) を参照してください。

ドライバーアプリケーション

HALアプリケーション
このセクションでは、STM32CubeWL3 を使用してカスタム HAL アプリケーションを作成するために必要な手順について説明します。

  1. プロジェクトを作成する
    新しいプロジェクトを作成するには、\Projects\< STM32xxx_yyy>\Templates の下にある各ボードに用意されているテンプレート プロジェクトから開始するか、\Projects\ の下にある利用可能なプロジェクトから開始します。 \元ampまたは\プロジェクト\ \アプリケーション(ここでボード名を参照します)。テンプレート プロジェクトは、空のメイン ループ関数を提供します。ただし、STM32CubeWL32 プロジェクト設定を理解するための良い出発点となります。テンプレートには次の特性があります。
    • これには、特定のボード上でコードを開発するために必要なコンポーネントの最小セットである、HAL ソース コード、CMSIS、および BSP ドライバーが含まれています。
    • これには、すべてのファームウェア コンポーネントの含まれるパスが含まれています。
    • サポートされている STM32WL3x 製品ライン デバイスを定義し、CMSIS および HAL ドライバーを正しく構成できるようにします。
    • すぐに使えるユーザーを提供します file以下に示すように事前設定されています。
    • HAL は、Arm® コア SysTick を使用してデフォルトのタイム ベースで初期化されます。
    • HAL_Delay() の目的で実装された SysTick ISR。
      注意: 既存のプロジェクトを別の場所にコピーする場合は、含まれるすべてのパスが更新されていることを確認してください。
  2. ファームウェアコンポーネントを構成する
    HAL およびミドルウェア コンポーネントは、ヘッダーで宣言されたマクロ #define を使用した一連のビルド時構成オプションを提供します。 file。テンプレート構成 file 各コンポーネント内に提供されており、プロジェクトフォルダ(通常は構成 file xxx_conf_template.hという名前が付けられている場合は、プロジェクトフォルダにコピーするときにフラグメント_templateを削除する必要があります。構成 file は、各構成オプションの影響を理解するのに十分な情報を提供します。より詳細な情報は、各コンポーネントに提供されているドキュメントで入手できます。
  3. HALライブラリを起動する
    メイン プログラムにジャンプした後、アプリケーション コードは HAL_Init() API を呼び出して HAL ライブラリを初期化し、次のタスクを実行する必要があります。
    • フラッシュ メモリのプリフェッチと SysTick 割り込み優先度の構成 (stm3 2wl3x_hal_conf.h で定義されたマクロ経由)。
    •  stm32wl3x_hal_conf.h で定義された SysTick 割り込み優先度 TICK_INT_PRIO で XNUMX ミリ秒ごとに割り込みを生成する SysTick の構成。
    • NVIC グループの優先順位を 0 に設定します。
    • stm32wl3x_hal_msp.cユーザーで定義されたHAL_MspInit()コールバック関数の呼び出し file グローバルな低レベルのハードウェア初期化を実行します。
  4. システムクロックを設定する
    システム クロックの構成は、以下で説明する 2 つの API を呼び出すことによって行われます。
    • HAL_RCC_OscConfig(): この API は内部および外部発振器を構成します。ユーザーは 1 つの発振器またはすべての発振器を構成することを選択します。
    • HAL_RCC_ClockConfig(): この API は、システム クロック ソース、フラッシュ メモリのレイテンシ、AHB および APB プリスケーラを構成します。
  5. 周辺機器を初期化する
    •  まず、周辺機器の初期化関数を記述します。次の手順に従います。
    • 周辺クロックを有効にします。
    • ペリフェラル GPIO を構成します。
    • DMA チャネルを設定し、DMA 割り込みを有効にします (必要な場合)。
    • 周辺機器の割り込みを有効にします(必要な場合)。
    • 必要に応じて、stm32xxx_it.c を編集して、必要な割り込みハンドラー (ペリフェラルおよび DMA) を呼び出します。
    •  周辺機器割り込みまたは DMA を使用する場合は、プロセス完了コールバック関数を書き込みます。
    •  ユーザーのmain.c file周辺機器ハンドル構造体を初期化し、周辺機器初期化関数を呼び出して周辺機器を初期化します。
  6. アプリケーションを開発する
    このstagつまり、システムの準備が整い、ユーザー アプリケーション コードの開発を開始できます。
    HAL は、ペリフェラルを構成するための直感的ですぐに使用できる API を提供します。ポーリング、割り込み、DMA プログラミング モデルをサポートし、あらゆるアプリケーション要件に対応します。各ペリフェラルの使用方法の詳細については、豊富なエクスペリエンスを参照してください。ampSTM32CubeWL3 MCU パッケージで提供されるファイル セット。

注意:
デフォルトのHAL実装では、SysTickタイマーがタイムベースとして使用され、一定の時間間隔で割り込みを生成します。HAL_Delay()がペリフェラルISRプロセスから呼び出される場合は、SysTick割り込みがペリフェラル割り込みよりも高い優先度(数値的に低い)を持っていることを確認してください。そうでない場合、呼び出し元のISRプロセスは
ブロックされています。タイムベース設定に影響を与える関数は、ユーザー環境内の他の実装の場合にオーバーライドを可能にするために__weakとして宣言されています。 file (汎用タイマーを使用、例:ample、または別の時間ソース)。
詳細については、HAL_TimeBase exを参照してください。ampル。

LLアプリケーション
このセクションでは、STM32CubeWL3 を使用してカスタム LL アプリケーションを作成するために必要な手順について説明します。

  1. プロジェクトを作成する
    新しいプロジェクトを作成するには、\Projects\の下の各ボードに用意されているTemplates_LLプロジェクトから開始するか、 \Templates_LL または \Projects\ の下にある利用可能なプロジェクトから\元amples_LL (ボード名を指します (例: NUCLEO-WL32CC33)。
    テンプレート プロジェクトには空のメイン ループ関数が用意されており、STM32CubeWL3 のプロジェクト設定を理解するための出発点として最適です。テンプレートの主な特徴は次のとおりです。
    • これには、特定のボード上でコードを開発するために必要な最小限のコンポーネント セットである LL および CMSIS ドライバーのソース コードが含まれています。
    • これには、必要なすべてのファームウェア コンポーネントのパスが含まれています。
    • サポートされている STM32WL3x 製品ライン デバイスを選択し、CMSIS および LL ドライバーを正しく構成できるようにします。
    • すぐに使えるユーザーを提供します file次のように事前設定されています。
    • main.h: LED および USER_BUTTON 定義抽象化レイヤー。
    • main.c: 最大周波数のシステム クロック構成。
  2. LL ex を移植するamp上:
    • Templates_LL フォルダーをコピー/貼り付けして初期ソースを保持するか、既存の Templates_LL プロジェクトを直接更新します。
    • 次に、移植は主にTemplates_LLを置き換えることで構成される。 file元によるamples_LL を対象としたプロジェクト。
    • ボード固有のパーツはすべて保管してください。明確にするために、ボード固有のパーツには特定のフラグが付けられています。 tags:
      STM32WL3x ソフトウェア パッケージ (1)

したがって、主な移植手順は次のとおりです。

  • stm32wl3x_it.hを置き換える file.
  • stm32wl3x_it.cを置き換える file.
  • main.h を置き換えます file LL テンプレートの LED とユーザー ボタンの定義を BOARD SPECIFIC CONFIGURATION に保持して更新します。 tags.
  • main.c を置き換えます。 file そしてそれを更新します:
  • SystemClock_Config() LL テンプレート関数のクロック設定を BOARD SPECIFIC CONFIGURATION に保持します。 tags.
  • LEDの定義に応じて、各LDxの発生を、 file メイン.h.

これらの変更により、元のample はターゲットボード上で実行されます。

RFアプリケーション、デモンストレーション、およびexampレ
さまざまな種類のRFアプリケーション、デモンストレーション、およびexampファイルは STM32CubeWL3 パッケージで利用可能です。それらは以下の XNUMX つのセクションにリストされています。

サブGHz examp抗議とデモ
これらの例ampこれらの例はMRSUBGおよびLPAWUR無線周辺機器の主な機能を示しています。amp以下のファイルから入手可能です:

  • プロジェクト\NUCLEO-WL33CC\ExampレスMRSUBG
  • プロジェクト\NUCLEO-WL33CC\Exampレス\LPAWUR
  • プロジェクト\NUCLEO-WL33CC\デモンストレーション\MRSUBG
  • プロジェクト\NUCLEO-WL33CC\デモンストレーション\LPAWUR

各元ample またはデモンストレーションは、通常、それぞれ送信機と受信機として機能する Tx と Rx という 2 つのプログラムで構成されます。

  • Exampレス/MRSUBG
    • MRSUBG_802_15_4: 標準 802.15.4 で定義された物理層の実装。802.15.4 パケットを送受信するように無線を構成する方法を示します。
    • MRSUBG_BasicGeneric: STM32WL3x MR_SUBG 基本パケットの交換。
    • MRSUBG_Chat: 同じデバイスで Tx と Rx を使用する方法を示すシンプルなアプリケーション。
    • MRSUBG_DatabufferHandler: 元ampデータバッファ 0 と 1 を交換する方法を示すファイル。
    • MRSUBG_Sequencer AutoAck: 元ampパケット確認応答 (ACK) を自動的に送受信するファイル。
    • MRSUBG_WMBusSTD: WM-Bus メッセージの交換。
    • ウェイクアップラジオ:元ampLPAWUR 無線周辺機器をテストします。
  • デモ/MRSUBG
    • MRSUBG_RTC_Button_TX: この例ampこの例では、SoC をディープ ストップ モードに設定し、PB2 を押してフレームを送信するか、RTC タイマーの有効期限が切れた後に SoC を起動するように MRSUBG を構成する方法を示します。
    • MRSUBG_Sequencer_Sniff: この例ampleはMRSUBGシーケンサーをスニフモードで動作するように設定する方法を示しています。この例ample は受信側を示しており、送信側として別のデバイスが必要です。
    • MRSUBG_Timer: アプリケーションは、異なる時間間隔で MRSUBG タイマー (自動リロード付き) の複数のインスタンスをスケジュールします。
    • MRSUBG_WakeupRadio_Tx: この例ampこの例で、SoCをディープストップモードに設定し、PB2を押してフレームを送信することでSoCを起動するようにMRSUBGを構成する方法について説明します。ampleは送信側を示しており、LPAWUR受信機として別のデバイスが必要です。受信機exampファイルは、NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx フォルダーにあります。
  • デモ/LPAWUR
    • LPAWUR_WakeupRadio_Rx: この元ampこのセクションでは、SoCをディープストップモードに設定し、フレームが到着して正しく受信されたときにSoCを起動するようにLPAWURを構成する方法について説明します。ampleは受信側を示しており、送信機として別のデバイスが必要です。送信機の例ampファイルは、NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx フォルダーにあります。

Sigfox™ アプリケーション
これらのアプリケーションは、Sigfox™ シナリオを実装し、利用可能な Sigfox™ API を使用する方法を示しています。これらは、プロジェクト パス Projects\NUCLEO-WL33CC\Applications\Sigfox\ で入手できます。

  • Sigfox_CLI: このアプリケーションは、コマンドライン インターフェイス (CLI) を使用して、Sigfox™ プロトコルを使用してメッセージを送信し、事前認証テストを実行するコマンドを送信する方法を示します。
  • Sigfox_PushButton: このアプリケーションを使用すると、STM32WL33xx Sigfox™ デバイスの無線機能を評価できます。PB1 を押すと、テスト Sigfox™ フレームが送信されます。

よくある質問

  1. LL ドライバーの代わりに HAL を使用する必要があるのはどのような場合ですか?
    HAL ドライバーは、高レベルの移植性を備えた、高レベルの機能指向の API を提供します。製品や周辺機器の複雑さはエンド ユーザーには隠されています。
    LL ドライバーは、より優れた最適化を備えた低層レジスタ レベル API を提供しますが、移植性は低くなります。製品または IP 仕様に関する深い知識が必要です。
  2. HAL ドライバーと LL ドライバーを一緒に使用できますか? 使用できる場合、制約は何ですか?
    HAL ドライバーと LL ドライバーの両方を使用できます。周辺機器の初期化フェーズには HAL を使用し、その後 LL ドライバーで I/O 操作を管理します。
    HALとLLの主な違いは、HA​​Lドライバは操作管理のためにハンドルを作成して使用する必要があるのに対し、LLドライバは周辺レジスタを直接操作することです。HALとLLの混在は、例に示されています。amples_MIX exampレ。
  3. LL 初期化 API はどのようにして有効になりますか?
    LL 初期化 API と関連リソース (構造体、リテラル、プロトタイプ) の定義は、USE_FULL_LL_DRIVER コンパイル スイッチによって条件付けられます。
    LL 初期化 API を使用できるようにするには、このスイッチをツールチェーン コンパイラ プリプロセッサに追加します。
  4. MRSUBG/LPAWUR周辺機器用のテンプレートプロジェクトはありますか?ampレ?
    新しいMRSUBGまたはLPAWUR exを作成するにはampleプロジェクトを開始するには、\Pr ojects\NUCLEO-WL33CC\Exで提供されているスケルトンプロジェクトから開始するか、amples\MRSUBG または \Projects\NUCLEO-WL33CC\Examples\LPAWUR、または同じディレクトリの下にある利用可能なプロジェクトから。
  5. STM32CubeMX はどのようにして組み込みソフトウェアに基づいてコードを生成できるのでしょうか?
    STM32CubeMXには、周辺機器やソフトウェアを含むSTM32マイクロコントローラの知識が組み込まれており、ユーザーにグラフィカルな表現を提供し、*.hまたは*.cを生成することができます。 fileユーザーの設定に基づきます。

改訂履歴

表3. 文書の改訂履歴

日付 リビジョン 変更点
29年2024月XNUMX日 1 初回リリース。
30年2024月XNUMX日 2 完全な統合 STM32キューブWL3 in STM32キューブ更新日:

削除:

  • PCツール、 含む ナビゲーター, STM32WL3 GUI、 そして MR-SUBG シーケンサー GUI
  • WiSE-Studio IOMapper はどのようにして組み込みソフトウェアに基づいてコードを生成できるのでしょうか?
  • Navigator はソフトウェア パッケージ リソースへのアクセスを許可しますか?

ドキュメント / リソース

ST STM32WL3x ソフトウェア パッケージ [pdf] 説明書
STM32WL3x ソフトウェア パッケージ、STM32WL3x、ソフトウェア パッケージ、パッケージ

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *