弄了几天DM9000了,一直不能正确接收数据,郁闷了几天,现在终于行了,高兴一下。
参考了这篇文章《单片机驱动DM9000网卡芯片(详细调试过程)》,文章很好,写的很详细,对DM9000驱动感兴趣可以看看原文
http://hi.baidu.com/mikenoodle/blog/item/dda3a4cc034e871800e9287a.html
http://hi.baidu.com/mikenoodle/blog/item/a271def982bc6a51242df279.html
原文就不转载了,主要总结一下我遇到的问题。
问题一 没有开MMU,不能进入中断(我的程序在内存中运行)
问题二:读取DM9000的ID不对
原因1,读基地址不对,在micro2440中应该是
#define DM_ADD (*((volatile unsigned short *) 0x20000300))
#define DM_CMD (*((volatile unsigned short *) 0x20000304))
原因2 ,MMU没有设置好
MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_NCNB);
bank4读写类型应该是RW_NCNB
问题三,不能正确接收数据
原因:误读了一个寄存器DM9000_MRCMD,读数据地址自动增加,误读了一次导致,地址偏移,总得不到数据。
稍后上传整个工程的代码,现在比较乱,整理一下再上传。
mirco2440 DM90000驱动
用户1573259 2013-12-11 14:25
用户429014 2013-7-17 23:18
用户443154 2013-5-17 15:51
用户431156 2013-5-15 14:00
唐景天0 2013-2-28 19:13
用户238337 2013-1-19 05:41
用户1569871 2012-12-21 20:37
用户118363 2012-9-18 00:10
用户426827 2012-8-30 21:41
用户580900 2012-5-20 14:35