请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:SK-AM64 大家好
void InitializeEthernet() { _mainpadconfig->PADCONFIG126 = BIT18|BIT16|0x4;//18MDIO _mainpadconfig->PADCONFIG127 = BIT16|0x4;//19MDC _mainpadconfig->PADCONFIG158 = BIT21|BIT18|BIT16|0x0;//EXTI _mainpadconfig->PADCONFIG71 = BIT21|BIT18|BIT16|0x4; _mainpadconfig->PADCONFIG74 = BIT21|BIT18|BIT16|0x4; _mainpadconfig->PADCONFIG84 = BIT21|BIT18|BIT16|0x4; _mainpadconfig->PADCONFIG85 = BIT21|BIT18|BIT16|0x4; _mainpadconfig->PADCONFIG51 = BIT21|BIT18|BIT16|0x4; _mainpadconfig->PADCONFIG54 = BIT21|BIT18|BIT16|0x4; _mainpadconfig->PADCONFIG73 = BIT16|0x4; _mainpadconfig->PADCONFIG75 = BIT16|0x4; _mainpadconfig->PADCONFIG76 = BIT16|0x4; _mainpadconfig->PADCONFIG83 = BIT16|0x4; _mainpadconfig->PADCONFIG55 = BIT16|0x4; _mainpadconfig->PADCONFIG56 = BIT16|0x4; _mainpadconfig->PADCONFIG66 = BIT21|BIT18|BIT16|0x2; _mainpadconfig->PADCONFIG67 = BIT21|BIT18|BIT16|0x2; _mainpadconfig->PADCONFIG68 = BIT21|BIT18|BIT16|0x2; _mainpadconfig->PADCONFIG69 = BIT21|BIT18|BIT16|0x2; _mainpadconfig->PADCONFIG70 = BIT21|BIT18|BIT16|0x2; _mainpadconfig->PADCONFIG72 = BIT21|BIT18|BIT16|0x2; _mainpadconfig->PADCONFIG77 = BIT16|0x2; _mainpadconfig->PADCONFIG78 = BIT16|0x2; _mainpadconfig->PADCONFIG79 = BIT16|0x2; _mainpadconfig->PADCONFIG80 = BIT16|0x2; _mainpadconfig->PADCONFIG81 = BIT16|0x2; _mainpadconfig->PADCONFIG82 = BIT16|0x2; _mainpadconfig->PADCONFIG98 = BIT16|0x7; _mcupadconfig->PADCONFIG5 = BIT16|0x7; SOC_moduleClockEnable(TISCI_DEV_CPSW0,1); SOC_moduleClockEnable(TISCI_DEV_DMASS0,1); for(uint32 i=0;i< (2 *100);i++); _cpsw->mdio.CONTROL &= (~0xFF | 99); _cpsw->mdio.CONTROL &= ~BIT31; _cpsw->mdio.CONTROL |= BIT24; _cpsw->mdio.CONTROL |= BIT30; uint16 phyregisters0[0x1DF]; uint16 phyregisters1[0x1DF]; uint32 status=0; for(uint32 i=0;i<0x1DF;i++)status = MDIO_phyExtRegRead((uint32)&_cpsw->mdio, NULL, 0, i, &phyregisters0[i]); phyregisters0[0x0000] |= BIT09; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 0, 0x0000, phyregisters0[0x0000]); phyregisters0[0x0018] = 0x2232; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 0, 0x0018, phyregisters0[0x0018]); phyregisters0[0x0032] |= BIT07; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 0, 0x0032, phyregisters0[0x0032]); phyregisters0[0x00E9] = 0xDF22; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 0, 0x00E9, phyregisters0[0x00E9]); phyregisters0[0x001F] = BIT14; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 0, 0x001F, phyregisters0[0x001F]); for(uint32 i=0;i< (200 *100);i++); for(uint32 i=0;i<0x1DF;i++)status = MDIO_phyExtRegRead((uint32)&_cpsw->mdio, NULL, 1, i, &phyregisters1[i]); phyregisters1[0x0000] |= BIT09; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 1, 0x0000, phyregisters1[0x0000]); phyregisters1[0x0018] = 0x2232; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 1, 0x0018, phyregisters1[0x0018]); phyregisters1[0x0032] |= BIT07; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 1, 0x0032, phyregisters1[0x0032]); phyregisters1[0x001F] = BIT14; status = MDIO_phyExtRegWrite((uint32)&_cpsw->mdio, NULL, 1, 0x001F, phyregisters1[0x001F]); for(uint32 i=0;i< (200 *100);i++); volatile uint32 *CTRLMMR_ENET1_CTRL = ((volatile uint32*)(0x43004044)); volatile uint32 *CTRLMMR_ENET2_CTRL = ((volatile uint32*)(0x43004048)); *CTRLMMR_ENET1_CTRL = 2; *CTRLMMR_ENET2_CTRL = 2; _cpsw->control.CONTROL = BIT15|BIT14|BIT02; _cpsw->control.PTYPEREG = 0x2; _cpsw->control.VLANLTPYE = 0x88A88100; _cpsw->control.FREQUENCY = 250; _cpsw->control.P0RXMAXLEN = 1518; _cpsw->control.STATPORTEN = BIT02|BIT01|BIT00; _cpsw->ale.CONTROL |= BIT31; _cpsw->ale.CONTROL |= BIT30; _cpsw->ale.CONTROL |= BIT04; _cpsw->control.P0CONTROL|= BIT01|BIT00; _cpsw->control.P1CONTROL|= BIT01; _cpsw->control.P1SAL = 0xABCD; _cpsw->control.P1SAH = 0xCDEF0000; _cpsw->control.P1MACCONTROL = BIT24|BIT23|BIT22|BIT07; }
我编写了上述代码来配置 CPSW。 焊盘配置和 MDIO 正常工作。 我已使用 PRUICSSG 对其进行了测试、并且 PRU 接收并发送数据正常。
现在、我将尝试使用 CPSW 而不是 PRU 来实现该目的
我不确定 CPSW 器件配置是否正确。 这些许多注册是否足以配置 CPSW 以接收数据、是否缺失任何数据、或者订单是否错误? 由于所有端口上的统计寄存器都是死区和0、因此即使以太网插孔接收到的 LED 闪烁、也不显示任何活动。
谢谢