From 75dcc47efba602e0f8122cee0b2d67d7cec0a3ce Mon Sep 17 00:00:00 2001 From: travisutk Date: Thu, 8 Jul 2010 14:53:18 +0000 Subject: [PATCH] EM260 client is finally showing signs of life! git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@664 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- client/GoodFETEM260.py | 46 +++++++++++++++++++++++++++--------------- client/goodfet.em260 | 7 ++++--- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/client/GoodFETEM260.py b/client/GoodFETEM260.py index edee5b2..e675be7 100644 --- a/client/GoodFETEM260.py +++ b/client/GoodFETEM260.py @@ -22,25 +22,39 @@ from GoodFETSPI import GoodFETSPI; class GoodFETEM260(GoodFETSPI): EM260APP=0x01; + seq=0; + def EM260trans(self,data): + """Exchange data by EM260 SPI. (Slightly nonstandard.)""" + self.data=data; + self.writecmd(0x01,0x82,len(data),data); + return self.data; + + def peek8(self,adr): """Read a byte from the given address.""" - data=self.SPItrans([0xfe,0x01,0x00, + data=self.EM260trans([0xfe,0x01,self.seq,0x00, 0x49, - 0xA7,0,0,0,0,0,0,0,0]); - return ord(data[7]); - def poke8(self,adr, byte): - """Poke a byte to the given address.""" + 0xA7]); + s=""; + for foo in data: + s=s+"%02x " % ord(foo); + print s; + + return ord(data[0]); def info(self): """Read the info bytes.""" - data=self.SPItrans([0x0B,0xA7, - 0xFF, - 0xFF,0xFF,0xFF, #00 02 A7 - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 - ]); + #data=self.EM260trans([0x0A,0xA7]); + #data=self.EM260trans([0xFE,0x04, + # 0x00,0x00,0x00,0x02, + # 0xA7]); + data=self.EM260trans([0x0B,0xA7]); + + #data=self.EM260trans([]); + + #data=self.EM260trans([0x0B,0x0B,0x0B,0x0B,0xA7]); + + s=""; for foo in data: - print "%02x" % ord(foo); + s=s+"%02x " % ord(foo); + print s; + diff --git a/client/goodfet.em260 b/client/goodfet.em260 index ff29934..2cf5527 100755 --- a/client/goodfet.em260 +++ b/client/goodfet.em260 @@ -36,10 +36,11 @@ client.SPIsetup(); if(sys.argv[1]=="info"): client.info(); + client.info(); + client.info(); if(sys.argv[1]=="test"): - for adr in range(0,32): #*1024): - val=client.peek8(adr); - print "%04x:=%02x" % (adr,val); + client.info(); + client.info(); if(sys.argv[1]=="dump"): f = sys.argv[2]; start=0x0000; -- 2.20.1