📝

Nucleo-H723ZGを使ったEthnernet通信を使うまでの設定(備忘録)

に公開

まえがき

本記事は、STMicroElectoronics社から販売されているNucleo-H723ZGに搭載されているEthnernetコネクタを使ってTCP通信を使うための、必要最低限設定項目を記載しています。
本記事は、単に自分の備忘録として記載しています。
なお、ベースとしてBoard selectorでNucleo-H723ZGを使用して他追加で設定すべきものについて説明しています。

CubeMXでの設定項目

下記の項目をCubeMXの設定画面で設定を行う必要があります。

1. キャッシュ操作の有効化

「System Core」の「CORTEX_M7」のConfigurationから

  1. I-Cacheの有効化
    CPU ICache = Enable
  2. D-Cacheの有効化
    CPU DCache = Enable
    を設定する。

2. MPUの設定

「System Core」の「CORTEX_M7」のConfigurationからETHが使用するSRAM_D2領域(0x30000000)に対するMPUの設定を行います。
MPUのregion1にEnabledにし次の設定を追加します。

3. クロック設定

  1. HSEをBYPASS Clock Sourceに設定します。
    「System Core」の「RCC」のModeのHSEをBYPASS Clock Sourceに設定します。
  2. Power Regulator Voltage ScaleのScaleを0にします。
    「System Core」の「RCC」のConfigurationPower Regulator Voltage ScaleのScaleを0にします。
  3. PLLのクロックソースをHSEに変更
  4. PLL設定の更新
    Clock Configurationを下記のように変更

4. ETHの設定

  1. ModeをRMIIに変更
  2. 割り込みの有効化
  3. PG11をETH_TX_ENに変更
  4. PG13をETH_TXD0に変更
  5. IOのスピード
    PG11とPG13をETHのピンに変更しoutput speedwくぉVery Highに変更

5. FreeRTOSを有効化

  1. メインタスクのスタックを大きくする。

6. LwIPを有効化

  1. Platform Settingsで「IPs or components」と「Fond Solutions」をLAN8742に設定
  2. DHCPのDisableにし、IPアドレスを設定する。

ソースコードの修正

7. STM32H723ZGTX_FLASH.ldを編集

.lwip_sec (NOLOAD) : {
  . = ABSOLUTE(0x30000000);
  *(.RxDecripSection) 
  
  . = ABSOLUTE(0x30000080);
  *(.TxDecripSection)
  
  . = ABSOLUTE(0x30000100);
  *(.Rx_PoolSection) 
} >RAM_D2 

Discussion