PSOC 6 DFU SDK - Enter DFU Comand discrepancy

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
TrWi_4480416
Level 1
Level 1
First question asked 5 replies posted First reply posted

The latest version of AN213924 available from cypress.com states the following for PSOC 6 DFU SDK command 'Enter DFU'

B.2.1 Enter DFU

Begins a DFU operation. All other commands except Exit DFU are ignored until this command is received. Responds

with device information and DFU SDK version.

  • Input
    • Command Byte: 0x38
    • Data Bytes:

▪ 4 bytes (optional): product ID. If these bytes are included, and they are not 00 00 00 00, they are

compared to device product ID data.

  • Output
    • Status/Error Codes:

▪ Success

▪ Error Command

▪ Error Data, used for product ID mismatch

▪ Error Length

▪ Error Checksum

    • Data Bytes:

▪ 4 bytes: Device JTAG ID

▪ 1 byte: Device revision

▪ 3 bytes: DFU SDK version

This should result in a command packet structure with a data length of 4 but if sent this way it is not accepted by the DFU, which returns code ERROR_LENGTH .

In reviewing the log from Cysmart when performing a firmware update, an example of the actual packet sent is as follows:

[01:38:06:00:04:03:02:01:00:00:B7:FF:17]

This shows a data length of 6 bytes, not 4 as written in the documentation.  An extra 2 bytes of 00 00 is being included in the data packet.  Does anyone have access to a more recent version of the DFU documentation or is this just a case of documentation not being updated?

0 Likes
1 Solution
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

Enter DFU (0x38) command works well at my end with four byte data payload. Have you updated the data length parameter in the Enter DFU command packet?

Please use 01 38 04 00 04 03 02 01 B9 FF 17 to send 4 bytes data Enter DFU (0x38) command.

pastedImage_4.png

I have appended commands and responses for an I2C based bootloader from Bridge Control Panel.

Devices list:  8bit  7bit

     address:  10    08

w 08+ 01+ 38+ 06+ 00+ 04+ 03+ 02+ 01+ 00+ 00+ B7+ FF+ 17+ p

r 08+ 01+ 00+ 08+ 00+ 00+ 21+ 07+ E2+ 21+ 00+ 03+ 01+ C8+ FE+ 17+ p

w 08+ 01+ 38+ 04+ 00+ 04+ 03+ 02+ 01+ B9+ FF+ 17+ p

r 08+ 01+ 00+ 08+ 00+ 00+ 21+ 07+ E2+ 21+ 00+ 03+ 01+ C8+ FE+ 17+ p

View solution in original post

0 Likes
1 Reply
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

Enter DFU (0x38) command works well at my end with four byte data payload. Have you updated the data length parameter in the Enter DFU command packet?

Please use 01 38 04 00 04 03 02 01 B9 FF 17 to send 4 bytes data Enter DFU (0x38) command.

pastedImage_4.png

I have appended commands and responses for an I2C based bootloader from Bridge Control Panel.

Devices list:  8bit  7bit

     address:  10    08

w 08+ 01+ 38+ 06+ 00+ 04+ 03+ 02+ 01+ 00+ 00+ B7+ FF+ 17+ p

r 08+ 01+ 00+ 08+ 00+ 00+ 21+ 07+ E2+ 21+ 00+ 03+ 01+ C8+ FE+ 17+ p

w 08+ 01+ 38+ 04+ 00+ 04+ 03+ 02+ 01+ B9+ FF+ 17+ p

r 08+ 01+ 00+ 08+ 00+ 00+ 21+ 07+ E2+ 21+ 00+ 03+ 01+ C8+ FE+ 17+ p

0 Likes