打印
[STM32F1]

STM32F107 RMII模式以太网问题

[复制链接]
4487|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wang168506|  楼主 | 2015-7-30 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wang168506 于 2015-7-30 16:14 编辑

大家好,我最近在调试STM32F107的RMII模式下的以太网通讯,目前的问题是指示灯绿色常亮,黄色闪烁,但是就是无法ping 通,一直显示 无法访问目标主机,这到底是怎么回事呢?程序参考的是STM32F10C的评估板,就把自己的IO部分对应改动了一下,然后就出现了这种问题,求各路大神指教!还有就是选择39脚选择RMII和MII模式的引脚,接上上拉居然仍然为低,这什么情况?
void GPIO_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  /* ETHERNET pins configuration */
  /* AF Output Push Pull:
  - ETH_MII_MDIO / ETH_RMII_MDIO: PA2     OK    1
  - ETH_MII_MDC / ETH_RMII_MDC: PC1       OK    2
  - ETH_MII_TXD2: PC2                     OK   
  - ETH_MII_TX_EN / ETH_RMII_TX_EN: PB11  OK    3
  - ETH_MII_TXD0 / ETH_RMII_TXD0: PB12    OK    4
  - ETH_MII_TXD1 / ETH_RMII_TXD1: PB13    OK    5
  - ETH_MII_PPS_OUT / ETH_RMII_PPS_OUT: PB5     
  - ETH_MII_TXD3: PB8 */

  /* Configure PA2 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  /* Configure PC1, PC2 and PC3 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);

  /* Configure PB5, PB8, PB11, PB12 and PB13 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_11 |
                                GPIO_Pin_12 | GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  /**************************************************************/
  /*               For Remapped Ethernet pins                   */
  /*************************************************************/
  /* Input (Reset Value):
  - ETH_MII_CRS CRS: PA0                                     OK
  - ETH_MII_RX_CLK / ETH_RMII_REF_CLK: PA1                   OK  
  - ETH_MII_COL: PA3                                         OK       6
  - ETH_MII_RX_DV / ETH_RMII_CRS_DV: PD8   PA7               OK       7
  - ETH_MII_TX_CLK: PC3                         PC3            
  - ETH_MII_RXD0 / ETH_RMII_RXD0: PD9           PC4                   8
  - ETH_MII_RXD1 / ETH_RMII_RXD1: PD10          PC5                   9
  - ETH_MII_RXD2: PD11                          PB0
  - ETH_MII_RXD3: PD12                          PB1
  - ETH_MII_RX_ER: PB10 */

  /* ETHERNET pins remapp in STM3210C-EVAL board: RX_DV and RxD[3:0] */
  GPIO_PinRemapConfig(GPIO_Remap_ETH, ENABLE);

  /* Configure PA0, PA1 and PA3 as input */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3| GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  /* Configure PB10 as input */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_0| GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  /* Configure PC3 as input */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOC, &GPIO_InitStructure);

  /* Configure PD8, PD9, PD10, PD11 and PD12 as input */
//  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
//  GPIO_Init(GPIOD, &GPIO_InitStructure); /**/

  /* Configure PA.06 (ADC Channel6) as analog input -------------------------*/
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);   

  /* MCO pin configuration------------------------------------------------- */
  /* Configure MCO (PA8) as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

}

沙发
amanda_s| | 2015-7-30 13:58 | 只看该作者
原来的程序是用的MII还是RMII的程序啊?
对接口的选择有没有改?
在main.h里
板子上的跳线也要对应不同的接口更改。参考评估板的用户手册。

使用特权

评论回复
板凳
wang168506|  楼主 | 2015-7-30 16:18 | 只看该作者
amanda_s 发表于 2015-7-30 13:58
原来的程序是用的MII还是RMII的程序啊?
对接口的选择有没有改?
在main.h里

原有程序就是RMII模式,无需改动额,请问你可以帮回答一下MII_MODE管脚为啥接上拉仍然为零么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

811

帖子

5

粉丝