STM32
直播中

李宛蔓

8年用户 1047经验值
私信 关注
[问答]

使用STM32U5A9NJH6Q操作外部PSRAM APS512XXN-OBR-BG没有反应的原因?

使用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;
```

回帖(2)

爱吃果冻

2024-5-20 15:38:56
根据您提供的信息,我将分析可能导致STM32U5A9NJH6Q操作外部PSRAM APS512XXN-OBR-BG没有反应的原因。以下是一些可能的原因和相应的解决方案:

1. **时钟频率过高**:当您将分频值设置为0时,HSPI时钟源的频率为160MHz。这个频率可能超过了PSRAM的规格要求。请检查PSRAM的数据手册,确认其最大支持的时钟频率。如果超过了规格要求,您需要降低时钟频率。

2. **初始化配置问题**:请确保您已经正确配置了HSPI接口的所有参数,包括时钟极性、相位、数据宽度等。错误的配置可能导致通信失败。

3. **硬件连接问题**:请检查您的硬件连接,确保PSRAM与STM32U5A9NJH6Q之间的连接正确无误。检查电源、地线、数据线和时钟线是否连接正确。

4. **固件问题**:请确保您的固件代码正确地初始化了HSPI接口,并正确地发送和接收数据。检查代码中是否有任何可能导致通信失败的错误。

5. **PSRAM模块问题**:如果可能,请尝试使用另一个PSRAM模块,以排除PSRAM模块本身的问题。

6. **STM32U5A9NJH6Q问题**:如果可能,请尝试使用另一个STM32U5A9NJH6Q芯片,以排除芯片本身的问题。

为了解决这个问题,您可以尝试以下步骤:

1. 检查PSRAM的数据手册,确认其最大支持的时钟频率,并确保您的HSPI时钟频率不超过这个限制。

2. 仔细检查您的HSPI初始化配置,确保所有参数都设置正确。

3. 检查硬件连接,确保PSRAM与STM32U5A9NJH6Q之间的连接正确无误。

4. 检查您的固件代码,确保正确地初始化了HSPI接口,并正确地发送和接收数据。

5. 如果可能,请尝试使用另一个PSRAM模块或STM32U5A9NJH6Q芯片,以排除硬件问题。

通过以上步骤,您应该能够找到导致STM32U5A9NJH6Q操作外部PSRAM APS512XXN-OBR-BG没有反应的原因,并采取相应的解决措施。
举报

洒下墨色

2024-5-20 15:39:01
根据您提供的信息,我将分析可能导致STM32U5A9NJH6Q操作外部PSRAM APS512XXN-OBR-BG没有反应的原因。以下是一些可能的原因和相应的解决方案:

1. **时钟频率过高**:当您将分频值设置为0时,HSPI时钟源的频率为160MHz。这个频率可能超过了PSRAM的规格要求。请检查PSRAM的数据手册,确认其最大支持的时钟频率。如果超过了规格要求,您需要降低时钟频率。

2. **初始化配置问题**:请确保您已经正确配置了HSPI接口的所有参数,包括时钟极性、相位、数据宽度等。错误的配置可能导致通信失败。

3. **硬件连接问题**:请检查您的硬件连接,确保PSRAM与STM32U5A9NJH6Q之间的连接正确无误。检查电源、地线、数据线和时钟线是否连接正确。

4. **固件问题**:请确保您的固件代码正确地初始化了HSPI接口,并正确地发送和接收数据。检查代码中是否有任何可能导致通信失败的错误。

5. **PSRAM模块问题**:如果可能,请尝试使用另一个PSRAM模块,以排除PSRAM模块本身的问题。

6. **STM32U5A9NJH6Q问题**:如果可能,请尝试使用另一个STM32U5A9NJH6Q芯片,以排除芯片本身的问题。

为了解决这个问题,您可以尝试以下步骤:

1. 检查PSRAM的数据手册,确认其最大支持的时钟频率,并确保您的HSPI时钟频率不超过这个限制。

2. 仔细检查您的HSPI初始化配置,确保所有参数都设置正确。

3. 检查硬件连接,确保PSRAM与STM32U5A9NJH6Q之间的连接正确无误。

4. 检查您的固件代码,确保正确地初始化了HSPI接口,并正确地发送和接收数据。

5. 如果可能,请尝试使用另一个PSRAM模块或STM32U5A9NJH6Q芯片,以排除硬件问题。

通过以上步骤,您应该能够找到导致STM32U5A9NJH6Q操作外部PSRAM APS512XXN-OBR-BG没有反应的原因,并采取相应的解决措施。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分