硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4736|回复: 7
收起左侧

[FMC] STM32H7的FMC做纯软件IO输出控制可以输出40MHz方波

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-1-30 10:24:26 | 显示全部楼层 |阅读模式
FMC时序配置为最高性能:
  1. SRAM_Timing.AddressSetupTime       = 0;
  2.         SRAM_Timing.AddressHoldTime        = 1;
  3.         SRAM_Timing.DataSetupTime          = 1;
  4.         SRAM_Timing.BusTurnAroundDuration  = 0;
  5.         SRAM_Timing.CLKDivision            = 2;
  6.         SRAM_Timing.DataLatency            = 0;
  7.         SRAM_Timing.AccessMode             = FMC_ACCESS_MODE_A;

  8.         hsram.Init.NSBank             = FMC_NORSRAM_BANK1;
  9.         hsram.Init.DataAddressMux     = FMC_DATA_ADDRESS_MUX_DISABLE;
  10.         hsram.Init.MemoryType         = FMC_MEMORY_TYPE_SRAM;
  11.         hsram.Init.MemoryDataWidth    = FMC_NORSRAM_MEM_BUS_WIDTH_32;
  12.         hsram.Init.BurstAccessMode    = FMC_BURST_ACCESS_MODE_DISABLE;
  13.         hsram.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW;
  14.         hsram.Init.WaitSignalActive   = FMC_WAIT_TIMING_BEFORE_WS;
  15.         hsram.Init.WriteOperation     = FMC_WRITE_OPERATION_ENABLE;
  16.         hsram.Init.WaitSignal         = FMC_WAIT_SIGNAL_DISABLE;
  17.         hsram.Init.ExtendedMode       = FMC_EXTENDED_MODE_DISABLE;
  18.         hsram.Init.AsynchronousWait   = FMC_ASYNCHRONOUS_WAIT_DISABLE;
  19.         hsram.Init.WriteBurst         = FMC_WRITE_BURST_DISABLE;
  20.         hsram.Init.ContinuousClock    = FMC_CONTINUOUS_CLOCK_SYNC_ONLY;
复制代码
测试代码

  1. __IO uint32_t *p = (uint32_t *)0x60000000;
  2. while (1)
  3. {
  4.      *p = 0xFFFFFFFF;
  5.      *p = 0x00000000;
  6. }
复制代码

直接测试任意FMC_Dx输出即可:
QQ截图20190130102307.jpg



回复

使用道具 举报

61

主题

62

回帖

245

积分

高级会员

积分
245
发表于 2021-2-25 11:01:20 | 显示全部楼层
Y版本400M主频吧,如果是V版本应该是48M翻转速度吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-2-25 11:25:46 | 显示全部楼层
vzhaodan 发表于 2021-2-25 11:01
Y版本400M主频吧,如果是V版本应该是48M翻转速度吧?

有时间测试下。
回复

使用道具 举报

609

主题

3047

回帖

4894

积分

至尊会员

积分
4894
发表于 2021-2-25 12:03:17 | 显示全部楼层
貌似找到一款系列的 io 扩展芯片,时钟频率可以到 26MHz , spi 通信

MAX7301AAX
MAX7301A

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-2-25 12:13:07 | 显示全部楼层
hpdell 发表于 2021-2-25 12:03
貌似找到一款系列的 io 扩展芯片,时钟频率可以到 26MHz , spi 通信

MAX7301AAX

H7配合个树莓派单片机,威力四射

树莓派单片机PIO+DMA高达250MHz的GPIO读写速度
http://www.armbbs.cn/forum.php?m ... 4163&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

609

主题

3047

回帖

4894

积分

至尊会员

积分
4894
发表于 2021-2-25 16:36:50 | 显示全部楼层
eric2013 发表于 2021-2-25 12:13
H7配合个树莓派单片机,威力四射

树莓派单片机PIO+DMA高达250MHz的GPIO读写速度

这个牛逼哟
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-2-26 09:52:23 | 显示全部楼层

是的,准备搞起来。
回复

使用道具 举报

5

主题

95

回帖

110

积分

初级会员

积分
110
发表于 2021-12-15 22:03:05 | 显示全部楼层
这种方案 使用SDRAM作为LCD显存的同时,周期采样读取IO状态,速度大概能到多少,
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 15:04 , Processed in 0.188880 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表