2025年1月7日火曜日

STM32 RAMが足りねぇ→PSRAM→QUADSPI(第3期)

PSRAMをSTM32に追加してRAMを増やしたい.

なのですが、STM32H723のOCTOSPIでは無理かなと、bugがあったりして無理かなと、撤退しました.  →第2期

こちらによると、STM32H750でメモリマップドでPSRAMが動いたらしい.OCTOSPIでなくQUADSPIなので不安がありますが、試してみます.
↓自作基板です
STM32H750はRAMが合計1MBなのが嬉しいのですが、意外なところに巨大な穴がありました.FLASHが128kBしか載ってない.これじゃ足りないよ.これじゃ使えないよ.
というわけでH750を使ってみますけど、PSRAMの味見だけで終わる見込みです.ぎゃふん

今夜はもう時間切れなので、明日以降ここから下に追記してゆきますのでー

ーーーー
夜.
PSRAMのID(0D5D)は読めた.ゆえにQUAD SPIは正常.
しかし、メモリマップドでPSRAM領域0x90000000にアクセスするとhung-upする.readもwriteもhung-upする.Coretex-M7のアクセス権は操作してある.

もしかしたら、こうなのかもしれない.
 ・QUADSPIはメモリマップドで読める(DMA read可能)
 ・QUADSPIはメモリマップドでは書けない(仕様からそんな匂いがする)
 ・メモリマップドで読み書きしたければOCTOSPIが必要
 ・STM32H7シリーズでOCTOSPIを装備しているのはH723だがbugだらけ
 ・STM32GやSTM32UならOCTSPI装備かもしれないがそれらは低速CPU
俺がやりたい前提が最初から崩れ去っているよな気がしてきた.明日辺り「ぎゃふん」ゆうてる自分の姿が瞼に浮かぶ....

ーーーー
翌朝.
非メモリマップドで動かしてみる.hung-upはしなくなったけど、読み書き出来てない.

上で書いた「QUADSPIはメモリマップドでは書けない」について.
QUADSPIはFLASHを読むためのものらしい.つまり、serial FLASHも、PSRAMも、読むコマンドは同じなのでPSRAMを読むのは可能という建て付け.だがPSRAMに書くのはできない.(非メモリマップドなアクセス方式でなら書ける)

メモリマップドで読み書きするにはOCTOSPIが必要だけどH7シリーズでその道は閉ざされていると思われるので、PSRAMを使う意欲が絶賛減退中.


かしこ

11 件のコメント:

  1. >QUADSPIはメモリマップドでは書けない
    >こちら(STM32でQSPI接続のPSRAMを使いたい https://blog.haru3.me/posts/2024/20240513-stm32-qspi-psram/)
    でも、
    ・書き込む際にはメモリマップドモードを解除した上で上記の関数などを用いる必要があります
    って、書いてありますが・・・・
    ※要するに、(RAMだけど)「NORフラッシュ」のつもりで、メモリマップドモードで読むことが出来る。
    (C言語からだと、配列ないしポインタアクセスできるから、使い道はありますね)
    と言うことだと思います。
    ※「STM32H7Rx」「STM32H7Sx」
    (「STM32H723」(H の後が、数字だけの奴)とは、「全く設計が違う」模様。最近発表されたシリーズ)
    だと、「ESP-PSRAM64H」が、使えるようです。
    community.st.com/t5/stm32-mcus-products/stm32h723-problem-with-serial-ram-in-memory-mapped-mode/td-p/229476/page/2?lightbox-message-images-663408=73247iDD1082B70AE58010
    の、「QSPI SDR」が、「V」(Valid ?)になってます。

    返信削除
    返信
    1. あ、でも、
      ・readもwriteもhung-upする
      は、おかしいですね・・・
      ※この問題は「キャッシュがらみ」に見えるので、一回でも「write操作」を、行うと、「read もダメになる」のカモですが。

      削除
    2. >メモリマップドモードを解除した上

      これ、アリエール

      削除
    3. >「STM32H7Rx」「STM32H7Sx」

      これらは何か忘れたけど採用できない何かがあった記憶

      PSRAMは損切りの手じまいかな

      第4期は手じまい回になります

      削除
    4. >採用できない何か
      ひょっとして、
      ・FLASHが64kBしか載ってない
      ですかね・・・?
      ※この辺のシリーズになると、「MCU」(Micro Controller Unit)ではなくて、ほぼ、
      ・汎用CPU(+ 周辺IO、グラフィックとか)
      になって来てますね。
      ※内蔵 ROM / RAM は「ブート用くらい」と割り切っている。なので、必ず、「外付け Flash ROM」「RAM」が、必要になっている。
      (部品点数が・・・)

      削除
    5. >FLASHが64kBしか載ってない

      それはわたしには致命傷

      STM32のラインナップにはRAMリッチなのにFLASH貧乏な機種があります
      RAMリッチは表示デバイスのフレームメモリを意識してるみたい

      削除
    6. >RAMリッチは表示デバイスのフレームメモリ
      そうなんですよね。「STM32H7Rx」って、
      ・2D GPU
      まで載ってる始末・・・・
      ※まぁ、「車載GPS端末」とか、意識してんだろうな。ああいうのは、普通に「Youtube」とかも、見れたりするし。

      削除
    7. ナンバリングは変だけど優秀じゃーん、H7R

      削除
  2. >PSRAMは損切りの手じまい
    何となくですが、
    ・8PIN DIP の、PSRAM
    は、
    ・時代のあだ花
    だったのかも知れませんね・・・・
    ※容量とスピードの兼ね合いで、
    ・CPU に内蔵するには大きすぎる
    ・外付けだと、スピードが遅い(シリアルの限界)
    で、中途半端な位置付けになって、大容量化に伴う、
    ・ピン数を増やしてスピードアップ
    も、できない(空きピンが無いから(笑)ので「放置された」)
    ※これ以後は、「OCTOSPI」とか、「多ピン」の方向へ進化(退化?)してるし。それならもう、ふつーのPC用「DDR RAM」で、いいじゃんとも思いますが・・・・

    返信削除
    返信
    1. やはり、「ESP-PSRAM64H」は、その名の通り、
      ・ESP シリーズ専用
      と、思ったほうが良いのかも知れないですね。
      ※「ソフトシリアル接続」で、「SDカード代わり」みたいには、使えますが。64M は、それだとちょっと少ないかな・・・・

      削除
    2. STMさんRAMなんとかしてください

      削除