3143|3

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

stm32f103vet6外接铁电FM28V020发现的问题 [复制链接]

以前用单片机做的,正常工作很长时间,现在想转到stm32,采用fsmc,外接32K铁电FM28V020,一直不正常,现象是只能读出0x100-0x1FF的内容(正确),0x0-0xff也是0x100-0x1ff的内容,然后所有的地址内容不停循环0x100-0x1ff,NADV已经反向给74HC573,初始化程序在后面,

  最后,直接用一个F103VET6实验板,什么都不接,只是下载这个程序,用示波器观察,发现如下问题



1. PE11(DA8),信号幅值明显与其他DA0-DA15的幅值低很多 (这个是2V档)


2.PE13的信号(1V档)


FMSC初始化后,所有DA0-DA15,理论上引脚信号幅值应该是一样的,为什么PF11就不一样?,最后只有在PE11上上拉一个2K电阻,信号幅值就上去了,如果对PE11采用IO模式,Out_PP输出,信号幅值很正常
PCB原理图

ALE已经反向输出到573的
现在是用的什么都不挂接的实验板,信号还是一样,说明是F103VE自身的问题,这个怎么解释,如果FSMC初始化不正确,为什么0x100-0x1FF的内容写入和读出都是正确的?只是所有地址数据都是在0X100-0X1FF循环

FMSC程序
//初始化外部SRAM
void        FSMC_SRAM_Init(void)
{        
        GPIO_InitTypeDef  GPIO_InitStructure;
        FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
        FSMC_NORSRAMTimingInitTypeDef  p;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);
        /* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;      
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);

        /* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.07(NE1) PD.08(D13), PD.09(D14),
         PD.10(D15), PD.14(D0), PD.15(D1) as alternate function push pull */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_11 |
                                    GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10  | GPIO_Pin_14 | GPIO_Pin_15 ;

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_Init(GPIOD, &GPIO_InitStructure);

        /* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
         PE.14(D11), PE.15(D12) as alternate function push pull */

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
                                      GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_Init(GPIOE, &GPIO_InitStructure);

        p.FSMC_AddressSetupTime = 5;
        p.FSMC_AddressHoldTime = 5;
        p.FSMC_DataSetupTime = 15;
        p.FSMC_BusTurnAroundDuration = 5;
        p.FSMC_CLKDivision = 0;
        p.FSMC_DataLatency = 0;
        p.FSMC_AccessMode = FSMC_AccessMode_B;(改过D,一样现象)
        
        FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
        FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
        FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;  (改过PSRAM,一样现象)
        FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
        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 = &p;
        FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
        

        FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
        /* Enable FSMC Bank4_SRAM Bank */
        FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);  
                                                                                
}
是库函数初始化有问题吗?
此帖出自stm32/stm8论坛

最新回复

是否可以参考用一下一款叫 MRAM的存储器,有资料共享[attach]403987[/attach]   详情 回复 发表于 2019-3-5 09:52
点赞 关注(1)
 

回复
举报

1万

帖子

16

TA的资源

版主

沙发
 
为什么加74HC573
此帖出自stm32/stm8论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
FMSC复用模式啊,D0-D7与A0-A7是复用的,要用573锁存低8位地址
此帖出自stm32/stm8论坛
 
 

回复

935

帖子

1

TA的资源

禁止发言

4
 
是否可以参考用一下一款叫 MRAM的存储器,有资料共享 (, 下载次数: 2)
此帖出自stm32/stm8论坛
 
个人签名存储芯片/MCU/SRAM/PSRAM/DDR/FLASH/MRAM。web.www.sramsun.com  QQ3161422826 TEL:13751192923
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表