STM8L001J3: A new SOP8 chip, and the limits of STM8FLASH

A project log for eForth for cheap STM8S gadgets

Turn cheap stuff from AliExpress into interactive development kits!

ThomasThomas 01/14/2018 at 11:170 Comments

The new STM8L001J3 sample, and no luck with STM8FLASH

Yesterday I received a sample of the STM8L001J3, a package variant of the STM8L101F3 with STM8L core, 8KiB Flash, and 1.5KiB RAM. I quickly extended STM8 eForth to cover also that STM8 sub-family (the configuration is still largely based on STM8L051F3).

Unfortunately, when I tried to flash it with vdudouyt/stm8flash I had no success. Flashing that device turned out to be impossible. Accessing the option bytes worked. Then tried to use the latest version of stm8flash (which didn't compile - I used the binary in the repository) the result was the same (in fact, the device ID had already been added to the tool, and I didn't even have to recur to using the STM8L101x3 configuration).

I started to dig deeper: stm8flash doesn't cluster technical information about STM8 variants into family and density. It simply uses the marketing name, and leaves QA to the user. That's not the way I would do it. 

Gathering Information about the Silicon

ST provides a tool STM8CubeMX. It's essential features serve the use cases of interactively exploring configuration constraints of various STM8 devices based on packaging (including shared pins for a group of GPIOs, e.g. STM8S001J3, STM8L001J3, and STM8L050J3). Data about the variants is stored in xml files in the folder db/mcu. Each file contains an element <Die> which gives insight into the produced silicon for each marketed variant.

The following script was used to get initial insight:

gawk '/<Die>/ { split($1,a,/[<>]/); die=a[3]; split(FILENAME,b,"."); device=b[1]; variants[die]=variants[die] "," device } END {for (d in variants) {print d, variants[d]}}' *xml|sort|gawk 'BEGIN {print "Die|Devices"; print "-|-"} {p=$1 "|"; split($2,variants,","); for (v in variants) {p= p variants[v] ", "}; print p}'

This results in the output below, which aligns nicely with what I already know about STM8 variants into family and density. I'll now check whether it's feasible to improve STM8FLASH. I also ordered some STM8L101F3 chips, just in case success with programming the STM8L001J3 depends on using the NRST pin.

STM8L151C2Tx, STM8L151C3Tx, STM8L151F2Px, STM8L151F2Ux, STM8L151F3Px, STM8L151F3Ux, STM8L151G2Ux, STM8L151G3Ux, STM8L151K2Ux, STM8L151K3Ux, , STM8L050J3Mx, STM8L051F3Px,

STM8L101F2Px, STM8L101F2UxA, STM8L101F2Ux, STM8L101F3Px, STM8L101F3UxA, STM8L101F3Ux, STM8L101G2UxA, STM8L101G2Ux, STM8L101G3UxA, STM8L101G3Ux, STM8L101K3Tx, , STM8L101K3Ux, STM8L001J3Mx, STM8L101F1UxA,

STM8L152C6Tx, STM8L151C4Ux, STM8L152C6Ux, STM8L151C6Tx, STM8L152K4Tx, STM8L151C6Ux, STM8L151G4Ux, STM8L151G4Yx, STM8L151G6Ux, STM8L151G6Yx, STM8L152K4Ux, STM8L151K4Tx, STM8L152K6Tx, STM8L151K4Ux, STM8L152K6Ux, STM8L151K6Tx, STM8L151K6Ux, , STM8L152C4Tx, STM8L052C6Tx, STM8L152C4Ux, STM8L151C4Tx,

STM8S208C8Tx, STM8S207C8Tx, STM8S208CBTx, STM8S207CBTx, STM8S208MBTx, STM8S207K6Tx, STM8S207K8Tx, STM8S207M8Tx, STM8S207MBTx, STM8S207R6Tx, STM8S208R6Tx, STM8S207R8Tx, STM8S208R8Tx, STM8S207RBTx, STM8S208RBTx, STM8S207S6Tx, STM8S208S6Tx, STM8S207S8Tx, , STM8S208S8Tx, STM8S207SBTx, STM8S007C8Tx, STM8S208SBTx, STM8S208C6Tx, STM8S207C6Tx,

STM8S105C4Tx, STM8S105C6Tx, STM8S105K4Bx, STM8S105K4Tx, STM8S105K4Ux, STM8S105K6Bx, STM8S105K6Tx, STM8S105K6Ux, STM8S105S4Tx, STM8S105S6Tx, , STM8S005C6Tx, STM8S005K6Tx,

STM8S903F3Ux, STM8S003F3Ux, STM8S903K3Bx, STM8S003K3Tx, STM8S903K3Tx, STM8S103F2Mx, STM8S103F2Px, STM8S103F2Ux, STM8S103F3Mx, STM8S103F3Px, STM8S903K3Ux, STM8S103F3Ux, STM8S103K3Bx, STM8S103K3Tx, STM8S103K3Ux, , STM8S903F3Mx, STM8S001J3Mx, STM8S903F3Px, STM8S003F3Px,

STM8L151C8Ux, STM8L151M8Tx, STM8L151R6Tx, STM8L151R8Tx, STM8L152C8Tx, STM8L152C8Ux, STM8L152K8Yx, STM8L152M8Tx, STM8L152R6Tx, STM8L152R8Tx, STM8L162M8Tx, , STM8L162R8Tx, STM8L052R8Tx, STM8L151C8Tx,

STM8AF62A8Tx, STM8AF5286Ux, STM8AF62A9Tx, STM8AF5288Tx, STM8AF62AATx, STM8AF5289Tx, STM8AF528ATx, STM8AF52A6Ux, STM8AF52A8Tx, STM8AF52A9Tx, STM8AF52AATx, STM8AF6286Tx, STM8AF6288Tx, STM8AF6289Tx, , STM8AF628ATx, STM8AF5268Tx, STM8AF62A6Ux, STM8AF5269Tx,

STM8AF6246Ux, STM8AF6248Tx, STM8AF6266ITx, STM8AF6266Tx, STM8AF6266Ux, STM8AF6268Tx, STM8AF6269Tx, , STM8AF6246ITx, STM8AF6246Tx,

STM8AL3146Tx, STM8AL3148Tx, STM8AL3166Tx, STM8AL3166Ux, STM8AL3168Tx, STM8AL3L46Tx, STM8AL3L48Tx, STM8AL3L66Tx, STM8AL3L68Tx, , STM8AL3136Tx, STM8AL3138Tx,

STM8AF6223PxAx, STM8AF6223Px, STM8AF6226Tx, STM8AF6226Ux, , STM8AF6213Px, STM8AF6223IPx,