STM32 プロセッサ ベースのボード向けの STM32CubeMX でのイーサネット オプションの構成
STM32 ベースのボードをターゲットとするモデルで Ethernet (TCP、UDP、または MQTT) ブロックを使用するには、STM32CubeMX を使用してイーサネット オプションを構成する必要があります。STM32CubeMX は、これらのプロトコルに必要な周辺装置およびネットワークの機能を設定できる構成ツールです。
STM32CubeMX ツールの利用がはじめての場合は、https://www.st.com/en/development-tools/stm32cubemx.html を参照してください。
前提条件
以下のチュートリアルを完了します。
STM32H7xx ベースのボードの構成
このセクションでは、STM32H7xx ベースのボード向けに STM32CubeMX プロジェクトでイーサネット オプションを構成する方法を説明します。
[起動] をクリックして、選択した STM32CubeMX プロジェクトを STM32CubeMX ツールで開きます。
STM32CubeMX ツールで、選択した STM32 プロセッサの周辺装置を構成できます。
STM32CubeMX ツールで、[System Core] 、 [CORTEX_M7] 、 [Parameter Settings] 、 [Cortex Interface settings] に移動し、[CPU ICache] と [CPU DCache] を
Enabled
に設定します。[Connectivity] 、 [ETH] 、 [Mode] に移動し、[Mode] として
RMII
を選択します。[Configurations] 、 [NVIC Settings] に移動し、[Ethernet global interrupt] パラメーターと [Ethernet wake-up interrupt through EXTI line 86] パラメーターを有効にします。
[ETH] 、 [Parameters Settings] 、 [Ethernet Configuration] に移動し、[Rx Buffers Address] が
0x30040200
に設定されていることを確認します。メモ
STM32H723xx、STM32H735xx、STM32H725xx、STM32H733xx、および STM32H730xx ベースのボードの場合は、[Rx Buffers Address] が
0x30000200
に設定されていることを確認します。[Middleware] 、 [LWIP] 、 [Mode] に移動し、[Mode] を有効にします。
[Platform settings] で [Found solutions] を
LAN8742
に設定します。[File] に移動し、[Save Project] をクリックします。
STM32F7xx/STM32xx ベースのボードの構成
このセクションでは、STM32F7xx または STM32xx ベースのボード向けに STM32CubeMX プロジェクトでイーサネット オプションを構成する方法を説明します。
[起動] をクリックして、選択した STM32CubeMX プロジェクトを STM32CubeMX ツールで開きます。
メモ
STM32F4xx ベースのボードのイーサネット オプションは、STM32F7xx ベースのボードと同様に構成できます。
[Connectivity] 、 [ETH] 、 [Mode] に移動し、[Mode] として
RMII
を選択します。[Configurations] 、 [NVIC Settings] に移動し、[Ethernet global interrupt] パラメーターを有効にします。
[Middleware] 、 [LWIP] 、 [Mode] に移動し、[Mode] を有効にします。
[File] に移動し、[Save Project] をクリックします。
イーサネット FreeRTOS 設定の構成
上記の一般的な構成に加えて、FreeRTOS をオペレーティング システムとして使用するときにイーサネット機能が有効になるようにこれらの設定を構成します。
IOC ファイルを開き、[LWIP]、[Key Options]、[Infrastructure - Heap and Memory Pools Options] に移動します。
[MEM_SIZE] を
10*1024
に増やし、[LWIP_RAMN_HEAP_POINTER] を0x30020000
に設定します。モデルに、より多くの Ethernet ブロックが含まれる場合や、複雑度に基づいて追加のメモリが必要な場合、これらの値を増やします。値が有効な範囲内にあることを確認します。IOC ファイルで、[FreeRTOS] を選択します。[Interface] を
CMSIS_V2
に設定し、[Tasks and Queues] に移動します。LWIP が有効な場合、既定のタスクが自動的に作成されます。スタック サイズが 256 に設定されていることを確認します。これはアプリケーション要件に基づいて増やすこともできます。[Config Parameters] に移動し、[TOTAL_HEAP_SIZE] を
30,720
に設定します。アプリケーション要件に基づき、必要に応じてヒープ サイズを調整します。
参考
Simulink での STM32CubeMX を使用した STM32 プロセッサベースのボードの構成 | TCP Receive | TCP Send | UDP Receive | UDP Send | Ethernet