kopia lustrzana https://github.com/peterhinch/micropython_eeprom
Add 25LC512 support, make eep_spi.py more self-explanatory.
rodzic
9748b15389
commit
295a103965
|
@ -67,6 +67,7 @@ In the table below the Interface column includes page size in bytes.
|
||||||
| Various | Various | SPI 4096 | <=32MiB | Flash | [FLASH.md](./flash/FLASH.md) |
|
| Various | Various | SPI 4096 | <=32MiB | Flash | [FLASH.md](./flash/FLASH.md) |
|
||||||
| STM | M95M02-DR | SPI 256 | 256KiB | EEPROM | [SPI.md](./eeprom/spi/SPI.md) |
|
| STM | M95M02-DR | SPI 256 | 256KiB | EEPROM | [SPI.md](./eeprom/spi/SPI.md) |
|
||||||
| Microchip | 25xx1024 | SPI 256 | 128KiB | EEPROM | [SPI.md](./eeprom/spi/SPI.md) |
|
| Microchip | 25xx1024 | SPI 256 | 128KiB | EEPROM | [SPI.md](./eeprom/spi/SPI.md) |
|
||||||
|
| Microchip | 25xx512* | SPI 256 | 64KiB | EEPROM | [SPI.md](./eeprom/spi/SPI.md) |
|
||||||
| Microchip | 24xx512 | I2C 128 | 64KiB | EEPROM | [I2C.md](./eeprom/i2c/I2C.md) |
|
| Microchip | 24xx512 | I2C 128 | 64KiB | EEPROM | [I2C.md](./eeprom/i2c/I2C.md) |
|
||||||
| Microchip | 24xx256 | I2C 128 | 32KiB | EEPROM | [I2C.md](./eeprom/i2c/I2C.md) |
|
| Microchip | 24xx256 | I2C 128 | 32KiB | EEPROM | [I2C.md](./eeprom/i2c/I2C.md) |
|
||||||
| Microchip | 24xx128 | I2C 128 | 16KiB | EEPROM | [I2C.md](./eeprom/i2c/I2C.md) |
|
| Microchip | 24xx128 | I2C 128 | 16KiB | EEPROM | [I2C.md](./eeprom/i2c/I2C.md) |
|
||||||
|
@ -76,6 +77,7 @@ In the table below the Interface column includes page size in bytes.
|
||||||
| Adafruit | 1895 | I2C n/a | 32KiB | FRAM | [FRAM.md](./fram/FRAM.md) |
|
| Adafruit | 1895 | I2C n/a | 32KiB | FRAM | [FRAM.md](./fram/FRAM.md) |
|
||||||
| Adafruit | 4677 | SPI n/a | 8MiB | SPIRAM | [SPIRAM.md](./spiram/SPIRAM.md) |
|
| Adafruit | 4677 | SPI n/a | 8MiB | SPIRAM | [SPIRAM.md](./spiram/SPIRAM.md) |
|
||||||
|
|
||||||
|
Parts marked * have been tested by users (see below).
|
||||||
The SPIRAM chip is equivalent to Espressif ESP-PSRAM64H.
|
The SPIRAM chip is equivalent to Espressif ESP-PSRAM64H.
|
||||||
|
|
||||||
The flash driver now has the capability to support a variety of chips. The
|
The flash driver now has the capability to support a variety of chips. The
|
||||||
|
@ -88,6 +90,7 @@ following have been tested to date:
|
||||||
| Cypress S25FL064L | 8 |
|
| Cypress S25FL064L | 8 |
|
||||||
| Winbond W25Q32JV | 4 |
|
| Winbond W25Q32JV | 4 |
|
||||||
|
|
||||||
|
|
||||||
It is likely that other chips with 4096 byte blocks will work but I am unlikely
|
It is likely that other chips with 4096 byte blocks will work but I am unlikely
|
||||||
to be able to support hardware I don't possess. Users should check datasheets
|
to be able to support hardware I don't possess. Users should check datasheets
|
||||||
for compatibility.
|
for compatibility.
|
||||||
|
@ -106,6 +109,9 @@ Winbond W25Q128JV Flash 128MiB tested by
|
||||||
[mweber-bg](https://github.com/peterhinch/micropython_eeprom/issues/8#issuecomment-917603913).
|
[mweber-bg](https://github.com/peterhinch/micropython_eeprom/issues/8#issuecomment-917603913).
|
||||||
This requires setting `cmd5=False`.
|
This requires setting `cmd5=False`.
|
||||||
|
|
||||||
|
Microchip 25LC512 SPI EEPROM 64KiB tested by
|
||||||
|
[ph1lj-6321](https://github.com/peterhinch/micropython_eeprom/issues/10).
|
||||||
|
|
||||||
## 1.5 Performance
|
## 1.5 Performance
|
||||||
|
|
||||||
FRAM and SPIRAM are truly byte-addressable: speed is limited only by the speed
|
FRAM and SPIRAM are truly byte-addressable: speed is limited only by the speed
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# eep_spi.py MicroPython test program for Microchip SPI EEPROM devices.
|
# eep_spi.py MicroPython test program for Microchip SPI EEPROM devices.
|
||||||
|
|
||||||
# Released under the MIT License (MIT). See LICENSE.
|
# Released under the MIT License (MIT). See LICENSE.
|
||||||
# Copyright (c) 2019 Peter Hinch
|
# Copyright (c) 2019-2022 Peter Hinch
|
||||||
|
|
||||||
import uos
|
import uos
|
||||||
import time
|
import time
|
||||||
|
@ -149,3 +149,11 @@ def full_test(stm=False):
|
||||||
print('Page {} readback failed.'.format(page))
|
print('Page {} readback failed.'.format(page))
|
||||||
break
|
break
|
||||||
page += 1
|
page += 1
|
||||||
|
|
||||||
|
test_str = """Available tests (see SPI.md):
|
||||||
|
test(stm=False) Basic hardware test.
|
||||||
|
full_test(stm=False) Thorough hardware test.
|
||||||
|
fstest(format=False, stm=False) Filesystem test (see doc).
|
||||||
|
cptest(stm=False) Copy files to filesystem (see doc).
|
||||||
|
"""
|
||||||
|
print(test_str)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# eeprom_spi.py MicroPython driver for Microchip 128KiB SPI EEPROM device,
|
# eeprom_spi.py MicroPython driver for EEPROM chips (see README.md for
|
||||||
# also STM 256KiB chip.
|
# tested devices).
|
||||||
|
|
||||||
# Released under the MIT License (MIT). See LICENSE.
|
# Released under the MIT License (MIT). See LICENSE.
|
||||||
# Copyright (c) 2019 Peter Hinch
|
# Copyright (c) 2019-2022 Peter Hinch
|
||||||
|
|
||||||
import time
|
import time
|
||||||
from micropython import const
|
from micropython import const
|
||||||
|
@ -29,7 +29,7 @@ class EEPROM(BlockDevice):
|
||||||
|
|
||||||
def __init__(self, spi, cspins, size=128, verbose=True, block_size=9):
|
def __init__(self, spi, cspins, size=128, verbose=True, block_size=9):
|
||||||
# args: virtual block size in bits, no. of chips, bytes in each chip
|
# args: virtual block size in bits, no. of chips, bytes in each chip
|
||||||
if size not in (128, 256):
|
if size not in (64, 128, 256):
|
||||||
print('Warning: possible unsupported chip. Size:', size)
|
print('Warning: possible unsupported chip. Size:', size)
|
||||||
super().__init__(block_size, len(cspins), size * 1024)
|
super().__init__(block_size, len(cspins), size * 1024)
|
||||||
self._stm = size == 256
|
self._stm = size == 256
|
||||||
|
|
Ładowanie…
Reference in New Issue