i.MXRT1050 MCUは10M/100MイーサネットMACをサポートします。現在、LAN8720Aは多くのネットワーク設計で使用される非常に一般的なPHYです。このドキュメントでは、i.MXRT1050 で LAN8720A を使用する方法について説明します。
1.概略図
この設計例では、
2. ソースコードの修正
i.MXRT1050 SDK では、PHY のソース コード ファイルは fsl_phy.c ですとfsl_phy.h.LAN8720Aのレジスタをソースコードに追加する必要があります。以下はLAN8720Aのレジスタです。詳細については、LAN8720Aデータシートを参照してください。
( 変更されたfsl_phy.cとfsl_phy.hが添付されています)
pinmux.c では、ENET_INTとENET_RSTのGPIOマルチプレクサ設定を変更します。
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_04_GPIO1_IO20, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_15_GPIO1_IO15, 0U);
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_04_GPIO1_IO20, 0xB0A9u);
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_15_GPIO1_IO15, 0xB0A9u);
これは、main() 関数で PHY をリセットするためのソースコードの一部です。
gpio_pin_config_t gpio_config = {kGPIO_DigitalOutput, 0, kGPIO_NoIntmode};
GPIO_PinInit(GPIO1, 20, &gpio_config);
GPIO_PinInit(GPIO1, 15, &gpio_config);
GPIO_WritePinOutput(GPIO1, 15, 1);
GPIO_WritePinOutput(GPIO1, 20, 0);
delay();
GPIO_WritePinOutput(GPIO1, 20, 1);
その他のサンプル・コードについては、i.MXRT SDK パッケージの demo_apps/lwip を参照してください。
参考情報:
i.MXRT1050 Webページ: i.MX RT1050 MCU/Applications Crossover Processor |® Arm Cortex-M7® @600 MHz、512KB SRAM |NXPの
MCUXpresso SDK web page : MCUXpresso SDK|NXP
公式サイトで提供されているi.MXRT1050 SDKにはLAN8720Aチップのドライバーコードはありません。