Use STC15 high-speed programming

This commit is contained in:
Grigori Goronzy 2014-01-11 17:06:36 +01:00
parent 320faa00f2
commit 386f833da1

View File

@ -1426,7 +1426,7 @@ class Stc15Protocol(Stc12Protocol):
user_speed = self.trim_frequency user_speed = self.trim_frequency
if user_speed <= 0: user_speed = self.mcu_clock_hz if user_speed <= 0: user_speed = self.mcu_clock_hz
program_speed = 11059200 program_speed = 22118400
user_count = int(self.freq_counter * (user_speed / self.mcu_clock_hz)) user_count = int(self.freq_counter * (user_speed / self.mcu_clock_hz))
program_count = int(self.freq_counter * (program_speed / self.mcu_clock_hz)) program_count = int(self.freq_counter * (program_speed / self.mcu_clock_hz))
@ -1447,9 +1447,8 @@ class Stc15Protocol(Stc12Protocol):
# add trim challenges for target frequency # add trim challenges for target frequency
packet += self.get_trim_sequence(user_speed) packet += self.get_trim_sequence(user_speed)
# add trim challenge for program frequency # add trim challenge for program frequency
# TODO: high program frequency packet += bytes([0x98, 0x00, 0x02, 0x00])
packet += bytes([0x58, 0x00, 0x02, 0x00]) packet += bytes([0x98, 0x80, 0x02, 0x00])
packet += bytes([0x58, 0x80, 0x02, 0x00])
self.write_packet(packet) self.write_packet(packet)
self.pulse() self.pulse()
response = self.read_packet() response = self.read_packet()
@ -1514,8 +1513,8 @@ class Stc15Protocol(Stc12Protocol):
print("Switching to %d baud..." % self.baud_transfer) print("Switching to %d baud..." % self.baud_transfer)
packet = bytes([0x8e]) packet = bytes([0x8e])
packet += struct.pack(">H", program_trim) packet += struct.pack(">H", program_trim)
packet += struct.pack(">B", 115200 // self.baud_transfer) packet += struct.pack(">B", 230400 // self.baud_transfer)
packet += bytes([0xa1, 0x64, 0xdc, 0x00, 0x83, 0x20, 0xff, 0x00]) packet += bytes([0xa1, 0x64, 0xb8, 0x00, 0x81, 0x20, 0xff, 0x00])
self.write_packet(packet) self.write_packet(packet)
time.sleep(0.2) time.sleep(0.2)
self.ser.baudrate = self.baud_transfer self.ser.baudrate = self.baud_transfer