STM32
直播中

李丽华

7年用户 1457经验值
私信 关注
[问答]

使用746ZG+ DP83848CVV无法收数据的原因?怎么解决?

大家好。我使用STM32746G-EVAL开发板进行软硬件开发,开发板上使用的是STM32F746NG + DP83848CVV。我自己板子使用的是STM32F746ZG + DP83848CVV。想使用DMA实现MAC以太网。
原开发板上使用了一片STM32L152CCT6做MFX扩展,开发板上把DP83848CVV的7脚(PWR_DOWN/INT)引到了MFX的GPIO13上,我估计是用MFX来做中断检测,MFX又把152芯片上的IRQOUT引到了主芯片的PI8(名字叫EXPANDER_INT)上,后面这个PI8我不太清楚是做什么用的。

我自己画板子的时候觉得没有必要扩展就把MFX取消了,查看DP83848CVV手册,7脚(PWR_DOWN/INT)作用是拉低使得芯片工作在power_down模式,或者输出中断。我这里直接把这个管脚上拉到3.3V了。

除了取消MFX外,自己的板子和开发板的区别是多用了2根线:ETH _MII_RX_ER和ETH _MII_COL,原开发板上DP83848CVV这两个脚悬空了。

在调程序的时候,使用开发板提供的例程,把中断部分屏蔽掉,使用网络调试助手,开发板仍然可以正常收发数据。



但是用自己的板子跑同样的程序,用网络调试助手发数据,RJ45灯会亮,表示物理层有数据量,但MCU的RDES0的OWN位始终为1,也就是无法变成主芯片控制。也不能收发数据。

请问这个现象是由于没有引入DP83848CVV的中断引起的吗?在不用MFX扩展的情况下如何使用DP83848CVV的中断呢?

回帖(1)

刘润生

2024-5-8 17:19:22
您好!根据您的描述,您在使用STM32F746ZG + DP83848CVV的硬件配置中遇到了无法接收数据的问题。以下是一些建议和可能的解决方案:

1. 检查硬件连接:首先,请确保您的硬件连接正确,包括以太网线、DP83848CVV芯片以及STM32F746ZG之间的连接。确保所有引脚都已正确焊接。

2. 检查电源:确保DP83848CVV芯片的电源供应正常,没有短路或电压不稳定的情况。

3. 检查中断配置:您提到原开发板上使用了STM32L152CCT6做MFX扩展,并将DP83848CVV的7脚(PWR_DOWN/INT)引到了MFX的GPIO13上。您可以尝试在您的板子上也实现类似的中断检测功能,将7脚连接到STM32F746ZG的一个GPIO引脚,并在软件中配置相应的中断服务程序。

4. 检查DMA配置:确保您已正确配置了DMA通道,以便在接收到数据时自动将数据从DP83848CVV芯片传输到STM32F746ZG的内存中。

5. 检查软件驱动:确保您的软件驱动正确地初始化了DP83848CVV芯片,并正确处理了接收到的数据。

6. 使用调试工具:使用调试工具(如ST-LINK)逐步跟踪您的程序执行,以找出可能导致问题的原因。

7. 参考官方示例:查阅STM32F746ZG和DP83848CVV的官方示例代码,以确保您的实现与官方推荐的实现一致。

8. 检查PHY芯片:确保DP83848CVV PHY芯片的工作状态正常,没有损坏或故障。

9. 检查网络环境:确保您的网络环境(如交换机、路由器等)正常工作,没有导致数据丢失或中断的问题。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分