初级会员
- 积分
- 129
- 金钱
- 129
- 注册时间
- 2019-1-29
- 在线时间
- 67 小时
|
发表于 2019-3-14 09:41:43
|
显示全部楼层
那很可能是电路上的问题了.
灯要先亮起来后面的才能工作.
另外的是网卡初始化后, 是有读寄存器拿ID的过程可以验证和芯片的通信是否正常的.
我这边用的是CubeMX带的第三方包 , 硬件是原子的阿波罗带的LAN8720
pObj->IO.ReadReg(pObj->DevAddr, LAN8742_PHYI1R, ®value);
//printf("LAN8742_PHYI1R %d\r\n",regvalue); //7
pObj->IO.ReadReg(pObj->DevAddr, LAN8742_PHYI2R, ®value);
//printf("LAN8742_PHYI2R %d\r\n",regvalue); //49393 & 0xFFF0 => 0xC0F0 , 49392
这寄存器的值能读出来.
#define LAN8742_BCR ((uint16_t)0x0000U)
#define LAN8742_BSR ((uint16_t)0x0001U)
#define LAN8742_PHYI1R ((uint16_t)0x0002U)
#define LAN8742_PHYI2R ((uint16_t)0x0003U)
#define LAN8742_ANAR ((uint16_t)0x0004U)
#define LAN8742_ANLPAR ((uint16_t)0x0005U)
#define LAN8742_ANER ((uint16_t)0x0006U)
#define LAN8742_ANNPTR ((uint16_t)0x0007U)
#define LAN8742_ANNPRR ((uint16_t)0x0008U)
#define LAN8742_MMDACR ((uint16_t)0x000DU)
#define LAN8742_MMDAADR ((uint16_t)0x000EU)
#define LAN8742_ENCTR ((uint16_t)0x0010U)
#define LAN8742_MCSR ((uint16_t)0x0011U)
#define LAN8742_SMR ((uint16_t)0x0012U)
#define LAN8742_TPDCR ((uint16_t)0x0018U)
#define LAN8742_TCSR ((uint16_t)0x0019U)
#define LAN8742_SECR ((uint16_t)0x001AU)
#define LAN8742_SCSIR ((uint16_t)0x001BU)
#define LAN8742_CLR ((uint16_t)0x001CU)
#define LAN8742_ISFR ((uint16_t)0x001DU)
#define LAN8742_IMR ((uint16_t)0x001EU)
#define LAN8742_PHYSCSR ((uint16_t)0x001FU)
|
|