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

STM32U5A9NJH6Q使用160Mhz HSPI读取外部PSRAM失败

[复制链接]
DX_STM 提问时间:2024-3-7 16:52 / 已解决
使用STM32U5A9NJH6Q操作外部PSRAM APS512XXN-OBR-BG,HSPI时钟源为主时钟160Mhz,当分频值设置为1也就是160/(1+1 )= 80Mhz时能正常通信,但是分频值设置为0也就是160/(0+1 )= 160Mhz时就没反应了。

```
hhspi->Instance = HSPI1;

  hhspi->Init.FifoThresholdByte       = 2U;
  hhspi->Init.MemoryMode              = HAL_XSPI_SINGLE_MEM;
  hhspi->Init.MemoryType              = HAL_XSPI_MEMTYPE_APMEM_16BITS;
  hhspi->Init.MemorySize              = (uint32_t)POSITION_VAL(APS512XX_RAM_SIZE);
  hhspi->Init.ChipSelectHighTimeCycle = 1U;//1U;
  hhspi->Init.FreeRunningClock        = HAL_XSPI_FREERUNCLK_DISABLE;
  hhspi->Init.ClockMode               = HAL_XSPI_CLOCK_MODE_0;
  hhspi->Init.WrapSize                = HAL_XSPI_WRAP_32_BYTES;
  hhspi->Init.ClockPrescaler          = 0;//1
  hhspi->Init.SampleShifting          = HAL_XSPI_SAMPLE_SHIFT_NONE;
  hhspi->Init.DelayHoldQuarterCycle   = HAL_XSPI_DHQC_DISABLE;
  hhspi->Init.ChipSelectBoundary      = 11U;//11U;
  hhspi->Init.DelayBlockBypass        = HAL_XSPI_DELAY_BLOCK_ON;
  /* tCEM = 2 us max => REFRESH+4 clock cycles for read */
  hhspi->Init.Refresh                 = ((2U * (hspi_clk / (Init->ClockPrescaler + 1U))) / 1000000U) - 4U;
  hhspi->Init.MaxTran                 = 0U;
```
收藏 评论4 发布时间:2024-3-7 16:52

举报

4个回答
butterflyspring 最优答案 回答时间:2024-3-8 09:54:45
IO 的工作电压是否是1.8V ?
如果是,需要打开 HSLV。
如果超过2.7V 则不能打开。

STM32U5A9 HSLV.PNG
背影101 回答时间:2024-3-8 08:22:41
[md]
xmshao 回答时间:2024-3-8 09:55:08
MCU这边输出160MHz是支持的,你另外那边支持吗?
还有就是当时钟提升到160MHz时,相关硬件线路是否会给信号带来更大挑战导致信号尤其关键信号识别困难呢?
DX_STM 回答时间:2024-3-8 12:25:46

butterflyspring 发表于 2024-3-8 09:54
IO 的工作电压是否是1.8V ?
如果是,需要打开 HSLV。
如果超过2.7V 则不能打开。

确实是这边的问题,谢谢!

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版