C2Prog Frequently Asked Questions

Q1: What is C2Prog?

C2Prog is a tool for flashing TI MCUs, with a focus on devices from the TI C2000 family. It supports multiple interfaces for programming MCU flash, such as JTAG, serial links (RS-232, 422, 485), Controller Area Network (CAN) and TCP/IP.

Q2: Is C2Prog free?

The basic version of C2Prog is licensed as freeware. Certain advanced features, however, require the purchase of a “professional” license.

Q3: What are the limitations of the free (basic) C2Prog version?

The most important limitation is with regards to how the programming is initiated. The basic version only allows reflashing from the C2Prog graphical user interface (GUI) while the professional version offers additionally a command-line interface and native C API (DLL).

Q4: Does C2Prog support all TI Bootmodes?

No, C2Prog only supports TI’s SCI/UART boot mode. All other interfaces are based on proprietary bootloaders developed by CodeSkin.

Q5: Does C2Prog support reflashing via JTAG?

Yes, XDS100 adapters are supported by default. Other adapters, such as the XDS2xx devices, can also be used with C2Prog, but require custom configuration files.

Q6: Is there a manual?

Yes, the C2Prog manual is accessible from the C2Prog “Help” menu. Please do read the manual!

Q7: Why can I not select the CAN interface?

Programming via flash requires a custom C2Prog configuration file and bootloader.

Q8: What is an ehx file?

An “extended hex” file contains not only the data to be programmed (firmware image) but also all the MCU specific settings required by C2Prog. An ehx file can also be password protected. Therefore it is the ideal format for distributing files for programming with C2Prog.

Q9: C2Prog does not accept my out file!

The “*.out”-file generated by the linker is not directly supported by C2Prog. It must be converted into an Intel Hex file for programming with C2Prog.

Q10: How do I generate a hex file that is suitable for C2Prog?

The TI code generation tools include a utility for creating hex files that can be called as a CCS post-build step. Please note that this utility supports multiple output formats and it is therefore important that the correct command line options are used. See the C2Prog manual for details and examples. Starting with CCSv6, the hex file generation can be directly enabled and configured in the build settings. Make sure that you choose the Intel Hex output format, as well as 16-bit ROM-width and memory-width for C28 processors, or 8-bit ROM-width and memory-width for ARM cores.

Q11: Are all C2000 MCUs supported?

Yes, with some very few exceptions (mostly due to device memory limitations). See readme.txt file distributed with C2prog for details.

Q12: Which USB-Serial adapter do you recommend?

FTDI-based solutions, such the Parallax USB to Serial (RS-232) Adapter have proven to be most reliable. Since FTDI chips are also used on TI’s controlCards and LaunchPads, C2Prog works well with these evaluations boards.

Q13: Does C2Prog work over half-duplex RS-485?

Per default, C2Prog requires as full duplex link capable of communicating at 115200 baud. However, custom configuration for half-duplex links and lower communication speeds can be provided upon request.

Q14: How do reset my MCU into SCI bootmode?

This depends on your MCU. You will have to read the appropriate manual. Also consult the schematic of your TI evaluation board to confirm that they are designed to support SCI bootmode.

Q15: My clock rate is not supported!

Contact us for a custom kernel. And do not use the wrong frequency setting as this may damage your MCU!

Q16: C2Prog gets stuck after kernel download!

After the kernel has been downloaded, the RS-232 communication rate is increased to 115200 baud for the transmission of the flash-code. Make sure that your hardware (RS-232 driver) supports this elevated transmission rate.

Q17: Communication is not established with my 28x!

C2Prog uses the autobaud feature of the 28x to establish the initial communication; the default baud rate is 38400. For some hardware with a low clock frequency this rate is too high, and needs to be reduced by editing the target configuration file. Please contact us for support.

Q18: I get an “echo error” during bootload!

Try this sequence:

  1. Configure GPIO for SCI bootmode (see TI technical reference)
  2. Power-cycle / reset MCU
  3. Start programming (e.g. click on “Program” button in C2Prog GUI)

If you still get an “echo error”, then most likely your PC is communicating too fast resulting in bytes getting lost. The data transmission during bootload can be tweaked by editing the target configuration file. Please contact us for support.

Q19: I get a “Sector violation” error!

This means that your hex-file contains data that does not fall into a valid flash sector. Please double-check your linker command file and make sure that only flash data is linked to page 0.

Q20: I get an “Unable to process raw hex data” error!

This likely means that you have not properly generated the hex file – see Q10.

Q21: I get a “CRC generation created a violation” error!

You have checked the “Append Checksum” option but C2Prog was unable to find room in Flash for the generated 32-bit CRC value. See also Q19 and review manual for details on generation and placement of the CRC record.

Q22: I am unable to program the OTP!

Make sure that the “Allow OTP Programming” option is checked. Note that OTP flashing is not supported on all MCUs. Also note that the “Append Checksum” option is not allowed when programming OTP.

Q23: I am unable to program via a Bluetooth modem!

C2Prog typically modifies the baudrate between the different loading stages (see Q16). This approach is not compatible with a Bluetooth modem. To support such devices, you will need to request a custom configuration file for communicating at a fixed rate.