2366907_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2366907_ja-JP

2366907_ja-JP

RT685上のDSPからPSRAMへのデータ書き込み

私はRT685プラットフォームを使用しており、FlexSPIを介してPSRAMを接続しています。PSRAM(ISSI IS66WVR8M8FALL)はPortA2に接続されており、QSPIフラッシュはPortA1に接続されています。

PSRAMはAHBによってアクセスされるように構成され、起動後にMCU側でFlexSPIが構成され、数分後にDSP側からデータが書き込まれた。DSP側からデータを書き込んだ際、PSRAMに0x00のデータが存在し、そのデータは規則的に見えた。この問題をデバッグするために、192バイトの0x32を一度に書き込み、次に0x33を書き込みました...

spi_ram.png

MCU側からのデータ書き込みおよび読み出しに問題はありません。この問題は、DSP側からのデータ書き込み時にのみ発生しました。


FlexSPIの構成、

const flexspi_config_t FLEXSPI_config = {
  .rxSampleClock = kFLEXSPI_ReadSampleClkLoopbackInternally,
  .enableSckFreeRunning = false,
  .enableDoze = true,
  .enableHalfSpeedAccess = false,
  .enableSckBDiffOpt = false,
  .enableSameConfigForAll = false,
  .seqTimeoutCycle = 65535,
  .ipGrantTimeoutCycle = 255,
  .txWatermark = 8U,
  .rxWatermark = 8U,
  .ahbConfig = {
    .ahbGrantTimeoutCycle = 255,
    .ahbBusTimeoutCycle = 65535,
    .resumeWaitCycle = 32,
    .buffer = { 
      { .priority = 0, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 1, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 2, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 3, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 4, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 5, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 6, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true },
      { .priority = 7, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }
    },
    .enableClearAHBBufferOpt = true,
    .enableReadAddressOpt = false,
    .enableAHBPrefetch = false,
    .enableAHBBufferable = true,
    .enableAHBCachable = false
  }
};

PSRAMの構成、

flexspi_device_config_t FLEXSPI_config_Device_SPIRAM = {
   .flexspiRootClk       = SPIRAM_ROOT_CLOCK_HZ,
   .isSck2Enabled        = false,
   .flashSize            = SPIRAM_SIZE_KBYTES,
   .CSIntervalUnit       = kFLEXSPI_CsIntervalUnit1SckCycle,
   .CSInterval           = 2,
   .CSHoldTime           = 3,
   .CSSetupTime          = 3,
   .dataValidTime        = 0,
   .columnspace          = 0U,
   .enableWordAddress    = false,
   .AWRSeqIndex          = SPIRAM_LUT_SEQ_IDX_WRITE,
   .AWRSeqNumber         = 1U,
   .ARDSeqIndex          = SPIRAM_LUT_SEQ_IDX_READ,
   .ARDSeqNumber         = 1U,
   .AHBWriteWaitUnit     = kFLEXSPI_AhbWriteWaitUnit2AhbCycle,
   .AHBWriteWaitInterval = 1,
   .enableWriteMask      = false,
};

この問題について何かご存知の方はいらっしゃいますか?

i.MX RT600
Tags (1)
No ratings
Version history
Last update:
Tuesday
Updated by: