打印
[STM32F1]

FSMC读8位内存出错,请教大家

[复制链接]
734|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
static|  楼主 | 2019-12-24 10:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 static 于 2019-12-24 11:05 编辑

大家好,使用FSMC经验不足,现使用FSMC读取8bit 外部RAM,读到的数据有错位且只有第一次是正确的的,求教大家,谢谢大家帮忙指正。


如上图: CE接NE2,所以CS地址空间是:BANK2:6400 0000 --- 67ff ffff ;
FSMC 配置如下(根据官方代码修改):



读数据:

uint8_t data = 0x55 ;
  /* Write data to the SRAM memory */
  for(uwIndex = 0; uwIndex < 3; uwIndex++)
  {
    *(__IO uint8_t *)(0x64000000 + uwIndex) = data;
   printf ( "FSMC read buffer[%d] fill = %x , \r\n" , uwIndex , data );
  }

  /* Read back data from the SRAM memory */
  for(uwIndex = 0; uwIndex < 3; uwIndex++)
  {
    aRxBuffer[uwIndex] = *(__IO uint8_t *)(0x64000000 +  uwIndex);
   printf ( "FSMC read buffer[%d] READ = %x , \r\n" , uwIndex , aRxBuffer[uwIndex] );
  }
        
uint8_t volatile *Test1,*Test2;
Test1=(uint8_t *)0x64000100;
*Test1++=0x99;
printf ( "FSMC read buffer3 = %x , \r\n" , *(volatile uint8_t *)0x64000100 );
printf ( "FSMC read buffer3 = %x , \r\n" , *(volatile uint8_t *)0x64000100 );        


打印出数据为:
FSMC read buffer[0] fill = 55 ,
FSMC read buffer[1] fill = 55 ,
FSMC read buffer[2] fill = 55 ,
FSMC read buffer[0] READ = 5 ,
FSMC read buffer[1] READ = 5 ,
FSMC read buffer[2] READ = 5 ,
FSMC read buffer3 = 99 ,
FSMC read buffer3 = 1 ,


请问大家问题出在哪里?始终没搞懂

使用特权

评论回复
沙发
kingkits| | 2019-12-24 16:26 | 只看该作者
貌似你的地址线不对呀

使用特权

评论回复
板凳
香水城| | 2019-12-25 11:55 | 只看该作者
你是STM32F1具体什么型号?多少脚的?
硬件连接可以参考下ST官方的评估板的原理图接法,软件可以参考下ST的FSMC例程。

使用特权

评论回复
地板
static|  楼主 | 2019-12-25 14:26 | 只看该作者
香水城 发表于 2019-12-25 11:55
你是STM32F1具体什么型号?多少脚的?
硬件连接可以参考下ST官方的评估板的原理图接法,软件可以参考下ST ...

谢谢香水版主,现在用的是STM32F103ZET6;LQFP144
我看了官方例程,官方例程是16bit SDRAM , 我这边现在是8bit SDRAM ,其他的处理就是地址线引脚;我现在改动的也就是上面几点;仍然搞不明白还有什么地方不对;

使用特权

评论回复
5
static|  楼主 | 2019-12-25 14:27 | 只看该作者
kingkits 发表于 2019-12-24 16:26
貌似你的地址线不对呀

硬件那边说对于RAM是地址寻址,方便走线是可以的;

使用特权

评论回复
6
kingkits| | 2019-12-25 15:12 | 只看该作者
本帖最后由 kingkits 于 2019-12-25 15:31 编辑
static 发表于 2019-12-25 14:27
硬件那边说对于RAM是地址寻址,方便走线是可以的;

应该是我看错了


使用特权

评论回复
7
zchong| | 2019-12-25 17:47 | 只看该作者
时序先调保守些

使用特权

评论回复
8
香水城| | 2019-12-25 23:39 | 只看该作者
static 发表于 2019-12-25 14:26
谢谢香水版主,现在用的是STM32F103ZET6;LQFP144
我看了官方例程,官方例程是16bit SDRAM , 我这边现在 ...

是SRAM吧,

你现在8位数据宽带,例程16位,地址这个地方你要注意,他做了1位偏移,你现在就不用做了。

使用特权

评论回复
9
wakayi| | 2020-1-17 14:30 | 只看该作者
先把速度降下来试试看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

132

帖子

1

粉丝