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.

[参考译文] RTOS:如何使用 tm4c129encpdt 芯片修改 EPHYLEDCFG 寄存器中的 LED 模式配置?

Guru**** 2447880 points
Other Parts Discussed in Thread: EK-TM4C129EXL, TM4C1294NCPDT, EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/619148/rtos-how-to-modify-the-led-mode-configuration-in-the-ephyledcfg-register-with-tm4c129encpdt-chip

主题中讨论的其他器件:EK-TM4C129EXLTM4C1294NCPDTEK-TM4C1294XL

工具/软件:TI-RTOS

大家好、  

  该数据表显示了:Register100:EthernetPHYLEDConfiguration-MR37 (EPHYLEDCFG),地址0x025。

  寄存器的默认值是 :复位0x0510。但是我想将 defalut 值修改为其他值。我的代码如下所示:

uint16_t 值;

GPIOPinConfigure (GPIO_PF4_EN0LED1);/* EK_TM4C129EXL_USR_D4 */
GPIOPinTypeEthernetLED (GPIO_PORTF_BASE、GPIO_PIN_4);

SysCtlPeripheralEnable (SYSCTL_Periph_EMAC0);
SysCtlPeripheral0 (SysCtl_EMAC0);SysCtlPeripheralWrite
(EMAC0);SysCtlPeripheralCP0_EMPTL_EMPTL_EMPTL (EMPTL) 0、EPHY_LEDCFG、0x0080);//设置 LED1配置:TX/RX 活动(0x8)上的链路确定/链路
值= EMACPHYREAD (EMAC0_BASE、0、EPHY_LEDCFG);//读取 LED1配置:TX/RX 活动上的链路确定/链路(0x8)? 

我尝试在  EK_TM4C129EXL.c 文件中的 EMAC_INIT()之前添加此代码,但读取的值不是我设置的值。然后我 将此代码添加到 int EMACSnow_emacStart (struct NETIF_DEVICE_PTR_NET_DEVICE)函数中,并将其放在以下位置:

/*在 PHY 中配置并启用链路状态更改中断。 */
value = EMACPHYREAD (EMAC0_BASE、PHY_PHY_ADDR、EPHY_SCR);
value |=(EPHY_SCR_INTEN | EPHY_SCR_INTOE_EXT);
EMMACPHYWrite (EMAC0_BASE、PHY_ADDR、EPHY_SCR_INTOE_EXT);value;
EMAPPHYWrite (EMAC0_BASE、PHY_PHY_ADDR、EPHY_MISR1、(EPHY_MISR1_LINKSTATEN |
EPHY_MISR1_SPEEDEN | EPHY_MISR1_DUPLEXMEN | EPHY_MISCEN); 

结果与以前一样失败。

 我还尝试更改 EMAPPHYWrite()和  

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

    您好 Nancy、

    我编辑了您的帖子以使您的代码更易于阅读-请对将来代码之外的代码块和粗体函数名称使用语法突出显示功能(可以通过 RTF 格式访问语法突出显示器,并查找 "框)。 淡蓝色文本在眼图上并不容易、尽管我非常感谢您尝试将代码与文本分开! )

    就您发现的问题而言、您可以尝试 使用 EMAPPHYExtendedRead 和  EMAPHYExtendedWrite 吗? 这些是应用于 LED 配置的 API。

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

    您好、Ralph、

     非常感谢! 请看一下我的帖子,您会看到最后一位代表错过了。我的报价是:  我还尝试将 EMACPHYWrite() EMACPHYRead()更改为  EMACPHYExtendedRead () EMACPHYExtendedWrite ()。因为我在 E2E 社区中浏览了一些类似的帖子。您是否有评估套件- EK-TM4C129EXL?请执行测试、您会发现更糟糕的错误。 我成功地修改 了 EPHYLEDCFG 作为我的设置,但下次重新调试项目时, 我设置的 LED 配置不是我设置的。 LED1不会执行操作,因为 TX/RX 活动上的配置:0x8L 墨水正常/闪烁。

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

    您是否仍在 EMAC_init 之前设置 LED 的配置?

    此外、LED 是否仅在再次调试或重启电源/复位电路板时复位?

    如果您成功修改了 EPHYLEDCFG 寄存器、您是否仍在寻找有关答案? 如果是、您能否澄清有关您为配置它所做的工作的任何问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

      在 EMAC_INIT 之前、我仍在设置 LED 的配置、  并且修改 EPHYLEDCFG 寄存器失败、我仍然需要正确的方法来修改 LED 的配置、您能给我一些建议吗?

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

    工具/软件:TI-RTOS

    大家好、  

      在我最近的项目中、我只有一 个以太网 PHYLED (LED1)用于指示 以太网链路状态。因此、我需要将 LED1设置为  EPHYLEDCFG 寄存器中的"Link OK/RX 活动(0x8)上的链路确定/Blink。我在  void EK_TM4C129EXL_EMAC (initvoid)中的 EMAC_init (is)之前添加代码(如下所示:  

      GPIOPinConfigure (GPIO_PF4_EN0LED1);/* EK_TM4C129EXL_USR_D4 *

    GPIOPinTypeEthernetLED (GPIO_PORTF_BASE、GPIO_PIN_4);//GPIO_PIN_0 |
    
    SysCtlPeripheralEnable (SYSCTL_Periph_EMAC0);
    SysCtlPeripheralEnable (SYSCTL_Periph_EPHY0);
    while (!SysCtlPeripheralReady (SYSCTL_Periph_EPHY0)||!SysCtlPeripheralReady (SYSCTL_Periph_EMAC0)){}
    
    EMACPHYExtendedWrite (EMAC0_BASE、0、EPHY_LEDCFG、0x0580);//设置 LED1配置:TX/RX 活动上的链路确定/链路(0x8)
    值= EMAPPHYExtendedRead (EMAC0_BASE、0、EPHY_LEDCFG); 
    /*调用 EMAC_init 后、无法更改 EMAC_CONFIG */ emac_init();

      我可以从 EMACPHYExtendedRead (EMAC0_BASE、0、EPHY_LEDCFG)()中读取配置值、该值与我设置的值相同。但 LED1剂量不会在  TX/RX 活动(0x8)上执行链路确定/链路、  是作为 defalut 值(RX/TX 活动(0xMAHYCPI  )、重复写入(0xMACP1)。 我无法更改 PHYLED 配置。访问 E2E 社区、我尝试将函数更改为 EMACPHYExtendedRead ()和 EMACPHYExtendedWrite ()。 可以设置 PHYLED 配置、因此我可以在 我的帖子中发布上述后续代码。

    在哪里以及如何修改 TM4C1294NCPDT 的片上以太网 PHYLED 配置?

     

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

    我将您的新主题与这个主题合并了... 这对我来说是一个未决问题、我正在为您进行研究、因此此时不需要重复的线程。 今天稍后我将为您提供更多详细信息。 谢谢你。

    此外、我以前没有回答我的所有问题:

    "此外、LED 是否仅在再次调试时或在重启电源/复位电路板时复位?"
    *由于以下行而被特别询问:"更糟糕的是、我成功地修改了 EPHYLEDCFG 作为我设置的值、但下次重新调试项目时、我设置的 LED 配置不是我设置的值。"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Nancy、

    我今天无法测试以太网 LED 功能、但它仍在我的工作板上。

    我在前面的一个主题中注意到、有人提到需要在配置完成后配置 LED (我认为其中包括 EMAC_init 函数)。 此外、从 enet_IO 示例中查看 lwiplib.c、EMACConfigSet 函数在 EMACInit 之后调用、因此我不确定"调用 EMAC_init 后、无法更改 EMAC_CONFIG "注释的有效性

    如前所述、我没有机会测试前后执行 LED 配置、但尝试在 EMAC Init 和 Configurations 之后使用 LED 配置将是我建议您采取的一个步骤、看看这是否提供了积极的结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nancy、

    我能够使用 enet_IO 示例测试 LED 配置、并确认您确实需要在 Init 和其他配置之后设置 LED。 在 Init 设置之前和之后、我都使用 LED 进行了测试。 在之前、它默认为正常 LED、但之后、它使用了我提供的新设置。 同样、您需要使用 ExtendedWrite/Read 来完成此操作。

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

    您好、Ralph、

      非常感谢!

      我发布了另一个主题、因为我认为我没有 阐述我的问题。我在项目中使用 TI-RTOS。我 在工具/软件中强调了它 、我停留的代码是   经典 TI-RTOS 以太网示例中的函数 void EK_TM4C129EXL_initEMAC (void)()()、例如 tiveEcho EK_TM4C129EXL_tive_tinat_enet_tiven_tine.ti_enet_tiv_en_tiv_en_enet_tiv_en_tiven_en_tintri 示例、在 与我的示例不同,毫无疑问,您认为我的结果不是您测试的结果。我的结果 : 可以 将 LED 配置更改为寄存器 EPHYLEDCFG 中设置的值、但 LED 用作 TI 评估套件- EK-TM4C129EXL 中的默认值0x510.I 测试。

      此外、我使用 了 EMACPHYExtendedWrite()和  EMACPHYExtendedRead()、因为 当我对 ti-chips 有任何疑问时、我将通过 E2E 社区搜索任何可能的或相对的帖子、以搜索我自己的帖子。您还可以回复我的另一个副本帖子。  

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

    您好、Nancy、

    我尝试对 TI-RTOS 示例进行类似的更改、但也不幸运。 现在、我将了解如何从这里聘请 RTOS 专家来提供帮助、而需要的 DriverLib API 是清晰的。 我不确定如何自行将它们集成到 RTOS 示例中。 我尝试这样做会使程序无法运行。

    我将从下面的 TivaWare 示例中发布一个代码片段、我已经正确地使用了该代码片段、因此 RTOS 团队将其作为工作内容的参考点:

    //
    //配置以与用户需要的任何 PHY 一起使用。
    //
    EMAPPHYConfigSet (EMAC0_BASE、EMAC_PHY_CONFIG);
    
    //
    //初始化 MAC 并设置 DMA 模式。
    //
    MAP_EMACInit (EMAC0_BASE、ui32SysClkHz、
    EMAC_BCONFIG_Mixed_BURST | EMAC_BCONFIG_PRIORY_FIXED、
    4、4、0);
    
    //
    //设置 MAC 配置选项。
    //
    MAP_EMACConfigSet (EMAC0_BASE、(EMAC_CONFIG_FUL_DUPLEX |
    EMAC_CONFIG_CHECKSUM_OFFLOAD |
    EMAC_CONFIG_7BYTE_PREAMBLE |
    EMAC_CONFIG_IF_GAP_96BITS |
    EMAC_CONFIG_USE_MACADDR0 |
    EMAC_CONFIG_SA_FTER_descriptor |
    EMAC_CONFIG_BO_LIMIT_1024)、
    (EMAC_MODE_RX_STORE_Forward |
    EMAC_MODE_TX_STORE_Forward |
    EMAC_MODE_TX_THRESHOLD_64_Bytes |
    EMAC_MODE_RX_THRESHOLD_64_Bytes)、0);
    
    //
    //使用硬件的 MAC 地址对硬件进行编程(用于过滤)。
    //
    MAP_EMACAddrSet (EMAC0_BASE、0、(uint8_t *) pui8MAC);
    
    EMACPHYExtendedWrite (EMAC0_BASE、0、EPHY_LEDCFG、0x0588);//设置 LED1配置:TX/RX 活动上的链路确定/链路(0x8) 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nancy、

    我在 TCP Echo 项目中添加了 C:\ti_tirtos_tivac_2_16_01_14\products\tidrivers_tivac_2_16_01_13\packages/ti\drivers\EMAC\EMACSnow.c 文件、然后将粗体行添加到 EMACSnow_NIMUInit()中。

      EMACAddrSet (EMAC0_BASE、0、(uint8_t *) device->mac_address);

      EMAPPHYExtendedWrite (EMAC0_BASE、0、EPHY_LEDCFG、0x0588);

      /*初始化 DMA 描述符。 *

      EMACSnow_InitDMA 描述符();

    我构建并运行了该示例。 我知道绿色 D3和 D4 LED 都在闪烁、表示 EK-TM4C1294XL LaunchPad 上的活动。 这是您想要做的吗?

    Todd