This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Do Tiva chips come pre-loaded with a bootloader?

Other Parts Discussed in Thread: TM4C1232D5PM, LMFLASHPROGRAMMER

I was told at an event last year that the Tiva chips would come pre-loaded with a USB bootloader. Meaning that chips could be soldered down to a PCB with USB connector and then plugged in to a PC and loaded with firmware. No need for a programmer, no need for loading prior to mount, no need for jtag header on the PCB. 

I can't find any confirmation of that in the docs and initial tests seem to indicate this isn't the case. Why, in the name of all that is holy, doesn't anyone do this? 

Have I missed it in the docs? Has anyone tried this?

  • The Boot Configuration Register (BOOTCFG) refers to ROM Boot loader and how it starts.

    I'm using a TM4C1232D5PM and on the very first power up the boot loader will execute automatically. It will also start if you erase the entire FLASH memory.

    In your software you can configure the BOOTCFG register for the micro to enter the boot loader based on some other trigger, like PortB pin6 low on power up.

    Paul.

  • Hello James,

    Have you gone through the document on TIVA C-Series Boot Loaders?

    http://www.ti.com/lit/ug/spmu301/spmu301.pdf

    Regards

    Amit

  • Yes, of course. It doesn't (as far as I could find) say anything about the bootloader being pre-loaded in blank chips.

  • Thank you so much Paul for that answer! That was exactly what I needed to hear. 

    If you don't mind, can you tell me are you using the USB connection to the bootloader?

  • Yes, I am using the USB for the boot loader. My device is bus powered, and the D+ and D- pins from the micro go directly to the USB connector. (with some protection devices)

    I'm using a 16MHz crystal. I think the boot loader works with a limited number of crystal frequencies.

    Paul.

  • That is excellent!

    When you first connect the device to the PC, does it automatically install a driver, or did you have to download a TI specific driver on the PC first? 


    And then I assume you use the firmware loader program they supplied?

  • Windows 7 automatically finds a driver for it.

    I'm using http://www.ti.com/tool/lmflashprogrammer

    Select USB DFU as the Interface and click Refresh until your device shows up. Then go to the Program tab, select your .bin file, and click Program.

    P.

  • Might explain issue of program counter jumping to last memory address 0xfffffffE after loading (SW) BL into flash memory 0x00000000 of XM4C1294NCPDTI found on EK-TM4C1294lx launch pad. That BL skips over the symbol (main) also negates any previous selected HW breakpoints in debug.

  • Absolutely stunning! What a wonderful way to get started. $7 chip, few dollars for a PCB with a USB connector on the edge and a crystal, and you can program it with no other tools. More people should be aware of this.

    Now if you could only debug this way... 

  • James Newton said:
    Now if you could only debug this way... 

    Alas - there are some who value the code-test-debug as much as - if not more than - the program event.  (i.e. if your program has any complexity - or if you are resistant to MCU manual review - your programmed code may not rise to hallowed, "Gov't Standards," and crashes!)  And then what?

    Yes - quick/dirty/eased programming is desirable - but your growth & expanding skill is sure to demand a full suite of debug - sooner rather than later...

  • One assumes that a "real" programmer will get a launchpad and use it to debug the code via CCS. But the point here is that simple programs, and existing (debugged) programs could be loaded at a remote site without a 3rd party having to touch the hardware. E.g. a minimal PCB can be produced with just the chip on it (like the tail end of the EZ-430) and then drop shipped to a remote user who plugs it in, downloads the firmware, and then connects it to whatever to solve a problem.

    This is what many people do with Arduinos today but now you can have a MUCH more powerful processor for less money. They have no clue how to program the Arduino, they just flash firmware, build the (3d printer / quadcopter / etc...) kit, plug in the controller, and AWAY! 

    Maybe they even install the IDE, tweak an include file to update options for their application, compile and bootload.... and AWAY!

    I'm also guessing that since the launchpad is made of two chips on one PCB, it would be "possible" to program one chip on one PCB to debug another chip on another PCB. Ala the McHck:
    https://mchck.org/blog/2013-08-13-self_hosted_toolchain_the_mc_hck_as_swd_adapter/

    In fact, it /might/ be "possible" to write a debug monitor for the Tiva C. nah... that couldn't happen. ,o)

  • Hi Folks!

    This is really awesome!

    Let me understand. You will need:

    - TIVA M4 Micro

    - 16 Mhz Crystal + Caps

    - USB Connector

    So you just have to use a 3V3 Regulator for the 5V of the USB and connect the D+/D- pins to the PB0/1 on the Tiva?

    Is it just that simple to get started?

    I have to wait 4 whole weeks to get my launchpad , so I am trying to figure out an altenative way.

    Thanks in Advance!

    BR

    Luke

  • I'd be VERY interested to hear how that works for you Luke! Please do try and let us know one way or the other?

  • One might hint a note of caution, XM4C1294NCPDT is an experimental chip found on EK-TM4C launch pad.

    Production silicon revision data sheet has very little information about this supposed preloaded ROM Boot Loader.

    Much effort was spent skirting around the edges precluding the absence of advanced features.

    Not forgoing the TM4C123 may have more features packaged.

    This poster is unaware of any such blessings being incorporated into the experimental XMC1294 chip die.  

  • Neatly packed away from the (BootCFG) register programming instructions.

    ROM

    The internal ROM of the Tiva™ C Series device is located at address 0x0100.0000 of the device

    memory map. Detailed information on the ROM contents can be found in the Tiva™ C Series

    TM4C129x ROM User’s Guide (literature number SPMU363).

    The ROM contains the following components:

    ■ Tivaware Boot Loader and vector table