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, XDS adapters are supported by default.

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: 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.

Q10: 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.

Q11: 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.

Q12: 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.

Q13: 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!

Q14: 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.

Q15: 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.

Q16: 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.

Q17: 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.

Q18: 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.

Q19: 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.

Q22: 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.