動作環境
Ubuntu 18.04 LTS
STM32CubeMX v5.2.1
STM32CubeIDE v1.0.1
基板: STM32F769 Discovery Kit
(Ethernet PHY: LAN8742A-CZ-TR from MICROCHIP @ UM2033 Rev 6 p19 6.11 Ethernet)
概要
- Ethernet設定をしてpingが通るようにする
大切なこと (PHY addressを0にする)
STM32CubeIDEを使った設定ではPHY addressは1に設定される。そのままでは動かない。
PHY addressは0にすること
これを知らないで3日溶かした (平日の夜 * 3)。
-
LWIP with STM32F769
-
Make sure you set the PHY address to 0. STM32CubeMX application STILL wants to set it to 1.
-
ここで「PHYアドレスは0にしろ」とある。STM32CubeIDE(STM32CubeMX)では初期値が1になる。
ネットワーク環境
- ゲートウェイ: 192.168.0.1
- PC: 192.168.0.9
- STM32F769 Discovery Kit: 192.168.0.10とする
手順
手順は以下となる。
-
`1. STM32 Projectプロジェクトを作る
- Part Number Searchにて「769NI」
- Reference: STM32F769NIHxを選択
- プロジェクト名(任意): F769NI_ping_190808_2138
-
`2. FREERTOSを有効にする
- defaultTaskのStack Sizeを512に増やしておく
- 今回の実装では不要かもしれないが
- defaultTaskのStack Sizeを512に増やしておく
- `3. ETHを設定する
- Mode: RMIIにする
- PHY Address: 0にする
- `4. RCCのHSEを設定する
- ST-LINK側のオシレータを使用することにした > BYPASS Clock Source選択
- `5. LWIPを有効にする
- LWIP_DHCP (DHCP Module): Disabledにする
- IP_ADDRESS : 192.168.000.010
- NETMASK: 255.255.255.000
- GATEWAY: 192.168.000.001
- `6. SYSの設定をする
- Debug: Serial Wire
- 今回は使わないかもしれない
- Timerbase Source: TIM14 (Sys Tick以外の任意)
- Debug: Serial Wire
- `7. Clock 設定をする
- HSEのInput Frequency: 8MHzに
- 他の設定は下記の画像を参考に
-
`8. 保存してコードを生成する
-
Do you want generate Code?
- [Yes]
-
-
`9. ビルドして実行すると192.168.0.10にpingが通るようになる
トラブル
上記を実行して、STM32に接続できなくなった時はLWIPを再設定してみる。
その後、ビルドしてデバッガ接続するが、デバッガ接続できない時は下記を実施する。
-
STM32F769 Discovery Kit > Error: ST-Linkデバイスの初期化エラー. 理由: (9)ターゲットが停止出来ません。 > 対策 + 原因
- 既存のプロジェクトで動作確認し、こちらのプロジェクトに戻してみる