in https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl... you pointed me to the document http://lpccs-docs.dialog-semiconductor.com/UM-B-119_DA14585-DA14531_SW_P... in my endeavour to program the ISM14585 through UART (avoiding SST).
I followed it as you suggeted and successfully loaded flash_programmer.bin. However.. I have some questions regarding the document.
(1) Section 18.104.22.168
I noticed that the ACK from 14585 is received after LEN_MSB byte (Basic), and if I continue to send 0x00 0x00 as LEN_LSB byte (Extended)/LEN_MSB byte (Extended), this is taken by the 14585 as the first two bytes of the transfered binary.
It is stated that "The DA14585/586 answers with 0x06 (ACK) if the 3 bytes have been received [...]", but it was not clear that in that case the last "Extended" bytes should not be send. Is that correct? I would suggest to clarify it in the document.
(2) Section 22.214.171.124
It is stated that to change the default UART port/speed: " This can be changed by appending to the binary 1 byte."
This is unclear. To which binary? When booting the flash programmer through UART, I can extend the flash programmer binary by a byte with the coneten of the "Selector" value in the table?
(3) Section 126.96.36.199
Although the message section contains only 1 byte (the Op Code 0x10), the length is 0x07. It is unclear why this is the case. Are 6 bytes missing after the Op Code? Should the lenght be 0x01 instead? Do I have to transfer something in addition after the Op Code?
(4) Section 188.8.131.52.3
What is "data to write" in the case of ACTION_SPI_READ? What data does the DA14585 expect, when I only want to send a request to read? It should only require memory address and length.
(5) Section 6.4.2
While for other sections it is stated how the CRC is calculated (e.g. 1 byte successive XOR-ing with initial values 0x00 or 0xFF) it is not stated how the 32bit CRC is calculated for the UART transmissions with the flash_programmer.bin
(6) Section 184.108.40.206
When booting into my flash_programmer.bin with length 0x2354, it is (so far) working as expected, I receive "Hello". I observed with a sniffer that Smart Snippets appends 5 bytes to the binary, which are 0x0000000004. Also this case seems to work. What are the additional 5 bytes for?
- Apologies, I edited my text after I came up with more questions. My original question is now (1)
- added questions (2)-(4)
- added question (5)
- added question (6)