(2021.1.11 作成)
このページではSPI接続のWinbond製NORフラッシュメモリ(W25Qシリーズ)と同じくGigaDevice社製フラッシュ(GD25Qシリーズ)について紹介しようと思います。実際のICとしてはそれぞれ後ろに容量を表す数字が入るのでW25Q64とかGD25Q64などが型番になります。
この両者の違いですが、おそらくどちらかが正規版で一方がクローンだと思います。GigaDevice社はSTM32のクローンをGD32として販売しているのでGD25QもW25Qのクローンだと思ってますが、違うかもしれません。いずれにせよ多少の違いはあるもののほぼ同じように使用することができます。
なお管理人が作成した読み書きを行うクラスはこちらのページからダウンロードしていただくことができます。
他のFlashをよく知りませんが、以下のような特徴があると思います。
ぐらいでしょうか?あまり突拍子もない機能はないような気がします。
保護などを考えなければ使い方はよくあるFlashだと思います。
読み込みコマンド(03H)に続いてアドレスを送り、後は必要なバイト数をSPIで読むだけです。
Flashなので書き込みは面倒です。
まず書き込みはページ(256Byte)単位で行われ、ページ境界を超えるとページの先頭に戻るのでページ境界を意識する必要があります。
また初期値や消去後はすべてのデータが0xFFになり、ここから書き込み動作を行うと0にしたいビットだけ書き込み動作が行われます。このためデータを書き込む際はまず領域を一旦消去する必要があります。しかし消去はページ単位ではなく、最小でセクタ(4kByte)単位です。
よって書きたいデータがある場合は一度4kByteをメモリに読み込み、編集後初期化して書き込むという動作が必要になります。
さらに書き込む前にはWriteEnableを行う必要があるため、結局書き込みを行う際は
というややこしい手続きを踏む必要があります。しかし面倒ですがFlashやEEPROMを使う限り避けては通れない手続きですね。
普通に書いて読む分は同じように使用できますが、微妙に違っているところはあります。
などなどあります。
さて、ここまでは技術的な内容だったのですがここからは管理人が遭遇したトラブル?です。
まずショップから購入した時には右の様にただの袋に入った状態で送られてきました。この時点でかなり怪しいです。
5個セットを買ったのですが、写真の様に一つはピンが曲がっていてもう一つははんだボールが付いた状態でした。もうめちゃくちゃ怪しいです。
実際にアクセスしてみるとデータがすでに書き込まれた状態でした。しかもご丁寧に書き込み保護までしてありました。明らかに何かの基板から外した中古を販売していたようです。
送り返すほどの金額の商品でもないので諦めて泣き寝入りです。。。