基于STM32F407MAC与DP83848实现以太网通讯二(DP83848硬件配置以及寄存器)
参考内容:DP83848数据表
一、PHY DP83848功能模块图

DP83848的硬件模块主要为:
MII/RMII/SNI INTERFACES:用于与MAC数据传输的MII/RMII/SNI接口
Transmit BLOCK:数据发送模块,将从外部MAC(例如STM32ETH外设的MAC)接收到的数据,通过DAC模块和AUTO-MDIX发送值外部介质(光纤、水晶头、电缆等)
Rece BLOCK:数据接受模块,外部介质接受的数据通过AUTO-MDIX和ADC传输至Rece BLOCK,再通过MII/RMII接口传输至MAC(例如STM32ETH外设的MAC)
Boundary:调试模块,部分型号不支持,不使用悬空即可。
AUTO-MDIX:自动识别直连或交叉网线并自适应,可通过外部配置禁用。
LED Drivers:LED模块,用于指示工作状态以及工作模式,由外部以及寄存器控制。
二、DP83848引脚配置(STM32F407ZGT6)

DP83848的所有复用引脚都有内部上拉或者下拉电阻,在配置引脚时,应使用2.2kΩ电阻连接GND或者Vcc配置。在接口选择方面这里选择RMII接口配置,要使用MII接口可参考DP83848参考手册。开发板使用的单片机为STM32F407ZGT6。
RMII接口(7Pin)
TX_EN(2):RMII发送启用,有效高电平输入表示 TXD [1:0] 上存在有效数据。(PG11)
TXD[0:1](3~4):RMII 发送数据,发送数据 RMII 输入引脚,TXD[1:0],此引脚接受同步至 50MHz 基准时钟的数据
TXD0(PG13),TXD1(PG14)
RX_DV(39):RMII同步接收数据有效信号。(PA7)
RXD[0:1](43~44):RMII接收数据信号引脚,与X1同步,50MHz。RXD0(PC4),RXD1(PC5)。
CRS_DV(40):RMII载波侦听/数据有效。(不接)
SMI接口(2Pin)
MDC(31):MDIO串行管理数据输入/输出接口同步时钟,也可以作为异步发送与接收时钟,最大时钟频率25MHz。(PC1)
MDIO(30):双向管理执行/信号接口。需要外置1.5KΩ上拉电阻。(PA2)
时钟接口(2Pin)
X1(34):RMII模式下必须连接50MHz,0.005%(+50ppm)的CMOS振荡源。(使用外部50MHz时钟源Y3)
CLK_OUT(25):由于RMII模式下X1输入50MHz参考时钟,此引脚能够给系统(STM32)提供相应的参考时钟源。(不使用)
LED接口(Pin3)
LED_LINK(28)、LED_SPEED(27)、LED_ACT/COL(26):LED接口的控制模式由PHY Control Register (PHYCR), address 0x19h控制。
Reset和Power Down
Reset_N(29):引脚拉低时间最少1μs,复位PHY芯片。(与单片机Reset复位按键为同意按键)
PWR_DOWN/INT(7):该被引脚拉低为Power Down模式(低功耗),中断模式时此引脚为开漏输出(内部弱上拉)。(拉高)
JTAG接口
TCK(8)、TDI(12)、TDO(9)、TMS(10)、TRST#(11),JTAG测试接口不使用不接。
三、DP83848外部配置选项
PHY地址配置PHY[0:4]:PHYAD0(COL)、PHYAD1(RXD_0)、PHYAD2(RXD_1)、PHYAD3(RXD_2)、PHYAD4(RXD_3)

系统复位,该地址(0<00000>~31<11111>)锁存在PHYCTRL寄存器。
地址0(0x00)时为MII隔离模式,配置隔离模式必须PHYAD0来选择,通过MDIO写入寄存器地址不会将PHY置于隔离模式。
PHYAD0内部为弱上拉电阻,PHYAD[4:1]内部为弱下拉电阻,因此默认的PHY地址为00001(0x01h)。
PHY配置地址示例00011(0x03h)

通讯速率与模式配置AN_EN(LED_ACT/COL)、AN_1(LED_SPEED)、AN_0(LED_LINK)
自动协商:当AN_EN为高电平时,将启用引脚AN_1与AN_0的自动协商功能(通告模式)。当AN_EN为低电平时,将启用引脚AN_1与AN_0的强制模式(Forced Mode)。引脚设定相应的值时通过2.2k电阻连接GND或Vcc。不要将引脚直接连接GND或Vcc,配置值将在硬件复位(Hardware Reset)时锁存在Basic Mode Control Register和e Auto_Negotiation Advertisement Register内。由于引脚内部默认上拉,因此默认值为111。

MII模式配置MII_MODE(RX_DV)、SNI_MODE(TXD_3)
确定MAC接口的工作模式默认状态为MII模式,当只有MII_MODE引脚拉高时为RMII模式(SNI_MODE内部下拉电阻)。(MII_MODE(39)拉高,SNI_MODE(6)拉低选择RMII模式)

LED配置LED_CFG(CRS)
LED_CF内置上拉电阻,默认为模式一,配置PHY Control Register(PHYCR)的LED_CFG[0]与LEDCFG[1]来实现LED模式选择。

Auto-MDIX模式配置MDX_EN(RX_ER)
默认状态使能MDIX,外接一个下拉电阻禁用Auto-MDIX功能。
10M/100Mb/s PMD接口RD-、RD+、TD-、TD+配置
RD-、RD+与TD-、TD+为两对差分输入/输出对,会被自动配置为相应的输入/输出100BASE-TX或10BASE-T信令。在AUTO-MDIX模式下,RD-、RD+可作为发送输出对,TD-、TD+可作为接收输入对。两对差分引脚需要接3.3V的直流偏置。
特殊连接(Special Connections)
RBIAS(24):Bias Resistor Connection需要使用一个4.87kΩ 1%的电阻通过RBIAS连接到GND
PFBOUT(23):Power Feedback Output ,需要将一个10μF(最好是钽电容)与一个0.1μF的并联并且靠近PFBOUT引脚,还需要将此引脚与PFNIN1和PFBIN2相连。
PFBIN1(18)、PFBIN2(37):Power Feedback Input,这两个引脚有PFBOUT供电,使用两个0.1μF的电容分别靠近PFBIN1与PFBIN2连接。

RESERVED(20,21):这些引脚必须使用AVDD33连接的2.2kΩ上拉电阻。
电源引脚配置

开发板上VCC3.3为I/O 3.3V电源,VCC3.3E为模拟3.3V电源,I/O地与模拟地共地。
四、PHY DP83848寄存器
具体寄存器配置参考:DP83848数据表 的寄存器章节-6.6 Memory

基于STM32F407MAC与DP83848实现以太网通讯二(DP83848硬件配置以及寄存器)的更多相关文章
- 搭建基于hyperledger fabric的联盟社区(二) --环境配置
接下来讲一下在本地测试区块链网络的过程.我要部署的是2peer+1orderer架构,所以需要准备三台虚拟机,为了方便起见可以先把一台配置好,然后复制出剩余两台即可.搭建虚拟机我用的是virtualb ...
- STM32F412应用开发笔记之五:结合W5500实现以太网通讯
因实际使用需求我们测试一下网络通讯,在NUCLEO-F412ZG测试板上没有以太网部分,我们选择外接一个W5500的实验板.W5500支持SPI接口通讯,DC3.3V供源.而NUCLEO-F412ZG ...
- 西门子S7系列以太网通讯处理器功能介绍
北京华科远创科技有限研发的远创智控型号ETH-YC模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI ...
- 西门子S7200/300/400以太网通讯处理器选型分类
北京华科远创科技有限研发的远创智控转以太网模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI/PRO ...
- 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)
前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...
- 基于SignalR的消息推送与二维码描登录实现
1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...
- 基于webrtc的资源释放问题(二)
基于webrtc的资源释放问题(二) ——建立连接的过程中意外中断 应用背景: 我们在打电话的时候会不会遇到这种情况?打电话的时候未接通之前挂掉了电话,或者在接通之后建立的连接的过程中挂掉电话? 特别 ...
- 基于.net开发chrome核心浏览器【二】
原文:基于.net开发chrome核心浏览器[二] 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一] 二: 相关资源介绍: chrome Frame: 让IE有一颗chrome的心, ...
- 基于FFMPEG的跨平台播放器实现(二)
基于FFMPEG的跨平台播放器实现(二) 上一节讲到了在Android平台下采用FFmpeg+surface组合打造播放器的方法,这一节讲一下Windows平台FFmpeg + D3D.Linux平台 ...
- 基于python的快速傅里叶变换FFT(二)
基于python的快速傅里叶变换FFT(二)本文在上一篇博客的基础上进一步探究正弦函数及其FFT变换. 知识点 FFT变换,其实就是快速离散傅里叶变换,傅立叶变换是数字信号处理领域一种很重要的算法. ...
随机推荐
- 19.8 Boost Asio 异或加密传输
异或加密是一种对称加密算法,通常用于加密二进制数据.异或操作的本质是对两个二进制数字进行比较,如果它们相同则返回0,如果不同则返回1.异或加密使用一把密钥将明文与密文进行异或运算,从而产生密文.同时, ...
- Python 代码推送百度链接
通过代码实现抓取个人博客中某一页指定文章链接,并批量将该链接推送到百度站长平台,起到快速收录的目的. import sys import requests from bs4 import Beauti ...
- .NET Core开发实战(第2课:内容综述)--学习笔记
02 | 内容综述 课程目标 掌握 .NET Core 微服务架构的最佳实践 成长为一个具备良好架构设计能力的架构师 课程内容 第一部分 .NET Core 的必备知识 第二部分 .NET Core ...
- OGG常用运维命令
1. 管理(MGR)进程命令 INFO MANAGER 返回有关管理器端口和进程id的信息. START MANAGER 开启管理进程 STATUS MANAGER ...
- crontab 里如何创建带日期的日志文件
需求在crontab 执行定时任务时,将执行的任务输出到带日期的文件中 crontab中,执行脚本需要传入系统时间date +"%Y-%m-%d" 问题今天遇到一个crontab问 ...
- .NET周刊【2月第1期 2024-02-04】
祝大家新年快乐,龙年大吉~ 国内文章 C#/.NET/.NET Core优秀项目和框架2024年1月简报 https://www.cnblogs.com/Can-daydayup/p/18000401 ...
- 【leetcode】如何实现 regex 正则表达式引擎
题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字 ...
- spring boot+layui实现增删改查实战
说明: 最近在做一个后台,希望用一个现成的前端模板,找了一圈发现Layui比较合适.我知道很多人都有这个需求,为了使大家快速上手,我把自己写的最实用的增删改查案例完整的展示出来. 源码地址: http ...
- C++ 多线程的错误和如何避免(5)
要记得对加锁的临界区解锁 前提:在多个线程共享一块资源或者数据时,我们需要加上互斥锁来保护临界区(否则出现数据未定义的行为) 问题:我们往往在写了很多代码之后忘记 unlock 互斥锁,那么等待该资源 ...
- Eharts立体柱状图
一下这三个div大小不一样 为了保证每次柱状图渲染正确 添加key <div class="echart1" id="dangerChart1" key= ...