Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE, UNIFLASH
Overview:
I am using the dcan_flash_programmer, and it executes without reporting errors; however, I do not see the expected blinky behavior on the F28388D controlCARD when programming completes. I have attached a ZIP containing both my CAN flash kernel code and the modified dcan_flash_programmer for review.
I have made a second stage CAN bootloader or kernel to flash an application image onto the F28388D over CAN. This was done by using the provided SCI kernel and swapping or changing the protocols to CAN. The application image that I am flashing is the led_ex1_blinky example provided by TI for the F28388D with no alterations.
The SCI-8 formatted txt files for both the kernel and application image were generated using CCS Theia version 20.5.1 using the hex utility. The scope is also only to flash to CPU1.
I have been using TI's dcan_flash_programmer provided in the C2000Ware (V 26.01.00) utilities with small modifications to support F28388D. These changes were strictly secluded string validation updates and a boolean addition to mimick the validation behavior of the other MCU's, nothing that should impact data parsing, formatting, or transmission logic.
The flash programmer builds successfully and appears to complete both kernel and application loading phases. However, after completion, D1 (LED 1) on the F28388D control board does not blink suggesting a failure occured somewhere in the process without tirggering explicit logic errors.
Hardware:
The F28388D Control board is set to CAN boot mode by hardware SW 2. The PC is connected to the F28388D via a USB - PCAN connector and breakout board that connects to an external CAN TXRX whose CAN RX and CAN TX lines are connected to GPIO 36 & 37 respectively. I have scoped out the CAN RX and TX lines confirming data does make it through the transciever. This has lead me to surmise software as the likely culprit for my headache.
Final console output:
C2000 CAN Firmware Upgrader
Copyright (c) 2022 Texas Instruments Incorporated. All rights reserved.Initializing CAN USB-C1 with Bit rate set to 1 MBit/s
calling f021_CANFD_DownloadImage
Downloading C:\Users\270018183\workspace_ccstheia\led_ex1_blinky\CPU1_RAM\led_ex1_blinky.txt to device...0
aa
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
40
0
8b
99
...
fe
61
82
fe
69
ff
6
0
0
9a
6
0
0
0
Kernel Loaded
...
97
6
0
1
9a
6
0
0
0
Application Load Completed
C:\ti\c2000\C2000Ware_26_01_00_00\utilities\flash_programmers\dcan_flash_programmer\Debug\dcan_flash_programmer.exe (process 40784) exited with code 0.
To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
Press any key to close this window . . .
Final output from debug:
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\ti\c2000\C2000Ware_26_01_00_00\utilities\flash_programmers\dcan_flash_programmer\Debug\dcan_flash_programmer.exe'. Symbols loaded.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcrypt.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\PCANBasic.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp_win.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbase.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\combase.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'.
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'.
The thread 0xfc0 has exited with code 0 (0x0).
'dcan_flash_programmer.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll'.
The thread 0x473c has exited with code 0 (0x0).
The thread 0x7908 has exited with code 0 (0x0).
The thread 0x41a8 has exited with code 0 (0x0).
The thread 0xad78 has exited with code 0 (0x0).
The program '[22936] dcan_flash_programmer.exe' has exited with code 0 (0x0).
Questions:
- Is there some other limitation to the dcan_flash_programmer that I have over looked that could explain this symptom?
- Is there something missing in my custom kernel that I need to include?
- Is there something wrong with my CAN protocols?
- What are some possible causes for this issue?
Attachments:
