- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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