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.

TM4C129 CAN bus Bootloader

I am having trouble fully understanding how to setup a CAN bus bootloader using the bootloader API.  I have not found a place to set the node-id or what the default is to be able to communicate.  I also am using a 25 MHz crystal and the bootloader doesn't seem to support above 16 MHz in bl_can_timing.h.  Any help with getting this off the ground would be greatly appreciated. 

  • Hello Robert,

    Since the boot loader is a flash based boot loader, you can use the USER Config Registers to program a default Node-ID per device and use it in the boot loader to assign a node-id.

    For 25MHz the define section for the CAN_BIT_TIMING needs to be created as the code was initially developed with 16Mhz crystal.

    However, in the data sheet an example Baud Rate of 1Mbps with 25Mhz crystal is given in CAN Section -> Example for Bit Timing at High Baud Rate

    Regards
    Amit
  • The problem is that my application and tool are running 125 kbps on CAN.
  • Hello Robert,

    One solution would be to port the CAN example code and use the CANBitRateSet to get the value of the timing registers and then set the same value in the define look up table.

    Regards
    Amit
  • Amit,

    I have decided to use those methods and others to achieve my results while removing the setup inherent to the bootloader. I was hoping to avoid modifying the bootloader api provided too much, but I see no way around it  at this point.