EEPROM: spi presence detect address randomisation.

pull/24/head
Peter Hinch 2024-01-17 09:34:08 +00:00
rodzic 5861e93f48
commit 75e8311ffb
3 zmienionych plików z 14 dodań i 10 usunięć

Wyświetl plik

@ -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

Wyświetl plik

@ -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

Wyświetl plik

@ -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])