您好!
我 使用的是 TM4C129ENCPDT 微控制器、 集成的 PHY 支持10Base-T 和100Base-TX 信号、全双工和半双工、自动协商模式。 我使用以下配置来 成功初始化以太网、并且它工作正常、没有任何问题:
{
//启用以太网外设。
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_EMAC0);
MAP_SysCtlPeripheralReset (SYSCTL_Periph_EMAC0);//执行外设的软件复位
//如果内部 PHY 存在并且我们正在运行,则启用它
//要求使用它。
if (((EMAC_PHY_CONFIG 和 EMAC_PHY_TYPE_MASK)== EMAC_PHY_TYPE_INTERNAL)
{
//我们被要求配置以便与内部配合使用
// PHY。 它是否存在?
if (MAP_SysCtlPeripheralPresent (SYSCTL_Periph_EPHY0))
{
//
//是-启用并重置它。
//
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_EPHY0);
MAP_SysCtlPeripheralReset (SYSCTL_Periph_EPHY0);
}
其他
{
//
//此部件上不存在内部 PHY,因此请在此处挂起。
//
while (1)
{
}
}
}
//等待 MAC 退出复位状态。
while (!map_SysCtlPeripheralReady (SYSCTL_Periph_EMAC0))
{
}
//配置以与用户需要的任何 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);
}
但是、当我尝试应用自定义配置时遇到了问题、例如在程序运行期间更改速度模式、您能不能建议我使用正确的序列和函数来应用新配置、并通过 EMACPC 位 ANEN 和 ANMODE 更改以太网速度和模式?
此致、