All Projects → nopnop2002 → Raspberry-W25Q64

nopnop2002 / Raspberry-W25Q64

Licence: MIT license
SPI Flash Memory W25Q64 Access Library for RaspberryPi

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to Raspberry-W25Q64

esp-idf-w25q64
SPI Flash Memory W25Q64 Access Library for esp-idf
Stars: ✭ 12 (-67.57%)
Mutual labels:  spiflash, w25q80, w25q16, w25q32, w25q64, w25q128
w25qxx
w25qxx full function driver
Stars: ✭ 440 (+1089.19%)
Mutual labels:  w25q80, w25q16, w25q32, w25q64, w25q128
Raspap Webgui
Simple wireless AP setup & management for Debian-based devices
Stars: ✭ 3,383 (+9043.24%)
Mutual labels:  raspberrypi, orangepi
godot-gameshell
Godot export templates and instructions for the GameShell portable game console and other single-board computers
Stars: ✭ 34 (-8.11%)
Mutual labels:  raspberrypi, orangepi
godot-launcher
Alternative launcher for single-board computers
Stars: ✭ 107 (+189.19%)
Mutual labels:  raspberrypi, orangepi
raspberrypi4-bootloader-analysis
My Analysis of the VC4 Assembly Code from the RPI4
Stars: ✭ 31 (-16.22%)
Mutual labels:  raspberrypi
Raspberry-Pi-Dashboard
Web-based dashboard interface to inspect Raspberry Pi hardware and software with no extra software required.
Stars: ✭ 131 (+254.05%)
Mutual labels:  raspberrypi
RPi-TELEBOT
Python based Telegram bot to monitor and control the raspberry pi
Stars: ✭ 19 (-48.65%)
Mutual labels:  raspberrypi
epdtext
A simple display manager app for the WaveShare 2.7in e-Paper Display
Stars: ✭ 18 (-51.35%)
Mutual labels:  raspberrypi
TeslondaServer
The back-end, server app for the Teslonda Dashboard on Raspberry Pi.
Stars: ✭ 20 (-45.95%)
Mutual labels:  raspberrypi
ConsolePi
Raspberry Pi Based Serial Console Server, with PushBullet Notification of IP changes, Automatic VPN termination, custom menu, Power Outlet Control, and a lot more
Stars: ✭ 109 (+194.59%)
Mutual labels:  raspberrypi
Linux-System-Info-Webpage
Material Design Dashboard for Linux System Info. Great for RPi and other linux Distros
Stars: ✭ 19 (-48.65%)
Mutual labels:  raspberrypi
52-Weeks-of-Pi
Inspired by Shekhar Gulati's "52 technologies in 2016", I've decided to set a goal of 52 Pi ideas over the next year.
Stars: ✭ 54 (+45.95%)
Mutual labels:  raspberrypi
rpi-home-cluster-setup
Automated way to set up your own kubernetes cluster on Raspberry Pi. Includes memory card preparation, nodes bootstrap and kubernetes services configuration
Stars: ✭ 111 (+200%)
Mutual labels:  raspberrypi
node-nrf24
nRF24 (nrf24l01/nrfl24l01+) radios in the nodejs way
Stars: ✭ 37 (+0%)
Mutual labels:  orangepi
aprenda-python
Aprendizado, dicas e projetos sobre Python
Stars: ✭ 22 (-40.54%)
Mutual labels:  raspberrypi
aria2-ariang-docker
🐳 Aria2 downloader and AriaNg webui Docker image based on Alpine Linux
Stars: ✭ 49 (+32.43%)
Mutual labels:  raspberrypi
hapi
Hydro­ponic Automa­tion Plat­form Ini­tia­tive (HAPI)
Stars: ✭ 65 (+75.68%)
Mutual labels:  raspberrypi
balena-wpe
Fullscreen WebKit browser with hardware accelerated CSS, WebGL, and HTML5 video for the RaspberryPi 3.
Stars: ✭ 372 (+905.41%)
Mutual labels:  raspberrypi
speedInspectorRPI
A docker image with a cronjob running speedtest, audit your internet connection/ISP
Stars: ✭ 12 (-67.57%)
Mutual labels:  raspberrypi

Raspberry-W25Q64

SPI Flash Memory W25Q64 Access Library for RaspberryPi
I ported from here.

https://github.com/Tamakichi/Arduino-W25Q64


Software requirement

  • WiringPi Library
    This project uses the wiringPiSPISetup() function to initialize SPI, and use /dev/spidev0.0.
    If you use it on a board other than the RPI board, you may need to change the SPI device.
    As far as I know, there are these libraries.
    • WiringPi for OrangePi
    • WiringPi for BananaPi
    • WiringPi for NanoPi
    • WiringPi for Pine-64

Build

git clone https://github.com/nopnop2002/Raspberry-W25Q64
cd Raspberry-W25Q64
make

API

// Start Flash
void W25Q64_begin(uint8_t spich);

// Get status register1
uint8_t W25Q64_readStatusReg1(void);

// Get status register2(Winbond only)
uint8_t W25Q64_readStatusReg2(void);

// Get JEDEC ID(Manufacture, Memory Type,Capacity)
void W25Q64_readManufacturer(uint8_t* jedc);

// Get Unique ID(Winbond only)
void W25Q64_readUniqieID(uint8_t* id);

// Check busy
bool W25Q64_IsBusy(void);

// Set power down mode
void W25Q64_powerDown(void);

// Set write enable
void W25Q64_WriteEnable(void);

// Set write disable
void W25Q64_WriteDisable(void);

// Read data from memory
uint16_t W25Q64_read(uint32_t addr,uint8_t *buf,uint16_t n);

// First read data from memory
uint16_t W25Q64_fastread(uint32_t addr,uint8_t *buf,uint16_t n);

// Erase data by Sector
bool W25Q64_eraseSector(uint16_t sect_no, bool flgwait);

// Erase data by block(64KB)
bool W25Q64_erase64Block(uint16_t blk_no, bool flgwait);

// Erase data by Block(32KB)
bool W25Q64_erase32Block(uint16_t blk_no, bool flgwait);

// Erase all data
bool W25Q64_eraseAll(bool flgwait);

// Write data to memory
uint16_t W25Q64_pageWrite(uint16_t sect_no, uint16_t inaddr, uint8_t* data, uint16_t n);


Wireing

w25q64


Winbond

Device # of Bytes Address range # of 4K-Sectors # of 32K-Blocks # of 64K-Blocks JEDEC ID
W25Q80 1M 0x0FFFFF 256 32 16 EF-40-14
W25Q16 2M 0x1FFFFF 512 64 32 EF-40-15
W25Q32 4M 0x3FFFFF 1024 128 64 EF-40-16
W25Q64 8M 0x7FFFFF 2048 256 128 EF-40-17
W25Q128 16M 0xFFFFFF 4096 512 256 EF-40-18
  • W25Q80
    w25q80

JEDEC ID:
Byte1 : ManufacturerID(0xef=Winbond)
Byte2 : MemoryType(0x40=SPI/0x60=QPI)
Byte3 : Capacity(2^0x14=2^20=0x100000=1M Byte=8M Bit)

First 10Byte : ASCII 0-9
Next 32Byte : ASCII A-Z

  • W25Q16
    w25q16

  • W25Q32
    w25q32

  • W25Q64
    w25q64

  • W25Q128
    w25q128


MACRONIX

Device # of Bytes Address range # of 4K-Sectors # of 32K-Blocks # of 64K-Blocks JEDEC ID
MX25L3206E 4M 0x3FFFFF 1024 128 64 C2-20-16
MX25L6473E 8M 0x7FFFFF 2048 256 128 C2-20-17
MX25L12835F 16M 0xFFFFFF 4096 512 256 C2-20-18
  • MX25L3206E
    mx25l32l06

JEDEC ID:
Byte1 : ManufacturerID(0xc2=Macronix)
Byte2 : MemoryType(0x20)
Byte3 : Capacity(2^0x16=2^22=0x400000=4M Byte=32M Bit)

  • MX25L6473E
    mx25l6473e

  • MX25L12835F
    mx25l12835f


Eon Silicon Solution

Device # of Bytes Address range # of 4K-Sectors # of 32K-Blocks # of 64K-Blocks JEDEC ID
EN25Q32B 4M 0x3FFFFF 1024 128 64 1C-30-16
EN25QH64 8M 0x7FFFFF 2048 256 128 1C-70-17
  • EN25Q32B
    en25q32b

  • EN25QH64
    en25qh64


Note

I tested these.
But I couldn't get it working.

  • GD25Q64
  • SST25VF016B
  • SST25VF032B
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].