2024年10月22日火曜日

基板マクロ144pin FMCとPSRAM

だいぶ涼しくなりました.秋の夜長は回路設計に適する季節.

やりたかった構想が裏目に出たので、リカバリのためSTM32H723をQFP100→QFP144に変更せざるをえないことになりました.
プリント基板を書き変えますが、144pinの基板マクロを作るの大変なんだよね.
↓マクロの一部を抜粋.0.5mm pitch手ハンダなのでPADを長くしてあります.わたしは半田名人じゃないので、フラックスどばづけしてハンダを流し込むようなのが円満なハンダのコツ.

144pinにしてもCPU内蔵RAM 512kBでは足りないので、次に試作する基板ではPSRAMをSTM32に外付けしようと思ってます.
PSRAMは和名で擬似SRAMといい、中身はDRAMだが外部からはSRAMに見えるものだそうです.¥100ぐらいで64Mbit=8MBなので安くて美味しい.
↓PSRAMはこんなものでSPIでも接続できるみたいよ

ただ、SPIメモリは使いにくい.
そこでSTM32にはFMCというのがあって、FMCにPSRAMを接続すると、PSRAMがCPUのアドレス空間に現れて、あたかもメモリが増えたかのように扱えるらしい.アクセスが遅そうだけど.
↓FMCから出る信号線はこんなものなのだけど、これをどうやってPSRAMに接続したらいいんだ? 鬼のようにわからん~
↓こんな図を見つけました.これなら概念は理解できます.

しかしSTM32CudeIDEをいじってもこうゆう外部pinはアサインされないんです.
どうやらこちらのpageを解読する必要ありなんだけど、難しくてわかんない.

FMCとPSRAMがめでたく繋がったらレポしますね.どんな速度で動くんだろう?

かしこ

28 件のコメント:

  1. >アクセスが遅そう
    シリアル接続は、一見遅い感じがしますが、「連続アドレスアクセス」(プログラムとか、まとまったデータの読み込み)だと、一々「全てのアドレスを送らなくていい」(+1アドレスとかのコマンドがあったハズ)ので、却ってそういう時は「早くなる」のではないでしょうか?
    ※この辺は、何となく「HDD」に、動きが似てるのは興味深い。

    >どうやらこちらのpageを解読する必要あり
    ちょっと見ましたが、このページって、
    ・パラレル接続のメモリ
    にしか、言及してない気がするのですが・・・?

    返信削除
    返信
    1. おはよーございます

      そうなのよね、パラレルなのよ
      シリアルの接続例がどこにも見当たらないの 困ったわねぇ

      ひとまず朝はネカマ

      削除
    2. いろんなシリアルメモリを探してたらMRAMやFRAMがあったのよ
      研究開発でしぼんでしまって世に出なかったのかしらって思ってたわ
      なんで知ってたのって?
      元彼がMRAM研究してたの
      それがすごい陰キャで休みは家でアニメしか見ないの
      性格の不一致ってあるわ

      削除
    3. 上のリンクの、参考文献の、「STM32F769 リファレンスマニュアル」を見ても、
      Flexible memory controller (FMC) の項には、
      ・パラレル外部メモリ接続
      の、説明しか無いですね。。。だがしかし(笑)「Quad-SPI interface (QUADSPI)」の項に、
      ・memory-mapped mode
      と言うのがあり、その説明によれば、
      memory-mapped mode: the external flash memory is mapped to the device address
      space and is seen by the system as if it was an internal memory.
      (要は、「外部シリアルフラッシュメモリを内部メモリと同じように扱えるよ」と書いてあります。)
      とあって、↑ の図の説明が「これ」なんじゃないかと思います。
      で、話を「STM32H723」に戻して、同様に調べると、リファレンスマニュアルには、
      ・OCTOSPI Memory-mapped mode
      (笑)というのがあって、同様の説明があります・・・
      (名前統一しろよ・・・>STMicro)

      ※これ、「Flash」だから、「RAM は繋げられない」のですかね?
      まぁ、RAMでも、「読むこと」は、出来ると思いますが。。。

      削除
    4. どーも、「FMC」というのは、(以下引用)
      Flexible memory controller (FMC)
      The flexible memory controller (FMC) includes three memory controllers:
      • The NOR/PSRAM memory controller
      • The NAND memory controller
      • The Synchronous DRAM (SDRAM/Mobile LPSDR SDRAM) controller
      ということで、
      ・ふつー(パラレルアドレス)のメモリを、繋げられるインターフェース
      (まぁ、ふつーの(パソコンとか用の)CPUと、同じメモリが拡張用に使える)
      と言う意味らしい・・・
      ※まぁ、「組み込み用CPU」は、ふつーは、簡単に「メモリの拡張」って、出来ませんでしたからね。。。なんか「先祖返りした」だけのような気もする。

      削除
    5. FMCわからないわ
      こうゆう時には元彼便利だから聞いてみようかしら?
      「もしもし、ひらちゃん? 教えて欲しいんだけど・・・」
      「はい〜?」
      「アニメみてたんでしょ?」
      「はい〜」
      「FMCって知ってる?」
      「アニメの会社でしょ」
      (ガチャン)

      削除
    6. パラレル接続だとPORT占有するのがイヤだわ
      そうだ
      シリアル接続師を召喚するわ

      削除
    7. OCTOSPIってオクトパスみたいじゃなーい
      すごくへん

      削除
    8. >MRAMやFRAMがあった
      日本のF社やH社(うろ覚え)で、作って(量産して)ませんでしたっけ?
      ※こんなの作ってんだー、と思って見てた記憶がある。

      削除
    9. あれでお値段が安ければいいのよ

      削除
  2. >しかしSTM32CudeIDEをいじってもこうゆう外部pinはアサインされない
    だって、
    ・名前違うし(笑)
    ※名前統一しろよ・・・>STMicro (2回目)

    返信削除
    返信
    1. ♪むかしの名前で でて~います~♪

      削除
    2. なんか、
      ・OCTOSPI
      は、
      ・Quad-SPI
      の、「上位規格」みたいですね。
      「OCTOSPI」は、
      ・外部Memory の、読み書き可能(xRAM も、繋げられる)
      ・まさに「Octo-SPI memory」が、繋げられる。
      (「シリアルメモリ」なのに、「8bit bus」って、もう、ワケわかんないです・・・)
      ※つか、こんなの一々増やしてったら「キリない」よなー。もう、最近の最新情報には、付いて行けない、、、、、

      削除
    3. ここに、解説(日本語)がありました。。。。
      https://edn.itmedia.co.jp/edn/articles/2105/31/news027.html
      Octo SPIって何?
      ※もうホント、「ついてくのがやっと」だなー

      削除
    4. >Octo SPI は、「Quad SPI」の8ビット拡張版パラレル通信機能です。
      「SPI」の「S」って、
      ・シリアル
      でしょ?なのに、
      ・8ビット拡張版パラレル通信機能
      って。何だよ・・・・
      もう、ワケワカメ

      削除
    5. そのうち、
      ・HEXA SPI (16ビット拡張版パラレル通信機能)
      とか、出てくんだろーなー。

      もう笑うしか無いな(笑)

      削除
    6. >HEXA SPI
      「OCTOSP」は、既に、
      ・16ビット対応
      してるみたいですね(ねむいさんのブログより)
      ※じゃぁ、次は「32ビット対応か?」(ヲイヲイ)

      削除
    7. 8本足?
      ますますタコじゃない ヤダうける~

      削除
    8. 16本、、、もういい

      削除
  3. やってる人発見!
    https://nemuisan.blog.bai.ne.jp/www.lura.sk/?eid=243739
    STM32L5を使ってみる3 -OCTO-SPIでQUAD-SPIROMを使おう-
    ※この「ねむいさん」って、この界隈ではよく見かける人ですね。

    返信削除
    返信
    1. こっちのが新しいっぽい
      https://nemuisan.blog.bai.ne.jp/m/www.lura.sk/www.lura.sk/?eid=244497
      STM32H5を使ってみる4 -STM32L5の時みたいにOCTO-SPIを使ってみる-

      削除
    2. ねむいさんも、
      >シリアルなのに16bitもパラレルってなんなんだよと常に感じてますが
      >時代は常に進化していっているなと同じく感じております(混乱)。
      と、書いてるのがウケる(笑)・・・・まぁ、そーだよね。
      リンクにもあるけど、この人
      https://blog.goo.ne.jp/sirius506/e/8fa40ae4497e64164807838380063c81
      OCTOSPIによるQSPI Flash/PSRAMの接続
      も、スゴイですね。
      ※意外にこの辺、「同人ソフト/ハード系」が、進んでたりするのが侮れないですね・・・・

      削除
    3. コレもスゴイ・・・よくやってるなー
      https://blog.goo.ne.jp/sirius506/e/0e7d1e42d8327294e31f040b93ba966c
      Doom Player --シリアル PSRAMを使うには

      削除
    4. 16kポイントのFFTとかやりたくて、メモリたらんちゅら

      ねむいさん検索によくひっかかります

      削除
    5. 読者 SPIは遅いので8ビットパラレル接続にしたというのは液晶表示でありました SPIですと1枚表示に数秒かかったりする ビデオ画像を30FPSで表示するのに8bitパラレル接続の液晶使用した そんなブログみました
      液晶表示 昔 8bitパラレルー>配線簡単なSPIー>高速な8bitパラレル と先祖かえりした 液晶配線の話でした
      z80のころの1Mbitメモリですと128byteくらいなので 1Mbyteなら 8個つなぐのかな? いやそんなでかいRAM使わないじだいかしら

      削除
    6. 大画面動画ディスプレイはレートがいのち

      削除
    7. 「究極のシリアル表示ディスプレイ」は、
      ・NTSC
      ですね(笑)
      ※上手くやれば、「1,677万色(24bit)カラー表示」まで出来る・・・
      つか、大昔の「大画面テレビ」も、コレでやってたんだから、恐れ入る。。。

      削除
    8. 電子による一筆描きだわ
      走査せよ

      削除