ラズピコとPSRAM
ラズピコでPSRAMを操作してみる。
QQSPI PSRAM Pmod Compatible Module (32MB)
4000円ぐらいだったような
RP2040とPSRAM
QQSPIのピン
https://gyazo.com/3d7c544d991123297e5feae54bd68a51
QQSPI
1 /SS (active low) → GPIO17
2 SIO0 (MOSI) → GPIO19
3 SIO1 (MISO) → GPIO16
4 SCK
5 GND
6 3V3
7 SIO2
8 SIO3
9 CS0
10 CS1
11 GND
12 3V3
ラズピコSPI
MISO: 16
SS: 17
SCK: 18
MOSI: 19
PSRAMのコマンド
https://gyazo.com/b6dd0bb45937c7885cb0a8bc403476c1
PSRAMのアドレス
A[22:0] の23ビット
PSRAMの初期化
電源投入
「CLKはLOW、CE#はHIGH、SI・SO・SIO(3:0)はLOW」の状態で150μs以上待機
デバイスリセット
下記「リセットオペレーション」参照
(コマンド受付可能になる)
リセットオペレーション
以下の2つのコマンドを投げる
Reset Enable コマンド送信
1. CE# = LOW
2. MISO = ハイインピーダンス (Z) ← いらないかも
3. Reset Enableコマンド ( 'h66 ) を送信
4. CE# = HIGT
Reset コマンド送信
1. CE# = LOW
2. (MISO = ハイインピーダンス (Z) のまま)
3. Resetコマンド ( 'h99 ) を送信
4. CE# = HIGT
https://gyazo.com/69eab7d541197c11e2a8d1c979db55a3
Read IDコマンド('h9f)
Read ID コマンド送信
1. CE# = LOW
2. Read IDコマンド ( 'h9f ) を送信
3. ダミーデータを24ビット送信 → (ハイインピーダンスが返るらしい)
4. ダミーデータ8ビット送信 → MF ID ('h0D) が返る
5. ダミーデータ8ビット送信 → KGD ('h5D) が返る
'b0101_0101 → FAIL
'b0101_1101 → PASS
6. ダミーデータを48ビット送信 → 48ビットのEIDが返る
3. CE# = HIGT
https://gyazo.com/8960da20be6e2873af46657ac02581ee