Skip to content
Snippets Groups Projects
Commit 08aa6505 authored by Gijs Schoonderbeek's avatar Gijs Schoonderbeek
Browse files

update during testing APSPU from production

parent aaab3915
No related branches found
No related tags found
No related merge requests found
...@@ -56,7 +56,8 @@ LP_VOUT_UV_LIMIT = 0x44 ...@@ -56,7 +56,8 @@ LP_VOUT_UV_LIMIT = 0x44
LP_STORE_USER_ALL = 0x15 LP_STORE_USER_ALL = 0x15
LP_ON_OFF_CONFIG = 0x02 LP_ON_OFF_CONFIG = 0x02
LP_OPERATION = 0x01 LP_OPERATION = 0x01
LP_WRITE_PROTECT = 0x10
LP_STORE_DEFAULT_ALL = 0x12
# #
# Central I2C Devices # Central I2C Devices
# #
......
...@@ -42,11 +42,11 @@ class I2C: ...@@ -42,11 +42,11 @@ class I2C:
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.2) sleep(0.2)
except IOError, err: except IOError:
ret_ack = 0 ret_ack = 0
ret_value = 'ffff' ret_value = 'ffff'
if DEBUG: if DEBUG:
print("Reading error") print("Reading IO-error")
return ret_ack, ret_value return ret_ack, ret_value
...@@ -60,27 +60,29 @@ class I2C: ...@@ -60,27 +60,29 @@ class I2C:
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.2) sleep(0.2)
except IOError, err: except IOError:
ret_ack = 0 ret_ack = 0
rd_value.append(0) rd_value.append(0)
if DEBUG: if DEBUG:
print("Reading error") print("IO-Reading error")
for cnt in range(bytes_to_read): for cnt in range(bytes_to_read):
ret_value += (hex(rd_value[cnt])[2:]) ret_value += (hex(rd_value[cnt])[2:])
return ret_ack,ret_value return ret_ack,ret_value
def write_bytes(self, register, data): def write_bytes(self, register, data):
bus = smbus.SMBus(self.bus_nr) bus = smbus.SMBus(self.bus_nr)
if type(data) is not list:
data = [data]
try: try:
bus.write_i2c_block_data(self.I2C_Address, register, [data]) bus.write_i2c_block_data(self.I2C_Address, register, data)
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.3) sleep(0.3)
except IOError, err: except IOError:
ret_ack = 0 ret_ack = 0
ret_value = 0 ret_value = 0
if DEBUG: if DEBUG:
print("Write error") print("Write IO-error")
return ret_ack return ret_ack
def write_register(self, register): def write_register(self, register):
...@@ -90,11 +92,11 @@ class I2C: ...@@ -90,11 +92,11 @@ class I2C:
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.3) sleep(0.3)
except IOError, err: except IOError:
ret_ack = 0 ret_ack = 0
ret_value = 0 ret_value = 0
if DEBUG: if DEBUG:
print("Write error") print("Write IO-error")
return ret_ack return ret_ack
def write_pointer(self, register): def write_pointer(self, register):
...@@ -104,11 +106,11 @@ class I2C: ...@@ -104,11 +106,11 @@ class I2C:
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.3) sleep(0.3)
except IOError, err: except IOError:
ret_ack = 0 ret_ack = 0
ret_value = 0 ret_value = 0
if DEBUG: if DEBUG:
print("Write error") print("Write IO-error")
return ret_ack return ret_ack
def ack_check(self): def ack_check(self):
...@@ -119,11 +121,11 @@ class I2C: ...@@ -119,11 +121,11 @@ class I2C:
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.3) sleep(0.3)
except IOError, err: except IOError:
ret_ack = 0 ret_ack = 0
ret_value = 0 ret_value = 0
if DEBUG: if DEBUG:
print("No ACK") print("No ACK IO-Error")
return ret_ack return ret_ack
if __name__ == "__main__": if __name__ == "__main__":
......
...@@ -97,7 +97,8 @@ class I2C: ...@@ -97,7 +97,8 @@ class I2C:
def write_pointer(self, register): def write_pointer(self, register):
bus = pi.i2c_open(self.bus_nr, self.I2C_Address) bus = pi.i2c_open(self.bus_nr, self.I2C_Address)
try: try:
pi.i2c_read_device(bus, 1) # pi.i2c_read_device(bus, 1)
pi.i2c_read_device(bus, register)
ret_ack = 1 ret_ack = 1
if SLOW: if SLOW:
sleep(0.3) sleep(0.3)
...@@ -109,6 +110,20 @@ class I2C: ...@@ -109,6 +110,20 @@ class I2C:
pi.i2c_close(bus) pi.i2c_close(bus)
return ret_ack return ret_ack
def write_register(self, register):
bus = pi.i2c_open(self.bus_nr, self.I2C_Address)
try:
ret_value = pi.i2c_write_device(bus, [register])
ret_ack = 1
if SLOW:
sleep(0.3)
except IOError:
ret_ack = 0
ret_value = 0
if DEBUG:
print("No ACK")
return ret_ack
def ack_check(self): def ack_check(self):
bus = smbus.SMBus(self.bus_nr) bus = smbus.SMBus(self.bus_nr)
try: try:
......
...@@ -25,7 +25,7 @@ from APSPU_I2C import * ...@@ -25,7 +25,7 @@ from APSPU_I2C import *
if os.name == "posix": if os.name == "posix":
from I2C_serial_pi2 import * from I2C_serial_pi import *
else: else:
from I2C_serial import * from I2C_serial import *
...@@ -84,6 +84,7 @@ class ApspuClass: ...@@ -84,6 +84,7 @@ class ApspuClass:
f"set {1.2*VOUT_POLS[pol.name]} read back {ov_out}") f"set {1.2*VOUT_POLS[pol.name]} read back {ov_out}")
exit() exit()
pol.set_on_off_config() pol.set_on_off_config()
pol.on_off(True)
pol.write_to_nvm() pol.write_to_nvm()
print("Done") print("Done")
...@@ -269,6 +270,7 @@ class PolClass: ...@@ -269,6 +270,7 @@ class PolClass:
# #
ret_ack = False ret_ack = False
if self.status: if self.status:
ret_ack = self.pol_dev.write_bytes(LP_WRITE_PROTECT, [0])
set_value = int(value * (2**11)) set_value = int(value * (2**11))
hex_set_value = hex(set_value) hex_set_value = hex(set_value)
wr_value = (hex_set_value[4:6] + hex_set_value[2:4]) wr_value = (hex_set_value[4:6] + hex_set_value[2:4])
...@@ -306,7 +308,12 @@ class PolClass: ...@@ -306,7 +308,12 @@ class PolClass:
# #
# return is always True # return is always True
# #
ret_ack = self.pol_dev.write_bytes(LP_STORE_USER_ALL, 0) ret_ack = self.pol_dev.write_register(0x15)
# command = f"i2cset -y 1 0x{CTR_POLS[self.name]:02X} 0x15 cp"
# print(command)
# os.system(command)
# os.system(command)
sleep(5)
return True return True
def read_vin(self): def read_vin(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment