Add 25LC512 support, make eep_spi.py more self-explanatory.

pull/13/head
Peter Hinch 2022-02-19 09:56:47 +00:00
rodzic 9748b15389
commit 295a103965
3 zmienionych plików z 19 dodań i 5 usunięć

Wyświetl plik

@ -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) |
| 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 | 25xx512* | SPI 256 | 64KiB | EEPROM | [SPI.md](./eeprom/spi/SPI.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 | 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 | 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 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 |
| Winbond W25Q32JV | 4 |
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
for compatibility.
@ -106,6 +109,9 @@ Winbond W25Q128JV Flash 128MiB tested by
[mweber-bg](https://github.com/peterhinch/micropython_eeprom/issues/8#issuecomment-917603913).
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
FRAM and SPIRAM are truly byte-addressable: speed is limited only by the speed

Wyświetl plik

@ -1,7 +1,7 @@
# eep_spi.py MicroPython test program for Microchip SPI EEPROM devices.
# Released under the MIT License (MIT). See LICENSE.
# Copyright (c) 2019 Peter Hinch
# Copyright (c) 2019-2022 Peter Hinch
import uos
import time
@ -149,3 +149,11 @@ def full_test(stm=False):
print('Page {} readback failed.'.format(page))
break
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)

Wyświetl plik

@ -1,8 +1,8 @@
# eeprom_spi.py MicroPython driver for Microchip 128KiB SPI EEPROM device,
# also STM 256KiB chip.
# eeprom_spi.py MicroPython driver for EEPROM chips (see README.md for
# tested devices).
# Released under the MIT License (MIT). See LICENSE.
# Copyright (c) 2019 Peter Hinch
# Copyright (c) 2019-2022 Peter Hinch
import time
from micropython import const
@ -29,7 +29,7 @@ class EEPROM(BlockDevice):
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
if size not in (128, 256):
if size not in (64, 128, 256):
print('Warning: possible unsupported chip. Size:', size)
super().__init__(block_size, len(cspins), size * 1024)
self._stm = size == 256