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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版