From 75e8311ffb0fe48dc891a17af2fa07ca2373cc45 Mon Sep 17 00:00:00 2001 From: Peter Hinch Date: Wed, 17 Jan 2024 09:34:08 +0000 Subject: [PATCH] EEPROM: spi presence detect address randomisation. --- eeprom/i2c/eep_i2c.py | 8 +++++--- eeprom/spi/eep_spi.py | 8 +++++--- eeprom/spi/eeprom_spi.py | 8 ++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/eeprom/i2c/eep_i2c.py b/eeprom/i2c/eep_i2c.py index 7fb60b2..d05b31d 100644 --- a/eeprom/i2c/eep_i2c.py +++ b/eeprom/i2c/eep_i2c.py @@ -16,10 +16,12 @@ def get_eep(): Pin.board.EN_3V3.value(1) time.sleep(0.1) # Allow decouplers to charge - if uos.uname().sysname == "esp8266": + if uos.uname().sysname == "esp8266": # ESP8266 test fixture eep = EEPROM(SoftI2C(scl=Pin(13, Pin.OPEN_DRAIN), sda=Pin(12, Pin.OPEN_DRAIN)), T24C512) - else: - eep = EEPROM(I2C(2), T24C512) # Pyboard D or 1.x + elif uos.uname().sysname == "esp32": # ChronoDot on ESP32-S3 + eep = EEPROM(SoftI2C(scl=Pin(9, Pin.OPEN_DRAIN), sda=Pin(8, Pin.OPEN_DRAIN)), 256, addr=0x50) + else: # Pyboard D test fixture + eep = EEPROM(I2C(2), T24C512) print("Instantiated EEPROM") return eep diff --git a/eeprom/spi/eep_spi.py b/eeprom/spi/eep_spi.py index c3e2327..a127102 100644 --- a/eeprom/spi/eep_spi.py +++ b/eeprom/spi/eep_spi.py @@ -24,14 +24,16 @@ def get_eep(stm): if stm: if ESP8266: spi = SoftSPI(baudrate=5_000_000, sck=Pin(4), miso=Pin(0), mosi=Pin(2)) - else: # Pyboard - spi = SPI(2, baudrate=5_000_000) + else: # Pyboard. 1.22.1 hard SPI seems to have a read bug + # spi = SPI(2, baudrate=5_000_000) + spi = SoftSPI(baudrate=5_000_000, sck=Pin('Y6'), miso=Pin('Y7'), mosi=Pin('Y8')) eep = EEPROM(spi, cspins, 256) else: if ESP8266: spi = SoftSPI(baudrate=20_000_000, sck=Pin(4), miso=Pin(0), mosi=Pin(2)) else: - spi = SPI(2, baudrate=20_000_000) + # spi = SPI(2, baudrate=20_000_000) + spi = SoftSPI(baudrate=20_000_000, sck=Pin('Y6'), miso=Pin('Y7'), mosi=Pin('Y8')) eep = EEPROM(spi, cspins, 128) print("Instantiated EEPROM") return eep diff --git a/eeprom/spi/eeprom_spi.py b/eeprom/spi/eeprom_spi.py index 8f41716..27142ce 100644 --- a/eeprom/spi/eeprom_spi.py +++ b/eeprom/spi/eeprom_spi.py @@ -46,10 +46,10 @@ class EEPROM(EepromDevice): def _devtest(self, cs, la, v=None): buf = bytearray(1) mvp = self._mvp - mvp[:] = b"\0" * 5 - # mvp[1] = la >> 16 - # mvp[2] = (la >> 8) & 0xFF - # mvp[3] = la & 0xFF + # mvp[:] = b"\0" * 5 # test with addr 0 + mvp[1] = la >> 16 + mvp[2] = (la >> 8) & 0xFF + mvp[3] = la & 0xFF mvp[0] = _READ cs(0) self._spi.write(mvp[:4])