Skip to content
Snippets Groups Projects
Commit d9d5f67f authored by Paulus Kruger's avatar Paulus Kruger
Browse files

i2C retry for HBA BF coefficients

parent 4410b601
No related branches found
No related tags found
No related merge requests found
Pipeline #26410 passed
...@@ -57,11 +57,14 @@ class hba1(hwdev): ...@@ -57,11 +57,14 @@ class hba1(hwdev):
logging.debug("SetHba addr=0x%x reg=0x%x",addr,reg) logging.debug("SetHba addr=0x%x reg=0x%x",addr,reg)
I2Ccallback=self.conf['parentcls'].i2csetget I2Ccallback=self.conf['parentcls'].i2csetget
I2Ccallback(0x40,[0],read=1)#wakeup, do nothing I2Ccallback(0x40,[0],read=1)#wakeup, do nothing
#sleep(0.01) # sleep(0.005)
I2Ccallback(addr,data[:16],reg=reg) retry=0;
while not(I2Ccallback(addr,data[:16],reg=reg)) and (retry<2): retry+=1;
if retry==2: logging.warn("uC BF comm error");
if len(data)>16: if len(data)>16:
#sleep(0.01) # sleep(0.005)
I2Ccallback(addr,data[16:],reg=reg+16) while not(I2Ccallback(addr,data[16:],reg=reg+16)) and (retry<2): retry+=1;
if retry>=2: logging.warn("uC BF comm error2");
#sleep(0.01) #sleep(0.01)
return True return True
......
...@@ -41,7 +41,11 @@ class i2c(hwdev): ...@@ -41,7 +41,11 @@ class i2c(hwdev):
bus.iaddr_bytes=0 bus.iaddr_bytes=0
reg=0; reg=0;
logging.debug(str(("I2C set",addr,reg,bytes(bytearray(data)),read))) logging.debug(str(("I2C set",addr,reg,bytes(bytearray(data)),read)))
bus.ioctl_write(reg,bytes(bytearray(data))) TXlen=bus.ioctl_write(reg,bytes(bytearray(data)))
if TXlen<0:
bus.close;
return False;
if (TXlen!=len(data)): logging.warn("I2C write error %i/%i"%(TXlen,len(data)))
bus.close() bus.close()
return True; return True;
except: except:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment