你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103ZGT6 FSMC总线NWE NOE 无变化

[复制链接]
viv 提问时间:2016-3-21 16:29 /
如题,STM32F103ZGT6芯片,外扩SRAM。在调试的过程中,发现SRAM访问总是出错。用示波器查看信号,发现NWE和NOE输出为长低。在板件和程序都不动的情况下,更换cpu为STM32F103ZET6,NWE和NOE输出正常。数据读写正确。
现在有点困惑,不清楚问题出在哪里?请大家给出出主意,谢谢。
  1. FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  2.   FSMC_NORSRAMTimingInitTypeDef  p;
  3.   GPIO_InitTypeDef GPIO_InitStructure;
  4.   
  5.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOE |
  6.                          RCC_APB2Periph_GPIOF, ENABLE);
  7.   
  8. /*-- GPIO Configuration ------------------------------------------------------*/
  9.   /* SRAM Data lines configuration */
  10.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 |
  11.                                 GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
  12.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  13.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  14.   GPIO_Init(GPIOD, &GPIO_InitStructure);

  15.   /* armfly : STM32F103ZE-EKʹÓÃÁËA21ºÍA22×öµØÖ·ÒëÂ룬Òò´ËPE5,PE6ÐèÒªÉèÖÃΪ×ÜÏßģʽ
  16.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
  17.                                 GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
  18.                                 GPIO_Pin_15;
  19. */  
  20.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
  21.                                 GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
  22.                                 GPIO_Pin_15 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_3 | GPIO_Pin_4;

  23.   GPIO_Init(GPIOE, &GPIO_InitStructure);
  24.   
  25.   /* SRAM Address lines configuration */
  26.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
  27.                                 GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 |
  28.                                 GPIO_Pin_14 | GPIO_Pin_15;
  29.   GPIO_Init(GPIOF, &GPIO_InitStructure);
  30.   
  31.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
  32.                                 GPIO_Pin_4 | GPIO_Pin_5;
  33.   GPIO_Init(GPIOG, &GPIO_InitStructure);
  34.   
  35.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
  36.   GPIO_Init(GPIOD, &GPIO_InitStructure);
  37.    
  38.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  39.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  40.   /* NOE and NWE configuration */  
  41.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ;
  42.   GPIO_Init(GPIOD, &GPIO_InitStructure);
  43.   
  44.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ;
  45.   GPIO_Init(GPIOD, &GPIO_InitStructure);
  46.   
  47.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  48.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  49.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;
  50.   GPIO_Init(GPIOD, &GPIO_InitStructure);
  51.   
  52.   
  53.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  54.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  55.   /* NE3 configuration */
  56.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_12;
  57.   GPIO_Init(GPIOG, &GPIO_InitStructure);
  58.   
  59.   /* NBL0, NBL1 configuration */
  60.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
  61.   GPIO_Init(GPIOE, &GPIO_InitStructure);
  62.   
  63. /*-- FSMC Configuration ------------------------------------------------------*/
  64.   p.FSMC_AddressSetupTime = 0xF;
  65.   p.FSMC_AddressHoldTime = 0xF;
  66.   p.FSMC_DataSetupTime = 2;
  67.   p.FSMC_BusTurnAroundDuration = 0;
  68.   p.FSMC_CLKDivision = 0;
  69.   p.FSMC_DataLatency = 0;
  70.   p.FSMC_AccessMode = FSMC_AccessMode_A;

  71.   FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3;
  72.   FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  73.   FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
  74.   FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  75.   FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
  76.   FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  77.   FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  78.   FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  79.   FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  80.   FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  81.   FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
  82.   FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  83.   FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
  84.   FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;

  85.   FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

  86.   /* Enable FSMC Bank1_SRAM Bank */
  87.   FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE);  
复制代码
总线初始化部分。
收藏 评论2 发布时间:2016-3-21 16:29

举报

2个回答
xmshao 回答时间:2016-3-21 22:21:32
1 两个芯片只是容量上的差别,其它一样。看看你的启动文件是否选择正确;
2  如果启动文件选择没问题,就都找几块板测试下,看看是否硬件哪里的问题;
viv 回答时间:2016-3-31 22:50:49
xmshao 发表于 2016-3-21 22:21
1 两个芯片只是容量上的差别,其它一样。看看你的启动文件是否选择正确;
2  如果启动文件选择没问题,就都 ...

谢谢您的回复,目前问题已解决。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版