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.

[参考译文] tm4c1294kcpdt:如何在 TM4C1294kcptd 上配置以太网 LED

Guru**** 2331900 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/597506/tm4c1294kcpdt-how-can-configure-ethernet-led-on-tm4c1294kcptd

器件型号:TM4C1294KCPDT

大家好、

我有配置 ethenet led 的问题,请帮我解决!
在我的设计中,我将引脚 PF0 (EN0LED0)连接到 RJ45端口的引脚10/100#,并将 PF4 (EN0LED1)连接到 RJ45端口的引脚 Link/ACT。

并配置以下代码:

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
SysCtlPeripheralSlepEnable (SYSCTL_Periph_GPIOF);
// PF1/PF0/PF4用于以太网 LED。
//
HWREG (GPIO_PORTF_BASE_GPIO_O_LOCK)= GPIO_LOCK_KEY;
HWREG (GPIO_PORTF_BASE_GPIO_O_CR)|= GPIO_PIN_0;
GPIOPinConfigure (GPIO_PF1_EN0LED2);
GPIOPinConfigure (GPIO_PF0_EN0LED0);
GPIOPinConfigure (GPIO_PF4_EN0LED1);
//
//使引脚被外设控制。
//
GPIODirModeSet (GPIO_PORTF_BASE、GPIO_PIN_1、GPIO_DIR_MODE_HW);
GPIODirModeSet (GPIO_PORTF_BASE、GPIO_PIN_0|GPIO_PIN_4、GPIO_DIR_MODE_HW);
//
//为标准推挽操作设置焊盘。
//
GPIOPadConfigSet (GPIO_PORTF_BASE、GPIO_PIN_1、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);
GPIOPadConfigSet (GPIO_PORTF_BASE、GPIO_PIN_0|GPIO_PIN_4、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD); 

因此、当 ehthethernety 处于活动状态时、只有 LED 链路闪烁且 LED 速度关闭。 当我通过硬件交换2个 LED 时、这些工作正常。
但我不想重新布局 PCB。
我的问题:如何配置 PF0是速度 LED,而 PF1是链路 LED?

我尝试了此代码但不起作用:

//
//配置以太网 LED 功能
//
EMAPPHYExtendedWrite (EMAC0_BASE、0、EPHY_LEDCR、
(EMAC0_BASE、0、EPHY_LEDCR)&~ EPHY_LEDCR_BLINKREATE_M)|
EPHY_LEDCR_BLINKRATE_20Hz);
EMAPPHYExtendedWrite (EMAC0_BASE、0、EPHY_LEDCFG、
(EMAC0_BASE、0、EPHY_LEDCFG)&~(EPHY_LEDCG_LED0_M | EPHY_LEDCFG_LED1_M | EPHY_LED1_M | EPHY_LED1_M | EPHY_LEDCG_LED2_M))|
EPHY_LEDCFG_LED0_100BT |
EPHY_LEDCFG_LED1_LINK |
EPHY_LEDCFG_LED2_RxTx); 

谢谢、

Huy Huynh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Huy、

    有3个可配置的 LED、它们当然可以根据您的需求进行配置(很明显、您可以将 LED 路由到正确的引脚)。

    您的配置调用似乎有点令人困惑。 让我们按步骤操作:

    有两个涉及 LED 控制和配置的寄存器。

    您要处理的第一个 EPHY_LEDCR 仅与闪烁速率相关。 如果您已经让它闪烁了、现在就不用费心更改这个寄存器了。

    -第二个- EPHY_LEDCFG -用于定义每个 LED 闪烁的内容。 只需尝试传递所需的配置参数、而不是读取寄存器、屏蔽和重写。 前三个参数是正确的、那么您是否尝试根据需要简单地写入第四个参数? PF0始终为 LED0、PF1为 LED2、PF4为 LED1、因此类似的东西应该起作用:

    EMAPPHYExtendedWrite (EMAC0_BASE、0、EPHY_LEDCFG、

    (EPHY_LEDCFG_LED0_M | EPHY_LEDCFG_LED1_M | EPHY_LEDCFG_LED2_M | EPHY_LEDCFG_LED0_100BT | EPHY_LEDCFG_LED1_LINK | EPHY_LED2_RxTx);

    请注意、有一种配置可以将一个 LED 用于"两个目的":Tx/Rx 上的链路确定/闪烁。 如果您只连接了两个 LED、则可以使用一个用于速度、另一个用于此混合功能。 上述配置设置了三个 LED 的用途、当您说您仅连接了两个 LED 时、其中一个 LED 将"无闪烁"。。

    我注意到的另一件事是关于引脚配置。 我认为您不需要配置 GPIODirModeSet (GPIO_PORTF_BASE、GPIO_PIN_1、GPIO_DIR_MODE_HW)、事实上您使用 的是 GPIOPinConfigure()、这可能会实现(只需确认、我没有检查)。 焊盘配置也可能是如此...

    请告诉我们。

    此致

    布鲁诺