- if self.app!=1 or self.verb!=0:
- print "Error in SPI transaction; app=%02x, verb=%02x" % (self.app, self.verb);
- return ord(self.data[0]);
+ self.writecmd(0x01,0x02,3,data);
+ return self.data;
+ def SPIpokebyte(self,adr,val):
+ self.SPIpokebytes(adr,[val]);
+ def SPIpokebytes(self,adr,data):
+ #self.SPIwriteenable();
+ adranddata=[(adr&0xFF0000)>>16,
+ (adr&0xFF00)>>8,
+ adr&0xFF
+ ]+data;
+ self.writecmd(0x01,0x03,
+ len(adranddata),adranddata);
+
+ def SPIchiperase(self):
+ """Mass erase an SPI Flash ROM."""
+ self.writecmd(0x01,0x81,0,[]);
+ def SPIwriteenable(self):
+ """SPI Flash Write Enable"""
+ data=[0x06];
+ self.SPItrans(data);
+
+ def SPIjedecmanstr(self):
+ """Grab the JEDEC manufacturer string. Call after SPIjedec()."""
+ man=self.JEDECmanufacturers.get(self.JEDECmanufacturer)
+ if man==0:
+ man="UNKNOWN";
+ return man;
+
+ def SPIjedecstr(self):
+ """Grab the JEDEC manufacturer string. Call after SPIjedec()."""
+ man=self.JEDECmanufacturers.get(self.JEDECmanufacturer);
+ if man==0:
+ man="UNKNOWN";
+ device=self.JEDECdevices.get(self.JEDECdevice);
+ if device==0:
+ device="???"
+ return "%s %s" % (man,device);