首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32 FSMC总线深入研究(2)

STM32 FSMC总线深入研究(2)

2. FSMC时序研究        下图为FSMC写命令与数据的时序图,从中根据上图可以分析出FSMC可以实现16M的数据写入。FSMC的信号线翻转非常快,这使得IC或者FPGA时序设计上得非常严谨。FSMC最大实现了72MHz(66.7到100MHz之间,实际为72MHz,HCLK)的翻转速度,这要求外部器件支持那么高的速率。
       
       
        寄存器配置(寄存器+数据)
       
        连续数据写入(0xBB:写数据开始),命令后,RS默认拉低(FSMC和标准不一样的地方)
       
        数据建立很快
       
        写数据,然后默认RS拉低
       
       
        整体的时序可模拟为:
        task task_writecmd;
        input [15:0] cmd;
        begin
        mcu_cs = 0;
        mcu_rs = 0;
        mcu_data = cmd;
        #20;
        mcu_we = 0;
        #20;
        mcu_we = 1;
        #15;
        mcu_rs = 1;
        mcu_cs = 1;
        #20;
        end
        endtask
        task task_writedata;
        input [15:0] data;
        begin
        mcu_cs = 0;
        mcu_rs = 1;
        mcu_data = data;
        #20;
        mcu_we = 0;
        #20;
        mcu_we = 1;
        #15;
        mcu_rs = 1;
        mcu_cs = 1;
        #20;
        end
        endtask
        3. FSMC接口初始化       
        根据手册,相关参数如下表所示。这里我发现所谓最小值还能设置为最小,但实际速度差不多。FSMC协议时间参数如下所示:
       
        有人跟我说,手册是保守的;有人跟我说,在小就是默认值了。我不太理解。感觉速度每提升,应该在小就是默认了。不过,反正我追求速度的极限。
继承事业,薪火相传
返回列表