Part Number: TMS320F28P650DK
Hi TI E2E support,
Over the last few weeks, I have been working trying to DFU working using the DCAN kernel on my P65x. I have successfully flashed both the kernel and my custom application over CAN using PCAN and the following documents.
- Application Note CAN Flash Programming of C2000 Microcontrollers
- C2000™ Software Controlled Firmware Update Process
I built and tested the example flash kernel dcan_flash_kernel_c28x_dual_ex5 and have modified my application to output the specific sci-8 format .txt file in the post-process build steps. Whilst running the flash kernel example project, I am able to update to my application using a BTR of 0x7FC0. No issues while running the example program in debug mode.
At this point, I am confident that my kernel and application are built successfully. I am now trying to move over to remote firmware updating using a process similar to (2) where in my application i toggle the GPIO to charge the caps on the bootpins and trigger a reset to bring the device into the CAN bootloader for an update. Unfortunately, at this point even when I sent the kernel / application nothing happens. I have validated each of the following
- BMSP OTP Programmed to -> 0x5AFF4854 (GPIO 84 index 0 GPIO72 index 1) for the boot table
- BOOTDEF OTP Programmed to -> 0x00066203 (Boot order is Flash ALT 0, CAN ALT 3 (matches my CAN pins), SPIA ALT 0 (future development)
- My application does trigger the appropriate pins, reset and bring the device into my bootloader based on an incoming message
I am convinced this is a mistiming issue. I have a few follow-up questions before proceeding with debugging that I was not able to find answers for.
- Does the ROM bootloader require any specific timing requirements? I see on page 1074 of the P65 TRM, the ROM bootloader loads the kernel in at 100kbps, but correct me if I am wrong, the kernel will load into RAM at the hardcoded rate regardless of what I change my bitTimingReg value in (see below), then once the kernel is loaded it will resync to the bit timing for my application loading process to the value of this BTR specified in my kernel build. Please see the picture below.
- I have attached the first few bytes of my build flash kernel. The BTR has been modified to match what I put in DCAN BOOT in the first picture for the dcan example project. If the ROM bootloader requires the timing to match (page 1074 of the TRM) does the first bytes in my DCAN kernel need to match this BTR of the ROM?


Thanks for you help. Let me know if you need any more information.