📝
Nucleo-H723ZGを使ったEthnernet通信を使うまでの設定(備忘録)
まえがき
本記事は、STMicroElectoronics社から販売されているNucleo-H723ZGに搭載されているEthnernetコネクタを使ってTCP通信を使うための、必要最低限設定項目を記載しています。
本記事は、単に自分の備忘録として記載しています。
なお、ベースとしてBoard selectorでNucleo-H723ZGを使用して他追加で設定すべきものについて説明しています。
CubeMXでの設定項目
下記の項目をCubeMXの設定画面で設定を行う必要があります。
1. キャッシュ操作の有効化
「System Core」の「CORTEX_M7」のConfigurationから
- I-Cacheの有効化
CPU ICache = Enable - D-Cacheの有効化
CPU DCache = Enable
を設定する。
2. MPUの設定
「System Core」の「CORTEX_M7」のConfigurationからETHが使用するSRAM_D2領域(0x30000000)に対するMPUの設定を行います。
MPUのregion1にEnabledにし次の設定を追加します。
3. クロック設定
- HSEをBYPASS Clock Sourceに設定します。
「System Core」の「RCC」のModeのHSEをBYPASS Clock Sourceに設定します。 - Power Regulator Voltage ScaleのScaleを0にします。
「System Core」の「RCC」のConfigurationPower Regulator Voltage ScaleのScaleを0にします。
- PLLのクロックソースをHSEに変更
- PLL設定の更新
Clock Configurationを下記のように変更
4. ETHの設定
- ModeをRMIIに変更
- 割り込みの有効化
- PG11をETH_TX_ENに変更
- PG13をETH_TXD0に変更
- IOのスピード
PG11とPG13をETHのピンに変更しoutput speedwくぉVery Highに変更
5. FreeRTOSを有効化
- メインタスクのスタックを大きくする。
6. LwIPを有効化
- Platform Settingsで「IPs or components」と「Fond Solutions」をLAN8742に設定
- DHCPのDisableにし、IPアドレスを設定する。
ソースコードの修正
7. STM32H723ZGTX_FLASH.ldを編集
.lwip_sec (NOLOAD) : {
. = ABSOLUTE(0x30000000);
*(.RxDecripSection)
. = ABSOLUTE(0x30000080);
*(.TxDecripSection)
. = ABSOLUTE(0x30000100);
*(.Rx_PoolSection)
} >RAM_D2
Discussion