2019-10-08 12:59 AM
The host tries to write the STM8S001J3 flash memory and then read it through the SWIM interface. Writing a block of 64 bytes. happens correctly. However, reading steadily only works on 1 byte. When trying to read more bytes with one command, the result depends on the contents of the memory being read. For example, if the first byte contains 0x01, then transferring the ACK from the host to the target stops the further data flow. If the ACK is not transmitted from the host, then the next byte is transmitted. And so on. In which cases, to transfer the ASK, and in which it is not necessary to do this, is not clear. Timing diagrams of the SWIM line were formed as correct as possible.
in photo 1 - a stop after reading the first byte 0x01 when trying to read 64 bytes. ACK is formed by the host.
in photo 2 - a stop after reading the first byte 0x01 and the second byte 0xFE when trying to read 64 bytes. ACK is NOT configured by the host.