diff options
author | Mike Jagdis <mjagdis@eris-associates.co.uk> | 2018-08-08 21:34:04 +0100 |
---|---|---|
committer | Uwe Hermann <uwe@hermann-uwe.de> | 2018-09-06 00:52:37 +0200 |
commit | 8e05502522f916972be70009bceb2e7db505a125 (patch) | |
tree | 3b648debcc7bd178fe5e5e115b19eb9e23b02c16 /swim/tests | |
parent | 44d683521050b5ba48f367fb9cfffc6688d1318f (diff) | |
download | sigrok-dumps-8e05502522f916972be70009bceb2e7db505a125.tar.gz sigrok-dumps-8e05502522f916972be70009bceb2e7db505a125.zip |
Samples for the decoder for STM8 series MCUs SWIM protocol.
Signed-off-by: Mike Jagdis <mjagdis@eris-associates.co.uk> (github: mjagdis)
Diffstat (limited to 'swim/tests')
-rw-r--r-- | swim/tests/README | 75 | ||||
-rw-r--r-- | swim/tests/sample1.sr | bin | 0 -> 4469 bytes | |||
-rw-r--r-- | swim/tests/sample2.sr | bin | 0 -> 4590 bytes | |||
-rw-r--r-- | swim/tests/sample3.sr | bin | 0 -> 4666 bytes | |||
-rw-r--r-- | swim/tests/sample4.sr | bin | 0 -> 4240 bytes |
5 files changed, 75 insertions, 0 deletions
diff --git a/swim/tests/README b/swim/tests/README new file mode 100644 index 0000000..298fdad --- /dev/null +++ b/swim/tests/README @@ -0,0 +1,75 @@ +------------------------------------------------------------------------------- +SWIM +------------------------------------------------------------------------------- + +These are captures of an ST-Link V2 programming an STM8 using the SWIM protocol. + +Details: +https://www.st.com/content/ccc/resource/technical/document/user_manual/ca/89/41/4e/72/31/49/f4/CD00173911.pdf/files/CD00173911.pdf/jcr:content/translations/en.CD00173911.pdf + + +Logic analyzer setup +-------------------- + +The logic analyser used was a DreamSourceLab DSLogic (at 10MHz). + + Probe Target + ------------------ + 0 RST + 1 SWIM + + +Data +---- + +Using stm8flash with an ST-Link V2 adapter to program an STM8S003F3. + +Command line: + + $ stm8flash -c stlinkv2 -p stm8s003f3 -s opt -r /tmp/data; stm8flash -c \ + stlinkv2 -p stm8s003f3 -s opt -r /tmp/data + + stm8flash is modified both for correctness and to generate the test sequences. + The updated version can be found at https://github.com/mjagdis/stm8flash. + + +tests/sample1.sr +---------------- + +Read of two blocks of memory from an STM8S103 starting at the base address +of the OPTs. Repeated twice with no SRST to disable SWIM in between. +Note that the second enter sequence is not seen as an enter sequence. Since +SWIM is already active on the target it does NOT recognise a second enter +sequence and instead sees each low sent by the host as a SWIM reset request +to which it responds, if you zoom in enough, with its own 16μs sync frame. + + +tests/sample2.sr +---------------- + +As sample1 but each of the runs ends with an SWIM reset followed by an SRST +(system reset) SWIM command. Note that the SWIM reset consists of the host +pulling the SWIM line low for 16μs to reset the target's SWIM module followed +by the target acknowledging with its own synchronization frame (i.e. it pulls +the line low for another 16μs). Note too that the RST bit is not set in +SWIM_CSR so the SRST does not disable SWIM and the second enter sequence is +treated as resyncing just as in sample1. + + +tests/sample3.sr +---------------- + +As sample2 but now we modify stm8flash to set RST (bit 2) in SWIM_CSR (0x7f80) +as part of its shutdown. This causes the SRST to disable SWIM as well as reset +the target and now the subsequent enter sequence behaves as expected. + + +tests/sample4.sr +---------------- + +As sample3 but the SRST at the end of each run is removed again. The second +enter sequence is no longer recognised as an enter sequence and the target +again responds to each low by with a sync frame indicating it is treating them +as SWIM reset requests. This demonstrates that the SRST SWIM command is indeed +responsible for disabling the SWIM module and that an external reset via the +RST pin is insufficient regardless of the setting of the RST bit in SWIM_CSR. diff --git a/swim/tests/sample1.sr b/swim/tests/sample1.sr Binary files differnew file mode 100644 index 0000000..8750641 --- /dev/null +++ b/swim/tests/sample1.sr diff --git a/swim/tests/sample2.sr b/swim/tests/sample2.sr Binary files differnew file mode 100644 index 0000000..8890c51 --- /dev/null +++ b/swim/tests/sample2.sr diff --git a/swim/tests/sample3.sr b/swim/tests/sample3.sr Binary files differnew file mode 100644 index 0000000..30d5aa3 --- /dev/null +++ b/swim/tests/sample3.sr diff --git a/swim/tests/sample4.sr b/swim/tests/sample4.sr Binary files differnew file mode 100644 index 0000000..9678132 --- /dev/null +++ b/swim/tests/sample4.sr |