硬汉嵌入式论坛

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

[有问必答] dm9000初始化奇葩问题

[复制链接]

5

主题

4

回帖

5

积分

新手上路

积分
5
发表于 2014-5-19 13:19:12 | 显示全部楼层 |阅读模式
我把dm900_initnic函数的最后一句dm9k_debug_test();不注释的话,可以初始化正常运行,debug_test里面的各项测试也都正常,
注释掉后,dm9000_initnic的第一句都无法运行iow(DM9000_REG_NCR, DM9000_REG_RESET);    敢问什么原因???
void dm9k_initnic(void)
{
    iow(DM9000_REG_NCR, DM9000_REG_RESET);            /* 对 DM9000A 进行软件重置 */
    dm9k_udelay(10);                                /* delay 10us */

    dm9k_hash_table();                                /* 设置 DM9000A MAC 及 多播*/

    dm9k_reset();                                    /* 进行 DM9000A 软件设置 */

    iow(DM9000_REG_GPR, DM9000_PHY_OFF);            /* 关闭 PHY ,进行 PHY 设置*/
    dm9k_phy_write(0x00, 0x8000);                    /* 重置 PHY 的寄存器 */
#ifdef DM9000A_FLOW_CONTROL
    dm9k_phy_write(0x04, 0x01e1 | 0x0400);            /* 设置 自适应模式相容表 */
#else
    dm9k_phy_write(0x04, 0x01e1);                    /* 设置 自适应模式相容表 */
#endif
    dm9k_phy_write(0x00, 0x1000);                    /* 设置 基本连接模式 */
    /* 连接模式设置
      0x0000 : 固定10M半双工
      0x0100 : 固定10M全双工
      0x2000 : 固定100M半双工
      0x2100 : 固定100M全双工
      0x1000 : 自适应模式
    */
    dm9k_phy_write(0x00, 0x1000);                /* 设置 基本连接模式 */

    iow(DM9000_REG_GPR, DM9000_PHY_ON);                /* 结束 PHY 设置, 开启 PHY */

    //dm9k_debug_test();
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2014-5-19 19:21:38 | 显示全部楼层
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2014-5-19 19:22:36 | 显示全部楼层
1.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 19:09 , Processed in 0.157530 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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