Hello,
I have been struggling to get the AN2295 FC-protocol bootloader to program or erase the KV10 over UART.
I have been using the "Uart_bootloader_demo" and "Blink_Led_For_Bootloader" IAR projects included in the TWR-KV10Z32_SC sample code bundle to generate the bootloader and application binaries, respectively. Both of the sample projects seem to include appropriate ICF linker scripts - "Uart_bootloader_demo" uses the general purpose ICF and "Blink_Led_For_Bootloader" uses a linker script with an offset. I have not made any modifications to the linker scripts. I am using IAR EWARM version 7.3
On the PC-side, I have been trying version 10.0.13.0 of the AN2295 Universal bootloader (win_hc08sprg.exe and hc08sprg.exe). Screenshots of later versions of this application can be seen throughout the forum, but I have not been able to find any downloadable files beyond version 10.0.13.0. After flashing the bootloader firmware onto the KV10, I am able to connect to it using the AN2295 bootloader program with "Short TRIM" checked (I am using an FTDI virtual COM port) and a data rate of 115200, which matches that specified in the bootloader firmware. The program prints out the following log:
Bootloader protocol version: 0x08 (Kinetis, read command supported)
CRC protocol NOT supported)
Bootloader version string: KV10
System device ID: 0x14A [Kinetis K60] rev. 0
Kinetis Package: 144-pin
Number of memory blocks: 1
Memory block #1 0x00001000-0x00008000
Erase block size: 1024 bytes
Write block size: 64 bytes
Original vector table: 0x00000000-0x00003FF
New vector table: 0x000010000-0x000013FF
S19 Image Control.
Parsed S-record lines: 277 Bytes total: 4377
Source address range: 0x0000-0x2473
Memory block 0 erasing: E 0x00001000 0%
Memory is NOT erased.
Memory programming block 0: W 0x00001040 1%
Can't program block 0 at address 0x00001040
The "Bootloader", "System device ID", and "Kinetis Package" lines are incorrect since the bootloader sample code specifies that the protocol version is 0x88 (not 0x08) and I am using the Kinetis KV10 in 32-pin package (not a K60 in a 144-pin package), but I am not sure that matters since the memory-related information is correct.
I am not using the TWR-KV10Z32 hardware, but the clock and UART registers have been configured properly in the sample code, as confirmed by the successful communication between the PC-side application and the bootloader firmware.
Does anybody have a more recent version of the PC-side bootloader application or could provide some assistance for getting the AN2295 bootloader working with the KV10?
Solved! Go to Solution.
Hello awahab:
I reproduced the same problem and I think it is caused by the initial CPU identification function, which uses the same UART port to print MCU description. Try commenting out that line of code and rebuild the UART_bootloader project:
/* Perform processor initialization */
sysinit();
//cpu_identify();
With this the bootloader worked from my side using TWR-KV10Z32.
Regards!,
Jorge Gonzalez
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello awahab:
I reproduced the same problem and I think it is caused by the initial CPU identification function, which uses the same UART port to print MCU description. Try commenting out that line of code and rebuild the UART_bootloader project:
/* Perform processor initialization */
sysinit();
//cpu_identify();
With this the bootloader worked from my side using TWR-KV10Z32.
Regards!,
Jorge Gonzalez
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
That did it! Thank you for responding so quickly, Jorge.
Best,
Adam