[STM32F4] STM32F407VG FSMC 访问32位变量问题

[复制链接]
3358|5
 楼主| bin726 发表于 2013-12-31 13:28 | 显示全部楼层 |阅读模式
使用STM32F407VG(100pin) 访问FPGA

地址线使用ST的FSMC_A16~FSMC_A23作为 A[0...7],基地址位0x6000 000

读取一个32变量(int32TEST = *(int32*)(0x6000 000))时,ARM会发出两次读16的时序;
问题是地址线(A[0...7])上的电平没有变化,所以读到的2个数据是一个地址的数据。分析原因:两次读操作其实地址是有变化的,只是变化的位置是在ST的FSMC_A0~FSMC_A15上。100pin芯片却没有这16位地址线。
怎样才能正常的访问32位的变量呢(不要分两次操作)
airwill 发表于 2014-1-1 08:26 | 显示全部楼层
分析完全正确. 32变量会发出两次读16的时序;由于 ARM  已经固定了 A0 这个地址线, 两次读16的时序又必然用到 A0 线. 所以, 必须要用起来这条线.
好在就一根线. 可以利用NADV 信号通过 HC126 这类器件从 AD0 上分离出 A0 信号. 或者直接让 FPGA 完成这个任务.

 楼主| bin726 发表于 2014-1-3 14:53 | 显示全部楼层
又仔细阅读了一下手册:对于100pin的芯片,FSMC的操作模式可以使用地址数据分时复用进行操作,即FSMC_AD[0...15]在信号线NADV为低是作为地址线A[0...15],信号线NADV为高是作为数据线。这样就避免了地址加1变化在低地址线的问题了。地址数据分时复用模式支持对NOR和PSRAM的访问。

但是我配置成分时复用的方式后,新问题有来了;读写操作时,我的片选、读信号等等这些时序都看不到了:'(;哪位大侠有相关的经验或例程,麻烦指点一下。
谢谢大家的关心,哪怕只是浏览一下!
继续调试!
 楼主| bin726 发表于 2014-1-14 15:17 | 显示全部楼层
问题已解决,上次看不到时序的问题是示波器探头出现了问题。感谢大家的关注!如有类似问题可和我谈论。
21世纪黄毛 发表于 2014-2-12 21:22 | 显示全部楼层
学习了
wlzxzq 发表于 2014-2-18 12:33 | 显示全部楼层
现在都没有打电话啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部