PQdsp20170419.rar使用附件中的工程,对MAC进行配置,通过lan8710a进行网口通信,板子使用的是ti官方的C6748的LCDK板子,测试通信不上。在程序里设置发送,用示波器测试C6746的MAC层的引脚也没有信号输出,希望各位帮忙看一下是我哪里的配置或者用法不对,谢谢!
Shine:
请问是参考C6748 LCDK开发板设计的c6746板子还是直接用的LCDK开发板?
请检查一下Pinmux和PSC是否配置正确?starterware里有网口例程。
xiaobin lin:
回复 Shine:
我现在用C646做了一个板子控制交换机芯片,但是没有调通,我怀疑是MAC控制有问题。然后就选择使用TI官方的C6748 LCDK开发板进行调试,两种调试使用的是相同的MAC层程序,只是修改了phy层驱动。我debug查过寄存器Pinmux和PSC是否配置应该是正确的。//EMAC PSC在gel或者boot里面可以设置,此处可以加上PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_EMAC, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);//DSP EMAC pinmuxEMAC 和 MDIO的引脚的分配EMACPinMuxSetup();//没有问题 顺序1
EMACPinMuxSetup();函数如下:
void EMACPinMuxSetup(void)
{unsigned int savePinMux = 0;
/*** Clearing the bits in context and retaining the other bit values** of PINMUX4 register. MDIO*/savePinMux = HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) & \~(SYSCFG_PINMUX4_PINMUX4_3_0 | \SYSCFG_PINMUX4_PINMUX4_7_4);/*** Performing the actual pin multiplexing to select MDIO peripheral's pins** for use.*/HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = \(PINMUX4_MDIO_ENABLE | savePinMux);/*** Clearing the bits in context and retaining the other bit values** of PINMUX2 register.*/savePinMux =HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(2)) & \~(SYSCFG_PINMUX2_PINMUX2_31_28 | \SYSCFG_PINMUX2_PINMUX2_27_24 | \SYSCFG_PINMUX2_PINMUX2_23_20 | \SYSCFG_PINMUX2_PINMUX2_19_16 | \SYSCFG_PINMUX2_PINMUX2_15_12 | \SYSCFG_PINMUX2_PINMUX2_11_8 | \SYSCFG_PINMUX2_PINMUX2_7_4);
/*** Performing the actual Pin Multiplexing to select relevant pins in** PINMUX2 register.*/HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(2)) = \(PINMUX2_EMAC_ENABLE | savePinMux);
/*** Clearing the bits in context and retaining the other bit values** of PINMUX3 register.*/savePinMux = HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) & \~(SYSCFG_PINMUX3_PINMUX3_31_28 | \SYSCFG_PINMUX3_PINMUX3_27_24 | \SYSCFG_PINMUX3_PINMUX3_23_20 | \SYSCFG_PINMUX3_PINMUX3_19_16 | \SYSCFG_PINMUX3_PINMUX3_15_12 | \SYSCFG_PINMUX3_PINMUX3_11_8 | \SYSCFG_PINMUX3_PINMUX3_7_4 | \SYSCFG_PINMUX3_PINMUX3_3_0);/*** Performing the actual Pin Multiplexing to select relevant pins in** PINMUX3 register.*/HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) = \(PINMUX3_EMAC_ENABLE | savePinMux);
/* Enable MII mode of operation */HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_CFGCHIP3) &= ~(SYSCFG_CFGCHIP3_RMII_SEL);}
xiaobin lin:
回复 Shine:
用的C6748的LCDK开发板