这几天DM9000又出问题了,郁闷的要死,以前调好的网络咋又出问题了咧,DM9000芯片换了一块又一块,就是读不到芯片的ID,(在换第一次的时候能连上电脑,显示有连接,但是PING不通,后面偶尔连得上,到后来把WINCE系统刷机了后就彻底连不上了),烙铁过芯片,换芯片,换外围器件等等,无果。因为电源是2.65V,就在琢磨,1117-2.5出来的电压应该是2.5V,怎么会升到2.65V咧,查手册发现最多也只在2.45-2.55V,2.65也升得也太高了吧,把1117拆了,发现居然还有2.65V电压,惊诧!电压从哪来的?最后发现电压是从DM9000中出来的,那么为何DM9000会产生2.65的电压咧?最后看芯片手册,昏倒!原来它的RXVDD25和TXVDD25是输出,为网络变压器提供2.5V电压的,而不是输入,我还傻呼呼的从大老远引了个2.5V的电源给它供电。最后去掉磁珠,把1117和DM9000分开,1117输出电压正常,DM9000的RXVDD25输出2.65V电压。
电源的问题解决后,芯片还是没有读到ID,感觉问题可能不在芯片,百无聊赖之下把博客打开看看,发现“杨创的DM9000中断为EINT9,我的为EINT19,懒得改中断的BSP了,直接将我的DM9000的中断跳接到EINT9上,CS片选杨创接的NGCS3,我接的NGCS4,这个好办,接注册表的"IoAddress"=dword:18000300直接改为"IoAddress"=dword:20000300,编译,下载,运行,在串口的打印信息发现读到了正确的ID,[dm9: Chip signature is 90000A46,证明地址设置正确”,这才找到原因,原来IOADDRESS没有设置!难怪读不到ID。改了之后一切正常!