The release V1.6 could download EEPROM file correctly when use the option 'program_eeprom_split' and splited eeprom larger than 512 Bytes for IAP serial MCU.
Repaired now!
1. Add 'stc8d' in option -P for STC8A8K64D4.
2. Add sub class Stc8dProtocol(Stc8Protocol)
3. Add override methods, choose_range, choose_trim, calibrate and build_options
4. To use: set stc8d for option -P. The frequency could be adjust from 1-45MHz. Pay attention to the unit of frequency is kHz.
* Reduce delays from 200 ms to 100 ms, since 200 ms tends to be too long
overall.
* Increase pulse interval to 30 ms to avoid the chance of stray pulses
after MCU starts sending info packet.
* Add 30 ms delay after autoreset cycle to avoid glitches on startup
We just sleep 200 ms, but apparently that's already too much with some
handshake baudrates. Cut it in half to fix
failures with "-l 9600" in some cases.
Addresses #17.
Baudrate switching fixes for both HW and SW UART devices:
* Program secondary SW UART timing parameter correctly. Supposedly this
controls the sampling position when receiving data.
* Swap around trim range/adjust parameter for HW UART devices (as
determind by older traces)
* Use correct constant for timing calculations
This should fix some STC15x10xW series MCUs. Compatibility to other
devices might be improved as well.
Addresses #17.
This protocol variant is designed for newer STC89 series chips with BSL
version 7.x.x. The new firmware uses framing
with 16-bit checksum.
This protocol variant is currently untested because I don't have any
hardware at hand.
Addresses #50, #40.
Newer PyYAML versions require Python 3.5.
Python 3.4 is EOL for some time and even 3.5 reached EOL recently. So
just switch to that as minimum version.
Run apt update to update the package cache, as this seems to be needed by
Travis now. Also reduce the package set - we don't build any deb or rpm
packages anymore. This should hopefully fix the CI build.
Catch unknown error types in the first stage (connect/initialize).
Sometimes we unfortunately see unexpected exceptions, for instance
pyserial might throw termios.error. See #39 for more details.