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.

TMS320F280049: F28004x firmware update example

Part Number: TMS320F280049
Other Parts Discussed in Thread: SFRA, TIDM-02011

Hi Ti,

I was trying the example serial flash device from ti. we are using the buck example as mentioned in https://www.ti.com/lit/ug/tiduey4a/tiduey4a.pdf?ts=1625114701282&ref_url=https%253A%252F%252Fwww.google.com%252F in section 3.2. for the buck application code to run , we were able to compile with bank0 but not with bank 1. we have followed the steps in the table 

the error showing is 

gmake: *** [libraries/sfra/sfra_gui_scicomms_driverlib.obj] Error 1
gmake: Target 'all' not remade because of errors.

can you please help

Thanks and regards

Anju

  • Anju, I will take a look at this and reply before the end of the day today. Thanks, Sira

  • Anju,

    I just tried this with my DigitalPower SDK v3.02.00.00 installation and both BANK0_FLASH and BANK1_FLASH build configurations build without any issue.

    That error doesn't tell me much. Can you try cleaning the workspace, reimporting the project and building?

    Try building the BANK1_FLASH configuration first.

    Thanks,

    Sira

  • Hi Sira.

    thank you for your response.

    I have tried the same way and same errors was there.. I have created a new workspace and there i have compiled and build the project.. it is now working fine.. both are able to build

    Thanks and regards

    Anju

  • Hi Sira. 

    I was able to load the kernel file in SCI boot mode. and when I run the appln.exe

    serial_flash_programmer_appln.exe -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a f28004x_fw_upgrade_example\buck_F28004x_lduBANK1FLASH.txt -b 9600 -p COM12

    in flash boot mode it is not working as expected. 

    after this it is not showing anything. The autobaud lock is not working.. 

    Please recommend any change that i can follow. or can i run the serial_flash_programmer.exe itself for live dfu for the same command?

    Thanks and Regards

    Anju

  • Anju,

    Are you loading the kernel to Bank0, and then using it program the Application to Bank1?

    Thanks,

    Sira

  • Hi Sira,

    Yes.. I have loaded the BANK0 kernel first. then power off and changed to flash boot mode and powered on. when load the BANK1 application file at this time these errors showing. 

    Thanks

    Anju

  • Anju,

    The code you are using is from the DigitalPower SDK v3.02.00.00 TIDM-02011, correct?

    I presume you are getting stuck on step 5 of 3.4.1 of TIDUEY4, correct?

    Yes, in this step you have to use serial_flash_programmer_appln.exe and not serial_flash_programmer.exe, since the kernel is already in Flash.

    I would suggest a few things:

    1. Repeat the steps exactly as mentioned in the document - just in case you missed anything.

    2. If the issue still occurs, connect to CCS and check the Flash addresses 80000-82000 and see if they have valid content in them, and are not just FFFF.

    3. Also try using CCS, i.e. using 3.4.2 of TIDUEY4.

    Thanks,

    Sira

  • Hi Sira,

    Thank you for your response

    I am following the same steps, SDK code and document. I have erased all the data before flashing the application, and by following 3.4.1 of TIDUEY4 itself the steps started to work. Don't know what was the exact issue.. but now able to flash both the banks..

     Thanks and regards

    Anju

  • Anju,

    Good to hear! All the best.

    Thanks,

    Sira

  • Hi Sira,

    After the auto baud. there is check sum error from the TI device. and it is continuously inside the while loop after sending the 22 bytes of init data. not receiving the check sum.

    I have tried it from our code and from the visual studio code command prompt . both are stuck at the same position. 

    Have tried to flash the kernel file again. after the DFU command send , when sending the file, in between sending process also it is getting stuck. Image that I have attached is where it is getting stuck

    is the issue is with this MCU? None of the commands are able to complete. like DFU,RESET,ERASE .

    Before I was able to do all these..

    Thanks and regards

    Anju

  • Hi Sira,

    I am facing either one of two issues continuously

    1) After the auto baud. there is check sum error from the TI device. and it is continuously inside the while loop after sending the 22 bytes of init data. not receiving the check sum.

    I have tried it from our code and from the visual studio code command prompt . both are stuck at the same position. 

    Have tried to flash the kernel file again. after the DFU command send , when sending the file, in between sending process also it is getting stuck. Image that I have attached is where it is getting stuck

    is the issue is with this MCU? None of the commands are able to complete. like DFU,RESET,ERASE .

    Before I was able to do all these..

    Also ,

    2) I have used another board and for that from the command prompt , I was able to flash the kernel for bank0, then application image for bank 1, then the kernel for bank1, but always it is getting stuck at flashing the application image for the bank0 . 

    these two issues are I  am facing when flash the two banks. 

    Thanks and regards

    Anju

  • Anju,

    What hardware are you using?

    Thanks,

    Sira

  • Hi Sira,

    I am using the F280049C launch pad development kit. have tried using the steps in 3.4.2 of TIDUEY4. I am able to flash from CCS for both banks. 

    Thanks 

    Anju

  • Hi Sira,

    In this method in TIDUEY4 we have to load 2 different types of files alternatively ie for bank0 and bank1. in both these application files the only difference is in build configuration. instead of this method can we use only one type of configuration ? ie even if we are using bank 0 and bank1 to flash alternatively can we compile the code in same configuration and when we load the code it will automatically selects alternate banks.? i am asking because if we write the same flash bank code again for the next time the process is getting affected. 

    and one more thing .. can we update the firmware from one of the flash sections only?

    Thanks and regards

    Anju

  • Anju,

    Are you saying 3.4.2 is working for you, and 3.4.1 is not? Are you able to get the full LFU demo running i.e. updating the firmware live?

    Thanks,

    Sira

  • Anju,

    You need 2 separate flash kernels / build configurations because the one that is running from Bank0 will only update the application on Bank1, and the one running on Bank1 will update the application on Bank0. Bank0 cannot update Bank0 - that would be a violation of Flash operation - you cannot erase/program from the same flash bank that you are executing (reading) from.

    Thanks,

    Sira

  • Sira, 

    Now it is working. I think the problem is from the connection side, sorry for the inconvenience. and thank you for your guidance in each query.

    For the update process, the need will be to update more devices. so it is not easy to keep the track of the firmware that is in each device. 

    Regards

    Anju 

  • Anju,

    Good to hear that it is working now!

    I now understand your previous question - you basically wanted to know if the Application can be created so that it is not specific to Bank0 or Bank1, and at load time it determines the Bank that it needs to go to. This has been considered but not implemented. I will investigate this further. I understand that keeping track of the Flash bank the application needs to go to is not the best approach from a maintainability standpoint.

    For now, I am glad you are able to make progress.

    Thanks,

    Sira

  • Sira,

    That is what exactly what I meant. I look forward for your future helps. 

    Thanks 

    Anju

  • Hi Sira,

    Thank you for your support

    sorry for asking this late..

    Can I use SCIB for this firmware update?  pins 56 and 57. If so what are all changes that i should make? . if i change BUCK_LFU_setupSCIAPort(); for SCIB in the buck example to these pins , or any other changes also require?

    Thanks 

    Anju

  • Anju,

    Since you will use Flash Boot mode, I think it should be possible to use SCIB to stream in the application.

    In addition, you will need to make changes to the SCI Flash Kernel, which uses SCIA. Specifically, many changes in flashapi_ex2_sci_get_function.c (need to replace SCIA_BASE with SCIB_BASE), and sciPinmuxOption(), you'll see the SCI TX/RX pins all correspond to SCIA, and are defined in flashapi_ex2_bootrom.h. Those will need to be updated. There many be other changes as well that I have not analyzed here.

    Thanks,

    Sira

  • Hi Sira,

    Thank you for your reply. But according to https://www.ti.com/lit/ug/sprui33d/sprui33d.pdf on table 4.4(page no 591) it is mentioned that can use SCIA only. I have tried to change the kernel code and the buck example code to SCIB and flashed the kernel for bank0, and tried the LDFU from our code to SCIB the auto baud is not working.. 

    Thanks 

    Anju

  • Anju,

    What you are showing is the peripheral boot mode. In this case, you are not booting through SCIB. You are using Flash boot, and streaming in the image through SCIB, which I think is legal. There are possibly places you haven't made changes to. You'll have to look through the code carefully and understand if you're missing anything.

    Thanks,

    Sira