OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7329|回复: 1

外部SRAM操作的奇怪现象求助

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-10-26
在线时间
0 小时
发表于 2014-10-26 11:58:35 | 显示全部楼层 |阅读模式
5金钱
  我在使用FSMC操作一个外部SRAM时,经J-Link调试发现,
当FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b时,
向地址 0x68000000+ A  写入数据时,地址 0x68000080+ A 处也会自动被写入相同的数据,其中A为 地址偏移。
例如:
向地址 0x68000000 写入0x81, 地址0x68000080处被自动写入0x81. 
当向0x68000080处写入数据时,地址0x68000000到0x68000080范围全部数据的最高位都由1变成0.

当FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b时,
向地址 0x68000000+ A  写入数据时,地址 0x68000100+A 处也会自动被写入相同的数据,
例如向地址0x68000000 写入0x81, 0x68000100也会被自动写入0x81,

请问有谁知道是什么原因? 

我的FSMC配置如下:
Timing_read.FSMC_AddressSetupTime = 3; 
Timing_read.FSMC_AddressHoldTime = 0;   
Timing_read.FSMC_DataSetupTime = 4;   
Timing_read.FSMC_BusTurnAroundDuration = 1;
Timing_read.FSMC_CLKDivision = 0;
Timing_read.FSMC_DataLatency = 0; 
Timing_read.FSMC_AccessMode = FSMC_AccessMode_A;
/*--------------------- write timings configuration ---------------------*/
Timing_write.FSMC_AddressSetupTime =2; 
Timing_write.FSMC_AddressHoldTime = 0; 
Timing_write.FSMC_DataSetupTime =3;    
Timing_write.FSMC_BusTurnAroundDuration = 1;
Timing_write.FSMC_CLKDivision = 0; 
Timing_write.FSMC_DataLatency = 0;
Timing_write.FSMC_AccessMode = FSMC_AccessMode_A;

  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3;
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;  
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &Timing_read;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &Timing_write;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2014-7-16
在线时间
5 小时
发表于 2014-10-26 17:18:06 | 显示全部楼层
可能是地址线短路了,检查一下硬件
光圈电子科技 晓航 多多 啾儿 实验室
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 05:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表