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.

TMS570 Canbootloader

Other Parts Discussed in Thread: TMS570LS1227, HALCOGEN

Hey,

i've founded a bootloader from ti for can bootloading. But i'm not really sure how to use it. So is it possible to flash it on an device and then only use the can to write to the flash ? In the guide there is something about pressing a button and so on, but that is not possible in my configuration. So what i need is a (program?) which flash's the compiled software over can on the chip which is placed somewhere i can't program it normal.

Could someone please help me ?

Cheers
Moritz

edit:
sucessfully flashed the can bootloader on the tms570ls1227 hdk.
Now i would like to test if it works like i think. But have no NICAN dongle. Is there any existing code for Vector or Pcan ? 


Greetings
Moritz

  • Hi Mortiz,
    The bootloader is a small piece of code that you need to first program to the flash memory via the JTAG interface. Once the bootloader is loaded, it will setup the basic device configuration such as clocks, wait states and etc and also the on-chip CAN module which will interface to the external host to download your application image. This is the basic concept behind the bootloader.

    The CAN bootloader example comes with the PC side application targeting NI-CAN 8473. We don't have code for Vector or Pcan.
  • Dear Charles,

    thank you for your replay.
    Can the project loaded by the canbootloader have it's own configuration, so when caninit(); is called in my project it will then override the configuration set by the canbootloader ?

    Okay thanks, so the pc side application is something that i need to develop then, shouldn't be too have :)

    Greetings
    Moritz
  • Hi Mortiz,
    Yes, the you own application can re-setup the CAN module.
  • Hi Charles,

    Thanks for your replay. Wrote an host application which is quiet good.
    But flashing takes a very long time. If i want to speed them up bootloader says can is to fast.
    So is the Flash Library the limiting factor?

    Greetings
    Moritz
  • Hi Mortiz,
    I think there is room for improvement. The bootloader example you got is just an example to illustrate how to create a CAN bootloader. You can modify it to improve the performance.

    I believe the bootloader is programming 8 bytes at a time to the flash. You should be able to increase that to 16 bytes as the TMS570LS12x flash bank width is 16-bytes wide. Since each CAN payload is 8 bytes you will wait for 2 payloads of data before programming.

    If you want to improve further I can image that you setup two buffer areas. While one buffer area is used to programmed the 8 or 16 bytes to the flash you have the 2nd buffer receiving the next 8 or 16 bytes on CAN bus. This parallelism should also help performance. This will be left as a exercise for you as we don't have any examples supporting this strategy.
  • Thanks Charles
    thats some good points you mentioned i didn't thought about.
    But for now i need to get all our programms to load with the bootloader.
    Is it possible that Halcogen -> TI_FEE destroy the hole thing ?

    Greetings
    Moritz
  • Hi Mortiz,
    I'm sorry I'm not understanding your question that the HalCoGen->TI_FEE destroys the whole thing. Could you elaborate?