ch552tool icon indicating copy to clipboard operation
ch552tool copied to clipboard

CH554 programming error ...

Open RandoSY opened this issue 5 years ago • 4 comments

Howdy!

Just experiment with the ch552 this morning ...

lsusb returns

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 003: ID 7392:a812 Edimax Technology Co., Ltd Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 002: ID 04f2:1825 Chicony Electronics Co., Ltd Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 015: ID 04e8:3315 Samsung Electronics Co., Ltd ML-2540 Series Laser Printer Bus 001 Device 034: ID 4348:55e0 WinChipHead Bus 001 Device 026: ID 239a:8019
Bus 001 Device 004: ID 0bda:0181 Realtek Semiconductor Corp. Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

I can see WinChipHead ...

Got this error, when I attempted to flash ...

rasyoung@vic2016:~/code_test/8051/wch/ch554_sdcc/examples/blink$ sudo python ch55xtool.py --file blink.hex Found CH554. BTVER: V2.31.

Traceback (most recent call last): File "ch55xtool.py", line 337, in __main() File "ch55xtool.py", line 314, in __main ret = __write_flash_ch55x_v23(dev, chk_sum, payload) File "ch55xtool.py", line 143, in __write_flash_ch55x_v23 payload = payload + [0] * ((math.ceil(len(payload) / 56) * 56) - len(payload)) # Payload needs to be padded, 56 is a good number TypeError: can't multiply sequence by non-int of type 'float'

I notice in the hex file ... the first lines are "short"

:03000000020006F5 :03005F0002000399 :0300030002006296 :1000620012007C53930CAF92747F5FF5924393809E :100072009000641200A4B29780F675A15575A1AAEA :1000820074F855B94405F5B975A10022AE82AF8363

It reports the correct chip type and bootloader version. Wondered if you know what was the issue?

Thanks for posting this code!

Randy

RandoSY avatar Feb 09 '20 19:02 RandoSY

Are you sure this can be used to program an Intel HEX file? It mentions bin in the readme... (Actually, I'm also having a different problem with this tool, where it says it's programmed but the chip isn't happy afterwards. I've used this same code on chips with earlier bootloaders without a problem, so I'm inclined to think that it's this tool doing something, but I'm not sure what, yet... I found this while I was looking to see if it was expecting a .hex file)

ishiyakazuo avatar Feb 14 '20 02:02 ishiyakazuo

Just a quick update -- I was able to get it to work with a binary file in my case, but not hex. (It could've been my hex file, but I think the answer is that flashing a bin file is the "safe" solution for now.) I didn't have a CH554 on hand (nor CH552) with bootloader 2.3.1 -- I used CH551. It didn't work immediately with CH551, but I patched it to fix the issue I was running into. If you try a bin file and it still doesn't work, you might want to try my fork and see if that resolves it. I can't say for sure that my workaround doesn't break anything other than CH551 and CH552.

ishiyakazuo avatar Feb 16 '20 22:02 ishiyakazuo

This does not working with hex, I might gonna to add it (and check file name suffix)later

hmmm... I dont have older CH55x on my hand :( , so if @ishiyakazuo test it works, that will be nice.

MarsTechHAN avatar Mar 23 '20 03:03 MarsTechHAN

I have some CH55x with bootloader 2.3.1 still, if this is needed.

ishiyakazuo avatar Jul 23 '20 01:07 ishiyakazuo