硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3317|回复: 9
收起左侧

[以太网] DM9000AEP地址问题

[复制链接]

13

主题

185

回帖

224

积分

高级会员

积分
224
发表于 2021-2-24 17:35:11 | 显示全部楼层 |阅读模式
我按照V7中DM9000电路,重新画了一块板,在嘉立创SMT的。
电路板信息如下:
1. MCU为STM32H743VIT6,DM9000的CMD接A18,CS接NE1。
2. DM9000晶振为有源晶振,接pin44

基于V7开发板的双网口例程,我做的修改如下:
1. 修改DM9000_BSP.c和ETH_DM9000.c中的寄存器地址:
    #define   NET_REG_ADDR                        (*((volatile uint16_t *) 0x60000000))
    #define   NET_REG_DATA                        (*((volatile uint16_t *) 0x60080000))

2.配置FMC为16位模式
    hsram.Init.MemoryDataWidth    = FMC_NORSRAM_MEM_BUS_WIDTH_16;        /* 16位总线宽度 */


3. 在DM9000_BSP.c的 etherdev_init 函数中添加读取ID的代码
    dm9k_reset();
    printf("dm9k_reset\r\n");
    osDelay(100);
    dm9k_ID = dm9k_ReadID();
    printf("dm9k_ReadID: 0x%x\r\n", dm9k_ID);//正确情况应该是:0x0A469000


故障现象:
1. 读取的ID为0x3131313(正确情况应该是:0x0A469000)
2. 插入网线网口的灯都不亮

而在V7开发板,我修改成16位FMC模式,修改寄存器地址,效果与32位情况一样正常。

请问我这是什么问题呢?谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107912
QQ
发表于 2021-2-24 18:43:14 | 显示全部楼层
DM9000产生的2.5V电压是否正常。
回复

使用道具 举报

13

主题

185

回帖

224

积分

高级会员

积分
224
 楼主| 发表于 2021-2-24 18:55:32 | 显示全部楼层
eric2013 发表于 2021-2-24 18:43
DM9000产生的2.5V电压是否正常。

2.4x,这应该算正常吧?
回复

使用道具 举报

13

主题

185

回帖

224

积分

高级会员

积分
224
 楼主| 发表于 2021-2-24 18:56:50 | 显示全部楼层
eric2013 发表于 2021-2-24 18:43
DM9000产生的2.5V电压是否正常。

还有个问题是我还其他地址,故障现象都一样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107912
QQ
发表于 2021-2-25 08:08:52 | 显示全部楼层
gallop020142 发表于 2021-2-24 18:55
2.4x,这应该算正常吧?

正常。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107912
QQ
发表于 2021-2-25 08:10:35 | 显示全部楼层
gallop020142 发表于 2021-2-24 18:56
还有个问题是我还其他地址,故障现象都一样

你降低FMC的GPIO速度等级试试,是不是好点。
回复

使用道具 举报

13

主题

185

回帖

224

积分

高级会员

积分
224
 楼主| 发表于 2021-2-25 09:41:15 | 显示全部楼层
eric2013 发表于 2021-2-25 08:10
你降低FMC的GPIO速度等级试试,是不是好点。

故障依旧呀。
总之我设置的地址是对的,是吧?那我再找找办法吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107912
QQ
发表于 2021-2-26 09:49:34 | 显示全部楼层
gallop020142 发表于 2021-2-25 09:41
故障依旧呀。
总之我设置的地址是对的,是吧?那我再找找办法吧。

DM9000的原理图部分贴下,方便的话。
回复

使用道具 举报

13

主题

185

回帖

224

积分

高级会员

积分
224
 楼主| 发表于 2021-2-26 16:24:44 | 显示全部楼层
eric2013 发表于 2021-2-26 09:49
DM9000的原理图部分贴下,方便的话。

谢谢您。刚刚找到问题所在:
在bsp.c里面,需要根据地址范围修改MPU的大小,正确的大小如下:
MPU_InitStruct.Size             = ARM_MPU_REGION_SIZE_1MB;//ARM_MPU_REGION_SIZE_64KB;

V7的地址是0x60001000,是在64k范围内。
而我的地址是0x60080000,超过了64k,所以不正确。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107912
QQ
发表于 2021-2-27 08:40:14 | 显示全部楼层
gallop020142 发表于 2021-2-26 16:24
谢谢您。刚刚找到问题所在:
在bsp.c里面,需要根据地址范围修改MPU的大小,正确的大小如下:
MPU_Init ...

好的,这个地方还挺重要的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-18 10:05 , Processed in 0.196875 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表