import RPi.GPIO as G import time import spidev spi = spidev.SpiDev() spi.open(0, 0) # bus, device spi.max_speed_hz = 50000 spi.mode = 0 W = 0xF0 R = 0x0F def Reset(): print('Reset:', end=" ") spi.writebytes([W, 0x00, 0x00, 0x80]) for i in range(10): x = spi.xfer([R, 0x00, 0x00, 0]) print('%02x' % x[3], end=" ") print() time.sleep(1) def Setem(addr, vec): # for e in reversed(vec): for e in vec: spi.writebytes([W, 0, addr, e]) addr += 1 def SetGateway(*vec): Setem(0x001, vec) def SetMask(*vec): Setem(0x005, vec) def SetMAC(*vec): Setem(0x009, vec) def SetIP(*vec): Setem(0x00F, vec) def SetTMSR(x): Setem(0x01B, [x]) def SetRMSR(x): Setem(0x01A, [x]) def Dump(): for i in range(0x1C): x = spi.xfer([R, 0x00, i, 0]) gap = i in [0, 4, 8, 14, 18, 0x19] print('%02x ' % x[3], end=" " if gap else "") print() while True: Reset() Dump() SetTMSR(0x55) SetRMSR(0x55) SetGateway(1, 1, 1, 1) SetMask(255, 0, 0, 0) SetMAC(61, 62, 63, 64, 65, 66) SetIP(10, 1, 2, 3) Dump()