STM32驱动DP83848注意事项

本文详细介绍了如何检查STM32的MAC时钟、以太网50M时钟配置、复用IO连接、RMII端口初始化、DP83848 RST和CONFIG引脚初始化以及时钟接法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 检查STM32的MAC时钟是否已开启。

  2. 检查以太网50M的时钟是否正确配置。

  3. 检查STM32的以太网复用IO是否连接到重映射端口上。

  4. 检查STM32的以太网RMII端口是否已正确初始化,IO端口的时钟是否已开启。

  5. 检查连接DP83848的RST引脚的IO是否已初始化。

  6. 检查DP83848的CONFIG引脚在复位状态下的电平是否正确。

  7. 检查DP83848的地址引脚配置是否与STM32中初始化定义的地址一致。

  8. 检查DP83848的时钟接法,如果是外接晶振,检查晶振是否起振,否则查看是否接到STM32的MOC脚,如果是,检查STM32是否已配置MOC脚输出50M时中。。。。。。。。。。。


在百度知道上看到的,正准备搞这块。先留着
### STM32DP83848以太网PHY芯片配合使用 #### 配置教程 对于STM32DP83848以太网PHY芯片的配合使用,主要依赖于LwIP网络协议栈来实现完整的TCP/IP功能。在配置过程中,需先通过STM32CubeMX工具设置ETH接口,并选择合适的时钟源[^1]。 接着,在项目初始化阶段,应确保正确设置了MAC地址以及调用了`HAL_ETH_Init()`函数完成硬件资源分配和参数设定。此外,还需注意检查RMII参考时钟的选择是否匹配目标板的要求。 针对具体的驱动程序编写方面,可参照官方提供的STM32Cube_FW_F4系列固件包中的Ethernet例程作为基础框架进行扩展开发。此过程涉及到了解并运用MDIO总线管理机制去访问DP83848寄存器,从而达到控制其工作状态的目的。 ```c // 初始化以太网模块 void MX_ETH_Init(void){ /* USER CODE BEGIN ETH_Init 0 */ /* USER CODE END ETH_Init 0 */ /* USER CODE BEGIN ETH_Init 1 */ /* USER CODE END ETH_Init 1 */ heth.Instance = ETH; heth.Init.AutoNegotiation = ETH_AUTONEGOTIATION_ENABLE; heth.Init.PhyAddress = DP83848_PHY_ADDRESS; // 设置PHY设备地址 heth.Init.MACAddr = {0x00, 0x80, 0xE1, 0x00, 0x00, 0x00}; // 设定本地MAC地址 heth.Init.RxMode = ETH_RXPOLLING_MODE; heth.Init.ChecksumMode = ETH_CHECKSUM_BY_HARDWARE; heth.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII; if (HAL_ETH_Init(&heth) != HAL_OK) { Error_Handler(); } } ``` #### 注意事项 当涉及到实际操作时需要注意几个关键点: - **电源供应**:确认为DP83848提供了稳定的工作电压(通常为3.3V),并且该电压轨具有足够的电流承载能力。 - **信号完整性**:考虑到高速差分信号的特点,建议遵循PCB设计最佳实践,比如保持短而直的走线路径、合理安排地平面等措施减少反射和其他形式的噪声干扰。 - **软件兼容性**:由于不同版本之间可能存在API变更的情况,因此推荐始终依据所使用的MCU型号及其对应的库文件来进行编码;同时也要留意是否有最新的补丁或更新可用。 - **调试技巧**:如果遇到连接失败等问题,则可以通过观察LED指示灯的状态变化初步判断问题所在;另外还可以借助逻辑分析仪抓取物理层的数据帧以便进一步排查故障原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值