This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28M35X设备以太网功能引脚分配问题



您好:

我采用F28M35X设备,采用了以太网外设功能,采用F28M35+DP83822设备,采用MII协议。分配了DSP相应引脚后,烧写了F28M35X的以太网例程(enet_uip),更改了例程中以太网引脚的分配,在电脑主机设置同一网段和掩码,ping开发板设备,提示“无法访问目标主机”,ping不通。

请各位专家帮忙审核,我的F28M35的以太网外设引脚分配是否有误?是否还有类似PB7的特殊引脚需要处理?

1、DSP及DP83822测量供电电压、时钟、复位引脚正常。DP83822的PHY地址选择默认0X01。

2、RXCLK为25MHz,TXCLK为25MHz,mdc时钟为2.2MHz,读PHYX芯片(DP83822)工作状态正常,link建立,全双工,100M,自协商。

3、选择F28M35的官方例程,enet_uip工程。

void EthernetPinsSetup(void)
{
     //Ethernet pin setup
    GPIODirModeSet(
        GPIO_PORTA_BASE, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|
        GPIO_PIN_3|GPIO_PIN_2, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(
        GPIO_PORTA_BASE, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|
        GPIO_PIN_3|GPIO_PIN_2, GPIO_PIN_TYPE_STD);
	GPIOPinConfigure(GPIO_PA7_MIIRXER);
    GPIOPinConfigure(GPIO_PA6_MIIRXCK);
	GPIOPinConfigure(GPIO_PA5_MIIRXDV);
	GPIOPinConfigure(GPIO_PA4_MIITXD0);
	GPIOPinConfigure(GPIO_PA3_MIITXD1);
	GPIOPinConfigure(GPIO_PA2_MIITXD2);

    GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_6, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_6, GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PB6_MIICRS);


    GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PC4_MIITXD3);

    GPIODirModeSet(GPIO_PORTE_BASE, GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_7, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PE6_MIIMDIO);
    GPIOPinConfigure(GPIO_PE7_MIIRXD3);
    GPIOPinConfigure(GPIO_PE4_MIIRXD0);

    GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_6|GPIO_PIN_3, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_6|GPIO_PIN_3, GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PF6_MIIRXD2);
    GPIOPinConfigure(GPIO_PF3_MIIMDC);

    GPIODirModeSet(GPIO_PORTG_BASE, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_2,
                   GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTG_BASE, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_2,
                     GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PG2_MIICOL);
    GPIOPinConfigure(GPIO_PG5_MIITXEN);
    GPIOPinConfigure(GPIO_PG6_MIITXCLK);
    GPIOPinConfigure(GPIO_PG7_MIITXER);

    GPIODirModeSet(GPIO_PORTH_BASE, GPIO_PIN_0, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTH_BASE, GPIO_PIN_0, GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PH0_MIIPHYRSTn);

    GPIODirModeSet(GPIO_PORTJ_BASE, GPIO_PIN_6, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_6, GPIO_PIN_TYPE_STD);
    GPIOPinConfigure(GPIO_PJ6_MIIPHYINTRn);

       // Convert the PB7/NMI pin into a GPIO pin. This requires the use of the
       // GPIO lock since changing the state of the pin is otherwise disabled.
       //
       HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
       HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x80;
       //
       GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_7, GPIO_DIR_MODE_HW);
       GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_7, GPIO_PIN_TYPE_STD);
       GPIOPinConfigure(GPIO_PB7_MIIRXD1);
       // Clear the commit register, effectively locking access to registers
       // controlling the PB7 configuration.
       //
       HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
       HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x00;
}

  • 抱歉对F28M35的以太网模块不是很熟悉,为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上(https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum),将由资深的英文论坛工程师为您提供帮助。