中级会员
 
- 积分
- 331
- 金钱
- 331
- 注册时间
- 2014-4-18
- 在线时间
- 69 小时
|
3金钱
最近打样了一批板子,发现很诡异的问题,就是同样的一批板子,在正常焊接的情况下,有些板子的MII接口能够正常接收,有些MII接口不能接收。
为什么是说MII接口而不是以太网收不到数据呢?通过示波器能够检查到MII总线上 RXDV RXD0~RXD3 RX_CLK 波形是正常的,在接收到同样数据的时候,正常的板子与无法接收的板子波形完全一样,所以考虑可能是引脚的问题:
有以下几个可能:
1.引脚没有做阻抗匹配,stm32与PHY芯片两者电压有可能不匹配。
2.焊接问题。
3.驱动程序问题,着重检查引脚配置。
最后问题定位在第三个,原来的驱动如下:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8|GPIO_Pin_10 |GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource1, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_ETH);
问题就在于这个PB10 这个是个笔误写上去了,这个脚本来没有GPIO_AF_ETH的复用功能。但按理来说即便是写错了,放在这里也不应该有问题吧?但是我把这个去掉以后那些不能通讯的就能通讯了,真的是非常诡异,有没有朋友遇到过类似的问题。是不是DCMI FSMC也有类似的问题 比如我多配置了一个不属于这个功能的引脚 就会出现这种有的好用有的不好用的情况?
|
|