关于DM9000和STM32F103VET6

2019-07-21 01:04发布

做了一个STM32F103VET6和DM9000的板子,用的原子程序,电路图这样,里面有错的,这个电路图应该是有问题的,具体问题在哪呢?是不是CMD引脚接错了?


这个CMD引脚具体接在哪里?是不是会对地址产生影响,在数据手册上有这样一句话: 16位 HADDR[25:1]与FSMC_A[24:0]对应相连, HADDR[0]未接 64M字节/2x 16 = 512 M位


原子接的是A7,这中间怎么计算的?没看明白呀,丢大神指导

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
smiletudy
1楼-- · 2019-07-21 06:26
正点原子 发表于 2018-7-26 01:32
继续努力下吧,应该快成功了。

感谢哥了,真的,搞定了
smiletudy
2楼-- · 2019-07-21 11:49
第二张图弄错了,跟这个没有关系
正点原子
3楼-- · 2019-07-21 15:01
计算方法,参考我们液晶屏例程的教程文档。  然后如果你还是搞不定,建议你直接飞线,按我们的原理图设计。
smiletudy
4楼-- · 2019-07-21 17:34
 精彩回答 2  元偷偷看……
smiletudy
5楼-- · 2019-07-21 20:08
正点原子 发表于 2018-7-24 02:04
计算方法,参考我们液晶屏例程的教程文档。  然后如果你还是搞不定,建议你直接飞线,按我们的原理图设计。

仔细研究了一下 比如按照历程的接到A7上。那么地址应该就是基地址+(2^7)*2了,历程中没看到这个地址,读取或者写入的时候是用类型强制转换实现的么?
smiletudy
6楼-- · 2019-07-21 20:33
正点原子 发表于 2018-7-24 02:04
计算方法,参考我们液晶屏例程的教程文档。  然后如果你还是搞不定,建议你直接飞线,按我们的原理图设计。

解决读取ID出错的问题了,接到FSMC_A16上以后,读取数据的时候需要加一个地址
#define DM9000_DATA (*((volatile unsigned int *) (0X60020000|0x000000FE)))
同时在原来的DM9000_ReadReg函数中将return DM9000->DATA;
改为return DM9000_DATA ;顺便感叹下原子的这个历程接到A7上真的很巧妙,根据计算直接用强制类型转换就可以了,正好2个字节
现在新的问题是DM9000 Establish Link Failed!按道理说写和读没有问题的时候会失败吗?看历程应该不会失败的吧

一周热门 更多>