77
4146
1万
资深工程师
本章为系列指南的第四章,这一章将正式进入以太网的配置和使用。首先我们关注一下PHY的配置,前面讲到,我们的工程使用了开发板上的一颗DP83848芯片。
接下来我们来看开发板的原理图:
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (738.49 KB ) 下载附件 2019-7-4 09:22 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (738.49 KB )
下载附件
2019-7-4 09:22 上传
通过电路原理图可以看到接线方式是使用RMII接口模式接线的,因此接下来我们在配置PHY的时候注意要是用RMII。
使用特权
我们知道DP83848,以及任何一个PHY芯片,都是有5个bit的地址信号的,RMII通信时会携带ADDR数据,只有ADDR吻合的PHY才会有响应。先来看看原理图上DP83848的管脚定义,原理图上DP83848的42号脚标注的PHYAD0,并且引脚悬空了,没有特别的处理。我们再来看看DP83848的数据手册,在P18页,有如下描述:
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (721 KB ) 下载附件 2019-7-4 09:23 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (721 KB )
2019-7-4 09:23 上传
红框标记部分阐述了PHYAD0内部上拉了,其余4个AD位内部下拉了,因此悬空状态下这颗DP83848的默认ADDR就是0x01。
PHY的配置主要解决GPIO的配置和RMII的接口,这部分比较简单,因为GPIO很多都是专用的,基本都是定义死的,查看原理图或者STM32F4xx的数据手册,都能很容易确定用到哪些GPIO,每个GPIO用来干什么的,代码如下:
730245d1d55682f08e.png (356.91 KB ) 下载附件 2019-7-4 09:24 上传
730245d1d55682f08e.png (356.91 KB )
2019-7-4 09:24 上传
综上,就是PHY部分配置的全过程,还是比较简单的,第一行定义的DP83848_PHY_ADDRESS我们会在下一章配置MAC层的章节使用到。这个函数完成的任务也比较单一,就是初始化系统配置SYSCFG、确定RMII协议接口、初始化各个需要用到的GPIO。
我们将这个文件保存为stm32f4x7_eth_bsp.c,如果你在其他工程项目中能看到这么一个文件,十有**都会有这么一个函数,我也是参考了一些其他项目这么写的,文件保存后,我们会在以后用到,这一章暂时结束。
发表回复 本版积分规则 回帖后跳转到最后一页
5
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号