初级会员
- 积分
- 65
- 金钱
- 65
- 注册时间
- 2017-7-6
- 在线时间
- 8 小时
|
1金钱
硬件参考探索者F4如图所示
u8 LAN8720_Init(void)
{
u8 rval=0;
u16 m;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_GPIOD,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_RMII);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_ETH);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource1, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_ETH);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14;
GPIO_Init(GPIOG, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource11, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource13, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource14, GPIO_AF_ETH);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOD, &GPIO_InitStructure);
LAN8720_RST=0;
for(m=0;m<10000;m++);
LAN8720_RST=1;
return !rval;
}
int main(void)
{
Hardware_Configuration();
devAddr_dau = readDeviceAddr(); //read device address
devTypeAddr_dau = readDeviceTypeAddr(); //read device type address
LAN8720_Init();
ETH_WritePHYRegister(0, 0, 0x5555);
lan8720a_bcr = ETH_ReadPHYRegister(0, 0);
while(1)
{
if(devAddr_dau==0)
{
debugeHardware();
}
else
{
}
scanTimeValue();
GPIO_ScanOutputCtr();
}
}
调试目的:LAN8720a写入读出寄存器能够正常操作
测试结果:BCR寄存器写入0x1234读出为0x0000
问题排查:测试LAN8720A晶振25MHZ起振
问题请教:1.根据原理图nINTSEL引脚(PIN2)=0, nINT/REFCLKO引脚(PIN14)是否应该测试到50MHZ波形?(目前测试不到)
2.nINT/REFCLKO引脚(PIN14)如果没有50MHZ信号输入,MDIO/MDC引脚是否能够测试到信号?(目前测试不到)
3.使用该程序实现LAN8720a寄存器写入读出,是否存在问题?
补充说明:板子IO输入输出、串口其它功能运行正常。
请熟悉的朋友发表意见,多多指教,谢谢!
|
-
-
最佳答案
查看完整内容[请看2#楼]
看内存,也没有超出呀?
刚刚在论坛里找到了答案:
如果是用了原子哥的程序,请修改下堆的大小。MEM1_MAX_SIZE参数改小点。[/backcolor]
类似于:[/backcolor]
//mem1内存参数设定,mem1完全处于内部SRAM里面[/backcolor]
#define MEM1_BLOCK_SIZE 32 //内存块大小为32字节[/backcolor]
#define MEM1_MAX_SIZE 100*1024 //最大管理内存 80k[/backcolor]
#defi ...
|