From: p15692025051 <846603105@qq.com> Date: Wed, 17 Jan 2024 03:56:57 +0000 (+0800) Subject: tp初始化调整 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=47b888bc72f30f465865252ec6bffd71a41c24da;p=mirrors%2FASR1603_G5.git tp初始化调整 --- diff --git a/2.sdk/project/A616/sdk/services/microPython/ports/quectel/core/initTP.py b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/initTP.py similarity index 90% rename from 2.sdk/project/A616/sdk/services/microPython/ports/quectel/core/initTP.py rename to 2.sdk/Helios_SDK/services/microPython/ports/quectel/core/initTP.py index 534ca065..36058aa8 100644 --- a/2.sdk/project/A616/sdk/services/microPython/ports/quectel/core/initTP.py +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/initTP.py @@ -81,7 +81,7 @@ def cst816d_update(startAddr, length, data): cmd[0] = 0xEE ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x04]), 2, bytearray(cmd), 1) - utime.sleep_ms(100) + utime.sleep_ms(250) retrycnt = 51 for i in range (retrycnt): @@ -92,7 +92,19 @@ def cst816d_update(startAddr, length, data): if r_data[0] == 0x55: print("r_data[0] = 0x55,break") break - + i2c_obj = I2C(I2C.I2C2, I2C.STANDARD_MODE) + print("cst816d_update try:count:{}!!!".format(i)) + # ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x14]), 2, bytearray(cmd), 2) + # utime.sleep_ms(5) + + # ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x18]), 2, bytearray(data), PER_LEN) + + # utime.sleep_ms(5) + + # cmd[0] = 0xEE + # ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x04]), 2, bytearray(cmd), 1) + + utime.sleep_ms(5) startAddr = startAddr + PER_LEN del data[0:PER_LEN] sum_len = sum_len + PER_LEN diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/initTP.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/initTP.py deleted file mode 100644 index 534ca065..00000000 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/initTP.py +++ /dev/null @@ -1,197 +0,0 @@ -import log -from machine import I2C -import utime -from machine import Pin -import uos - -# from ext import capacitive_hynitron_cst816d_update_new -import capacitive_hynitron_cst816d_update - -TP_HYN_I2C_UPDATE_WRITE_ADDR = (0x6A<<1) -TP_HYN_I2C_UPDATE_READ_ADDR = ((0x6A<<1)|1) -PER_LEN = 512 -x = 0 -y = 0 -#--------------------------------------------------------------------- -# cst816d_read_checksum -#--------------------------------------------------------------------- -def cst816d_read_checksum(): - - if -1 == cst816d_enter_bootmode(): - return -1 - - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - cmd = [0] - - if -1 == i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x03]), 2, bytearray(cmd), 1): - return -1 - utime.sleep_ms(500)#这里延时太短会读错checksum - - r_data = bytearray(2) - if -1 == i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x08]), 2, r_data, 2, 0): - return -1 - check_sum = (r_data[1] << 8) | r_data[0] - print("check_sum的值为:",check_sum) - return check_sum -#--------------------------------------------------------------------- -# GPIO_ResetTP -#--------------------------------------------------------------------- -def GPIO_ResetTP(): - - print("GPIO_ResetTP") - - gpio_power = Pin(Pin.GPIO18, Pin.OUT, Pin.PULL_PU, 0) - gpio_power.write(1) - - gpio_reset = Pin(Pin.GPIO32, Pin.OUT, Pin.PULL_PU, 0) - gpio_reset.write(0) - utime.sleep_ms(10) - gpio_reset.write(1) - utime.sleep_ms(10) - -#--------------------------------------------------------------------- -# cst816d_update -#--------------------------------------------------------------------- -def cst816d_update(startAddr, length, data): - print("cst816d_update") - if -1 == cst816d_enter_bootmode(): - return -1 - - sum_len = 0 - cmd = [0,0] - global x - while 1: - x += 1 - if sum_len >= length: - print("sum_len >= length,退出循环") - return - a = startAddr&0xFF - cmd[0]=a - b = startAddr>>8 - cmd[1]=b - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x14]), 2, bytearray(cmd), 2) - utime.sleep_ms(100) - - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x18]), 2, bytearray(data), PER_LEN) - - utime.sleep_ms(100) - - cmd[0] = 0xEE - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x04]), 2, bytearray(cmd), 1) - - utime.sleep_ms(100) - - retrycnt = 51 - for i in range (retrycnt): - r_data = bytearray(1) - ret = i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x05]), 2, r_data, 1, 0) - utime.sleep_ms(50) - - if r_data[0] == 0x55: - print("r_data[0] = 0x55,break") - break - - startAddr = startAddr + PER_LEN - del data[0:PER_LEN] - sum_len = sum_len + PER_LEN - -#--------------------------------------------------------------------- -# cst816d_enter_bootmode -#--------------------------------------------------------------------- -def cst816d_enter_bootmode(): - - GPIO_ResetTP() - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - - cmd = [0xAB] - #进入boot模式 - retrycnt = 10 - global y - for i in range (retrycnt): - y += 1 - if 0 == i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x01]), 2, bytearray(cmd), 1): - utime.sleep_ms(100) - else: - print("boot模式写命令失败") - - r_data = bytearray(1) - if -1 == i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x03]), 2, r_data, 1, 0): - utime.sleep_ms(100) - else: - if 0xc1 == r_data[0]: - utime.sleep_ms(100) - return 0 - else: - print("boot模式进入失败") - - return -1 -#--------------------------------------------------------------------- -# ctp_hynitron_update -#--------------------------------------------------------------------- -def ctp_hynitron_update(): - - # 初始化固件数组和数组长度 - p_app_bin = [] - app_bin_len = 0 - - #进入boot模式 - # if -1 == cst816d_enter_bootmode(): - # return - - # 获取固件数组 - # p_app_bin = capacitive_hynitron_cst816d_update_new.app_bin_816d - p_app_bin = capacitive_hynitron_cst816d_update.app_bin_816d - - # 获取固件数组的长度 - app_bin_len = len(p_app_bin) - - if app_bin_len > 10: - startAddr = p_app_bin[1] - length = p_app_bin[3] - checksum = p_app_bin[5] #a8 78 - - startAddr <<= 8; startAddr |= p_app_bin[0] - length <<= 8; length |= p_app_bin[2] - checksum <<= 8; checksum |= p_app_bin[4] - - print("startAddr:%x"%startAddr) - print("length:%x"%length) - print("checksum:%x"%checksum) - - - #检查checksum - sum_now = cst816d_read_checksum() - if sum_now == -1: - print("初始化失败") - elif sum_now != checksum: - print("固件包checksum不相同!") - - del p_app_bin[0:6] - cst816d_update(startAddr, length, p_app_bin) - - #升级后再次确认checksum - if checksum == cst816d_read_checksum(): - print("固件升级成功!") - - elif checksum == sum_now: - print("固件包checksum相同,退出") - - -#--------------------------------------------------------------------- -# HYN_Initial -#--------------------------------------------------------------------- -def HYN_Initial(): - - #GPIO_ResetTP() - - ctp_hynitron_update() - - GPIO_ResetTP() - - - - - - diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/initTP.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/initTP.py deleted file mode 100644 index 534ca065..00000000 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/initTP.py +++ /dev/null @@ -1,197 +0,0 @@ -import log -from machine import I2C -import utime -from machine import Pin -import uos - -# from ext import capacitive_hynitron_cst816d_update_new -import capacitive_hynitron_cst816d_update - -TP_HYN_I2C_UPDATE_WRITE_ADDR = (0x6A<<1) -TP_HYN_I2C_UPDATE_READ_ADDR = ((0x6A<<1)|1) -PER_LEN = 512 -x = 0 -y = 0 -#--------------------------------------------------------------------- -# cst816d_read_checksum -#--------------------------------------------------------------------- -def cst816d_read_checksum(): - - if -1 == cst816d_enter_bootmode(): - return -1 - - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - cmd = [0] - - if -1 == i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x03]), 2, bytearray(cmd), 1): - return -1 - utime.sleep_ms(500)#这里延时太短会读错checksum - - r_data = bytearray(2) - if -1 == i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x08]), 2, r_data, 2, 0): - return -1 - check_sum = (r_data[1] << 8) | r_data[0] - print("check_sum的值为:",check_sum) - return check_sum -#--------------------------------------------------------------------- -# GPIO_ResetTP -#--------------------------------------------------------------------- -def GPIO_ResetTP(): - - print("GPIO_ResetTP") - - gpio_power = Pin(Pin.GPIO18, Pin.OUT, Pin.PULL_PU, 0) - gpio_power.write(1) - - gpio_reset = Pin(Pin.GPIO32, Pin.OUT, Pin.PULL_PU, 0) - gpio_reset.write(0) - utime.sleep_ms(10) - gpio_reset.write(1) - utime.sleep_ms(10) - -#--------------------------------------------------------------------- -# cst816d_update -#--------------------------------------------------------------------- -def cst816d_update(startAddr, length, data): - print("cst816d_update") - if -1 == cst816d_enter_bootmode(): - return -1 - - sum_len = 0 - cmd = [0,0] - global x - while 1: - x += 1 - if sum_len >= length: - print("sum_len >= length,退出循环") - return - a = startAddr&0xFF - cmd[0]=a - b = startAddr>>8 - cmd[1]=b - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x14]), 2, bytearray(cmd), 2) - utime.sleep_ms(100) - - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x18]), 2, bytearray(data), PER_LEN) - - utime.sleep_ms(100) - - cmd[0] = 0xEE - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x04]), 2, bytearray(cmd), 1) - - utime.sleep_ms(100) - - retrycnt = 51 - for i in range (retrycnt): - r_data = bytearray(1) - ret = i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x05]), 2, r_data, 1, 0) - utime.sleep_ms(50) - - if r_data[0] == 0x55: - print("r_data[0] = 0x55,break") - break - - startAddr = startAddr + PER_LEN - del data[0:PER_LEN] - sum_len = sum_len + PER_LEN - -#--------------------------------------------------------------------- -# cst816d_enter_bootmode -#--------------------------------------------------------------------- -def cst816d_enter_bootmode(): - - GPIO_ResetTP() - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - - cmd = [0xAB] - #进入boot模式 - retrycnt = 10 - global y - for i in range (retrycnt): - y += 1 - if 0 == i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x01]), 2, bytearray(cmd), 1): - utime.sleep_ms(100) - else: - print("boot模式写命令失败") - - r_data = bytearray(1) - if -1 == i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x03]), 2, r_data, 1, 0): - utime.sleep_ms(100) - else: - if 0xc1 == r_data[0]: - utime.sleep_ms(100) - return 0 - else: - print("boot模式进入失败") - - return -1 -#--------------------------------------------------------------------- -# ctp_hynitron_update -#--------------------------------------------------------------------- -def ctp_hynitron_update(): - - # 初始化固件数组和数组长度 - p_app_bin = [] - app_bin_len = 0 - - #进入boot模式 - # if -1 == cst816d_enter_bootmode(): - # return - - # 获取固件数组 - # p_app_bin = capacitive_hynitron_cst816d_update_new.app_bin_816d - p_app_bin = capacitive_hynitron_cst816d_update.app_bin_816d - - # 获取固件数组的长度 - app_bin_len = len(p_app_bin) - - if app_bin_len > 10: - startAddr = p_app_bin[1] - length = p_app_bin[3] - checksum = p_app_bin[5] #a8 78 - - startAddr <<= 8; startAddr |= p_app_bin[0] - length <<= 8; length |= p_app_bin[2] - checksum <<= 8; checksum |= p_app_bin[4] - - print("startAddr:%x"%startAddr) - print("length:%x"%length) - print("checksum:%x"%checksum) - - - #检查checksum - sum_now = cst816d_read_checksum() - if sum_now == -1: - print("初始化失败") - elif sum_now != checksum: - print("固件包checksum不相同!") - - del p_app_bin[0:6] - cst816d_update(startAddr, length, p_app_bin) - - #升级后再次确认checksum - if checksum == cst816d_read_checksum(): - print("固件升级成功!") - - elif checksum == sum_now: - print("固件包checksum相同,退出") - - -#--------------------------------------------------------------------- -# HYN_Initial -#--------------------------------------------------------------------- -def HYN_Initial(): - - #GPIO_ResetTP() - - ctp_hynitron_update() - - GPIO_ResetTP() - - - - - - diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/initTP.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/initTP.py deleted file mode 100644 index 534ca065..00000000 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/initTP.py +++ /dev/null @@ -1,197 +0,0 @@ -import log -from machine import I2C -import utime -from machine import Pin -import uos - -# from ext import capacitive_hynitron_cst816d_update_new -import capacitive_hynitron_cst816d_update - -TP_HYN_I2C_UPDATE_WRITE_ADDR = (0x6A<<1) -TP_HYN_I2C_UPDATE_READ_ADDR = ((0x6A<<1)|1) -PER_LEN = 512 -x = 0 -y = 0 -#--------------------------------------------------------------------- -# cst816d_read_checksum -#--------------------------------------------------------------------- -def cst816d_read_checksum(): - - if -1 == cst816d_enter_bootmode(): - return -1 - - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - cmd = [0] - - if -1 == i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x03]), 2, bytearray(cmd), 1): - return -1 - utime.sleep_ms(500)#这里延时太短会读错checksum - - r_data = bytearray(2) - if -1 == i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x08]), 2, r_data, 2, 0): - return -1 - check_sum = (r_data[1] << 8) | r_data[0] - print("check_sum的值为:",check_sum) - return check_sum -#--------------------------------------------------------------------- -# GPIO_ResetTP -#--------------------------------------------------------------------- -def GPIO_ResetTP(): - - print("GPIO_ResetTP") - - gpio_power = Pin(Pin.GPIO18, Pin.OUT, Pin.PULL_PU, 0) - gpio_power.write(1) - - gpio_reset = Pin(Pin.GPIO32, Pin.OUT, Pin.PULL_PU, 0) - gpio_reset.write(0) - utime.sleep_ms(10) - gpio_reset.write(1) - utime.sleep_ms(10) - -#--------------------------------------------------------------------- -# cst816d_update -#--------------------------------------------------------------------- -def cst816d_update(startAddr, length, data): - print("cst816d_update") - if -1 == cst816d_enter_bootmode(): - return -1 - - sum_len = 0 - cmd = [0,0] - global x - while 1: - x += 1 - if sum_len >= length: - print("sum_len >= length,退出循环") - return - a = startAddr&0xFF - cmd[0]=a - b = startAddr>>8 - cmd[1]=b - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x14]), 2, bytearray(cmd), 2) - utime.sleep_ms(100) - - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x18]), 2, bytearray(data), PER_LEN) - - utime.sleep_ms(100) - - cmd[0] = 0xEE - ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x04]), 2, bytearray(cmd), 1) - - utime.sleep_ms(100) - - retrycnt = 51 - for i in range (retrycnt): - r_data = bytearray(1) - ret = i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x05]), 2, r_data, 1, 0) - utime.sleep_ms(50) - - if r_data[0] == 0x55: - print("r_data[0] = 0x55,break") - break - - startAddr = startAddr + PER_LEN - del data[0:PER_LEN] - sum_len = sum_len + PER_LEN - -#--------------------------------------------------------------------- -# cst816d_enter_bootmode -#--------------------------------------------------------------------- -def cst816d_enter_bootmode(): - - GPIO_ResetTP() - i2c_obj = I2C(I2C.I2C2, I2C.FAST_MODE) - - cmd = [0xAB] - #进入boot模式 - retrycnt = 10 - global y - for i in range (retrycnt): - y += 1 - if 0 == i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x01]), 2, bytearray(cmd), 1): - utime.sleep_ms(100) - else: - print("boot模式写命令失败") - - r_data = bytearray(1) - if -1 == i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x03]), 2, r_data, 1, 0): - utime.sleep_ms(100) - else: - if 0xc1 == r_data[0]: - utime.sleep_ms(100) - return 0 - else: - print("boot模式进入失败") - - return -1 -#--------------------------------------------------------------------- -# ctp_hynitron_update -#--------------------------------------------------------------------- -def ctp_hynitron_update(): - - # 初始化固件数组和数组长度 - p_app_bin = [] - app_bin_len = 0 - - #进入boot模式 - # if -1 == cst816d_enter_bootmode(): - # return - - # 获取固件数组 - # p_app_bin = capacitive_hynitron_cst816d_update_new.app_bin_816d - p_app_bin = capacitive_hynitron_cst816d_update.app_bin_816d - - # 获取固件数组的长度 - app_bin_len = len(p_app_bin) - - if app_bin_len > 10: - startAddr = p_app_bin[1] - length = p_app_bin[3] - checksum = p_app_bin[5] #a8 78 - - startAddr <<= 8; startAddr |= p_app_bin[0] - length <<= 8; length |= p_app_bin[2] - checksum <<= 8; checksum |= p_app_bin[4] - - print("startAddr:%x"%startAddr) - print("length:%x"%length) - print("checksum:%x"%checksum) - - - #检查checksum - sum_now = cst816d_read_checksum() - if sum_now == -1: - print("初始化失败") - elif sum_now != checksum: - print("固件包checksum不相同!") - - del p_app_bin[0:6] - cst816d_update(startAddr, length, p_app_bin) - - #升级后再次确认checksum - if checksum == cst816d_read_checksum(): - print("固件升级成功!") - - elif checksum == sum_now: - print("固件包checksum相同,退出") - - -#--------------------------------------------------------------------- -# HYN_Initial -#--------------------------------------------------------------------- -def HYN_Initial(): - - #GPIO_ResetTP() - - ctp_hynitron_update() - - GPIO_ResetTP() - - - - - -