8621|19

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32的FSMC频率一般能到多少?我测了下怎么只有2MHZ多点呢 [复制链接]

用以下代码做初始化
void LCD_FSMCConfig(void)
{
    FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
    FSMC_NORSRAMTimingInitTypeDef  p;
    /* FSMC_Bank1_NORSRAM1 timing configuration */
    p.FSMC_AddressSetupTime = 0;
    p.FSMC_AddressHoldTime = 0;
    p.FSMC_DataSetupTime = 1;
    p.FSMC_BusTurnAroundDuration = 0;
    p.FSMC_CLKDivision = 0;
    p.FSMC_DataLatency = 0;
    p.FSMC_AccessMode = FSMC_AccessMode_B;
    
    /* FSMC_Bank1_NORSRAM4 configured as follows:
    - Data/Address MUX = Disable
    - Memory Type = SRAM
    - Data Width = 16bit
    - Write Operation = Enable
    - Extended Mode = Disable
    - Asynchronous Wait = Disable */
    FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
    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_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_Bank1_NORSRAM1 */
    FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
}
定义一个操作地址
#define FSMC        (*(u16*)((u32)0x60000000))

然后在主程序中
while(1)
{
   FSMC =0xFFFF;
   FSMC = 0x0000;
}
    再用示波器观察D0~D15端口上的波形,观测都周期大约是0.4微秒左右,也就是最高3MHZ的速度。比想象的要低得多得多啊,本来以为72MHZ主频下FSMC最高时钟是36MHZ,再加上一些等待周期什么的怎么着也不会太低吧,这里的p.FSMC_DataSetupTime = 1;其他的都是设置成了0,为什么速度还是这么低呢。这样折算起来操作外部SRAM的时候带宽也就最高6MB/S啊,实在是可怜的很。
   疏忽了,从0XFFFF 到0X00,实际是一个波形周期对应的是2个FSMC操作,就是实际一个FSMC操作周期是0.2微秒,5MHZ左右,不过也是比想象的慢很多
此帖出自stm32/stm8论坛

最新回复

                                 FSMC的速度最快也就是3~8MHz左右,楼主只得到2MHz可能是各项延迟参数配置的问题,也有可能是操作语句的问题,这些都需要在调试时,通过查看具体的寄存器和反汇编指令才能断定是否有问题。当然查看FSMC输出的波形,可以非常直观地判断出各项参数的配置情况,也可以看到操作语句的执行情况,从而反过来推断程序是否存在问题。 但不管怎样,楼主的测量结果基本正确,经过一些微调也许能再提高一些。  详情 回复 发表于 2009-9-21 17:46
点赞 关注
 

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

请把波形贴出来,我们照图分析一下问题在哪里

                                 请至少显示2~3个周期。
此帖出自stm32/stm8论坛
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

FSMC频率

                                   FSMC频率 以前我大概测量过,记得也是几兆。
此帖出自stm32/stm8论坛
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 

谢谢版主

    自己条件所限只有一台双踪20MHZ的破模拟示波器,身边也没相机,没法拍下来。数据口的波形就是普通的方波,占空比50%左右
    刚刚又根据FWLIB V3.0中EXAMPLESFSMCSRAM中的例子编译一下,只是MAIN中加入上面那个WHILE循环,再仔细测了下波形,一个周期确实是0.4微秒,也就是说按照这个例程的设置操作外部SRAM一个周期是0.2uS不到点,这样折算起来16BIT的时候也就只有6MHZ*2BYTE=12MB的带宽。
    例程中FSMC_DataSetupTime = 2我改成了1也是这样速度,1是最高了,设置成0就完全一条直线了。
    也许是对STM32太喜欢的期望值也太高了,这个FSMC的速度还是稍稍有点不够刺激了,呵呵
此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

5
 

FSMC这么慢?

                                 期待更多的实际可靠的数据
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 

FSMC-FPGA

                                 STM32F101VC,103VC,以数据地址复用方式读写FPGA,测试成功。不过RCC好像是36MHZ,没有测量频率。
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

7
 

楼主的主频是多少??72M吗?

我在ST 的宣传文档中找到这样一段:
https://bbs.eeworld.com.cn/upfiles/img/20094/2009429125153920.jpg
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 就是 怎么改上面的参数 都是2.57M 总线的速度再也提高不了了 为什么
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 呵呵,从这方面看STM32访问片外设备的速度和我的STC51单片机差不多,我的是3M左右(MCU频率33M,最快11时钟周期访问一次片外数据总线,33/11=3MHz).
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 36/4=9 MHZ ?
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 印象里STM32的 FSMC速度是5~10M之间
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 怎么没人回答 香主你出来说句话
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

13
 
怎么没人回答 香主你出来说句话
magic_yang 发表于 2009-9-18 15:52
此帖出自stm32/stm8论坛
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

14
 

风格



谁有那么高档的设备 还有你可以自己测试一下  看看我门说的对不  简直就是连自己动手都懒的动  什么叫敬业 和专业  你不想干 就直接告诉大家  别站着茅坑不拉屎
此帖出自stm32/stm8论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

15
 
谁有那么高档的设备 还有你可以自己测试一下  看看我门说的对不  简直就是连自己动手都懒的动  什么叫敬业 和专业  你不想干 就直接告诉大家  别站着茅坑不拉屎 ...
普通的示波器就可以,并不需要什么高档的设备?

如果你没有示波器就说没有嘛,我本来是想通过波形指出它与程序配置的关系,从而分析出为什么速度比较慢。

看样子楼上只是想得"鱼",不要"渔",那么我只有一句话:大家说的都对,我没有什么说的。
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 对你个毛  打太极的本领挺高  脸皮够厚的
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

17
 
对你个毛  打太极的本领挺高  脸皮够厚的
这是什么意思?这里是技术论坛,请你不要出言不逊!
此帖出自stm32/stm8论坛
 
 
 

回复

228

帖子

0

TA的资源

一粒金砂(中级)

18
 
“对你个**** ”
LZ这句搞笑~.哈哈!

2MHZ 可能不止吧?     估计是9MHZ.     36MHZ总线时钟,4个脉冲周期就是9MHZ吧?
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

19
 
“对你个**** ”
LZ这句搞笑~.哈哈!

好像不是楼猪耶,难道是马甲?
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

20
 
FSMC的速度最快也就是3~8MHz左右,楼主只得到2MHz可能是各项延迟参数配置的问题,也有可能是操作语句的问题,这些都需要在调试时,通过查看具体的寄存器和反汇编指令才能断定是否有问题。当然查看FSMC输出的波形,可以非常直观地判断出各项参数的配置情况,也可以看到操作语句的执行情况,从而反过来推断程序是否存在问题。

但不管怎样,楼主的测量结果基本正确,经过一些微调也许能再提高一些。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表