STM32F4 LAN8720A移植方法.pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ST 中stsw-stm32070 的网络例子 ——将 DP83848CVV 修改为 LAN8720A 在 main.h 中 将 LCD 注释掉 //#define USE_LCD /* enable LCD */ Stm32f4 的时钟配置 首先在 startup_stm32f40xx.s 中找到芯片上电复位之后做的动作,将进行SystemInit SystemInit()函数在system_stm32f4xx.c 中进行了编写 同时SystemInit()调用 SetSysClock(),也在 system_stm32f4xx.c 中 1 / 8 SetSysClock()配置了 PLL 的时钟频率,一般都配置为 168M ,晶振不同的时候只要配置 PLL_M 的值即可,8MHz 晶振就将 PLL_M 定义为 8 ,25MHz 的时候定义为 25 ; 当然,SetSysClock()中还进行了时钟源的选择,HSE 还是 HIS 什么的,还有 HCLK、 PCLK2、PCLK1 等,可以查看具体的代码。 时钟配置完成之后,进入 main()函数,如前面所介绍,进入 main()之前,时钟已经配 置为 168MHz 了。 这里有 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);这个函数,看上去是中断 优先级的设置,暂且没有去管它,有兴趣的时候可以看下,应该不难;因为这里只是 单纯的设置 LAN8720A 来替代开发板上原先的 DP83848CVV ,所以主要设置都在 ETH_BSP_Config()中,这里设置LAN8720A 成功之后,就会去设置 LwIP ,就不是物理 层上的工作了,都是 IOS 其它传输层、应用层等层的工作。 2 / 8 我们先看看 ETH_BSP_Config()中是做了什么工作 ,这个函数的内容在 stm32f4x7_eth_bsp.c 中,看文件名 bsp 就是和最底层外设相关的。函数首先进行了系 统的一个定时器的滴答设置,这个定时器一般给操作系统使用。这里单纯做为网络设 置时候的一些延时使用,和 delay 差不多,只是使用的是系统定时器这个特殊定时器。 我们不必管它,不操作。 接下来是 GPIO 口 的设置 因为 LAN8720A 是一个 RMII PHY 芯片,它自己没有 MAC 层的功能,网络中的 MAC 层 集成在 STM32F4 芯片内部,MAC 层有具体的硬件信号脚,这里直接参考 LAN8720A 的参考电路中的 RMII 接口连接到 STM32F4 的 RMII 接口就行了 , 3 / 8 电这里 LAN8720A 的复位直接连接到 STM32F4 的复位就可以,都是低电平复位。 关于void ETH_GPIO_Config(void)这个函数也要说明一下,ST 的参考板使用的是 MII 模式,而 LAN8720A 只有 RMII 模式,所以需要做些修改, 首先在 main.h 中修改如下 同时可以修改 STM32F4 上电之后的 IP 4 / 8 虽然 MCO 没有使用,但是还是定义在这里 ,因为后面的其他引脚的初始化都用了 GPIO_InitStructure 这个结构体 ,其他接下来的就没有什么了,依照功能修改GPIO 完成之后进行 MAC 层相关的设置 ,使用DMA 功能 在 ETH_MACDMA_Config()函数中,首先设置为百兆自动连接方式 ,其它不必修改 完了进入 ETH_Init()函数进行 MAC/DMA 的设置 DP83848_PHY_ADDRESS 按照 LAN8720A 的硬件设置 IP 地址 ,硬件为0 地址 在 ETH_Init()函数中找到和 PHY 芯片 DP83848CVV 相关的寄存器设置 ,改为 LAN8720A 相关的,其余在 STM32F4 内

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档