Content originally posted in LPCWare by Ex-Zero on Thu Sep 15 11:24:30 MST 2011
#1 Your format is correct, if you send this messages with 100kbit/s, little indian :) (=Intel) format your should receive an answer (if the addressed bootloader is working).
#2 You need Unlock {0x2B,0x5000,0x00,0x5A,0x5A,0x00,0x00} before you use Flash Write, Erase or Go commands (See UM).
#3 [67d] [0x23 0x15 0x50 0x00 0x00 0x08 0x00 0x10] is setting your RAM write address to 0x10000800
#4 [67d] [0x40 0x50 0x1f 0x01 d3 d2 d1 d0] is a reading command. I prefer to use segmented download (See CiA Draft Standard 301 :confused:):[INDENT]{0x21,0x1F50,0x01,0x00,0x00,0x00,0x00} is initiating SDO Download and
{0x00, 7 data bytes} is writing (first) 7 data bytes
{0x10, 7 data bytes} is writing (next) 7 data bytes
{0x00, 7 data bytes} is writing (next) 7 data bytes ...
[/INDENT]So with toggling bit 4 of command byte you can transmit 7 bytes per message :eek:
Setting bit 0 of command byte indicates the last message (last command = 0x00 or 0x11).
#5 To check if CAN and CAN bootloader is working, a simple part ID request is useful:[INDENT]{0x40,0x1018,0x02,0x00,0x00,0x00,0x00}
This request should be answered with the correct PART ID (here: LPC11C14)
825938 -> 67D-08:40 18 10 02 00 00 00 00
825940 <- 5FD-08:43 18 10 02 2B 10 40 14[/INDENT]