Endorfin35+
Kayıtsız Üye
- Katılım
- 1 Mayıs 2020
- Mesajlar
- 4,443
Öğrenme amaçlı olarak, kolay erişilebilirlik, uygun fiyat ve yüksek kapasite nedeni ile resimdeki modulden sipariş ettim. Üzerinde Winbond 25Q32 bellek var. Siparişim henüz elime ulaşmadı ama şimdiden kurcalanmaya başladım. Elimdeki hurda parçaların üzerinden bu ürüne muadil olduğunu tahmin ettiğim zbit25vq32 bir bellek çıktı. Hemen esp32 ye bağlayarak iletişim kurmayı denedim. İletişim yapılarını çok fazla bilmiyorum. İşimi gördüğü sürece kütüphaneleri kullanıyorum ama işin biraz daha detayını öğrenmek istiyorum. Daha önce 24CXX serisi i2c epromlar kullandım. Ama yine kütüphane desteği ile sadece şu adrese yaz, şu adresten oku şeklinde ilerledim. 25VQ32 nin data sheet dosyasını incelediğimde konunun jargonuna da uzak olduğum için page, blok, sektör gibi kavramlar arasında kayboldum. Oradan buradan bir sürü şey okuyunca da biraz kafam karıştı...
Şimdi Bir blok içerisindeki yapıyı anlamak için excelde şöyle bir tablo hazırladım ve biraz daha olay kafamda şekillendi...
Şu adreste refens alacağım bir kod var : https://github.com/kriswiner/ESP32/blob/master/SPI/SPIFlash_ESP32.ino
Kod:
#define CMD_WRITE_STATUS_REG 0x01
#define CMD_PAGE_PROGRAM 0x02
#define CMD_READ_DATA 0x03
#define CMD_WRITE_DISABLE 0x04//not tested
#define CMD_READ_STATUS_REG 0x05
#define CMD_WRITE_ENABLE 0x06
#define CMD_READ_HIGH_SPEED 0x0B//not tested
#define CMD_SECTOR_ERASE 0x20//not tested
#define CMD_BLOCK32K_ERASE 0x52//not tested
#define CMD_RESET_DEVICE 0xF0//<<-different from winbond
#define CMD_READ_ID 0x9F
#define CMD_RELEASE_POWER_DOWN 0xAB//not tested
#define CMD_POWER_DOWN 0xB9//not tested
#define CMD_CHIP_ERASE 0xC7
#define CMD_BLOCK64K_ERASE 0xD8//not tested
Bir sürü instruction tanımlanmış. i2c epromdaki gibi bir bayt oku, bir byte yaz yok sanırım. Ben şimdi 1. adrese yazmak için 256 byte birden mi yazacağım? veya 2. adresteki veriyi değiştirmek için önce 256 okuyup istediğim yeri değiştirip tekrar mı yazacağım bu işin mantığı nedir? Dikkat etmem gereken noktalar varmı?