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.

AM2632: [Application] Flash code via LIN bus

Part Number: AM2632
Other Parts Discussed in Thread: UNIFLASH,

Tool/software:

Dear TI,

       We hope to update the AM263x firmware on-line without disassembling the device. Does TI support updating the application via LIN?

  • Lin,

    This is not supported on AM263x.

    Regards,

    Brennan

  • Hi Hartigan,

     thanks for your feedback.

     I want to know more details information.

    What is the root cause of AM263x not being supported?

    AM263x only supports UART/XDS1100 Jtag flash? 

    What are the AM263x hardware design limitations?

  • Lin,

    In terms of Boot, AM263x supports loading an application via UART, JTAG, and CAN.

    https://dev.ti.com/tirex/explore/content/mcu_plus_sdk_am263x_10_01_00_31/docs/api_guide_am263x/LOADING_APPLICATION.html

    AM263x can be flashed with an application by flashing an application to an external QSPI memory device using UART.

    https://dev.ti.com/tirex/explore/content/mcu_plus_sdk_am263x_10_01_00_31/docs/api_guide_am263x/GETTING_STARTED_FLASH.html 

    Regards,

    Brennan

  • Hi Hartigan,

       Thanks for your feedback. 

       According to your reference, If our customer puts the SUT into a car, we can't use LIN to flash the AM263x, right?

       If yes, the AM263x LIN architecture is not customer-friendly.

       If our SUT only has LIN communication, does TI have any solution for the above problem? 

        

  • Lin, 

    You cannot use LIN to flash the AM263x. Only the methods listed on the page I sent in my previous supply are supported for loading an application:

    https://dev.ti.com/tirex/explore/content/mcu_plus_sdk_am263x_10_01_00_31/docs/api_guide_am263x/LOADING_APPLICATION.html

    Regards,

    Brennan

  • Hartigan,

      I understand TI currently only offers the methods listed on the page, but our customers still want to use LIN for AM263x flash.

     Will TI have plans to use LIN for AM263x flash? Or if we have this requirement, what support can TI give us?

  • Lin,

    Let me re-phrase: Flashing the device via LIN is possible, but is not supported by TI and there are no plans to do this. You can enable this by modifying the sbl_uart_uniflash file found at [am263x sdk install path]/examples/drivers/boot. 

    There are no limitations on enabling this, but TI does not explicitly have any support or tooling to enable this without some custom software.

    Regards,

    Brennan

  • Hartigan,

      If we change the hardware design to switch LIN and uart via GPIO. How do I know that sbl_uart_uniflash has completed to auto reboot the Arm?

      

  • Hi Ming,

    Let me clarify am263x does not have option to boot directly via LIN, ROM does not support this. So the above design will not fly.

    however if you want to receive application via LIN you will need to do following:

    1. Create a SBL that will initialize LIN and receive the application then use flash apis to write the received application on flash

    2. Then you have to write  the sbl to flash using any of the following boot mode - JTAG or UART

    now that the sbl is flashed, it will bring up the LIN peripheral, then you can achieve the use case.

    Let me know if you need further clarification.

  • Hi Anand,

        I think you misunderstood our new behavior, so I have clarified new design(flash no via LIN) as below:

    4 pin connector design,

    Pin3: LIN and Uart_TxD switch via LIN to control

    Pin4: Uart_RxD

    GPIO: Control switch component to change uart /LIN and SOP0 to Uart mode.

    Question1: If we can control SOC reset, but GPIO floating can't be into Uart mode. Is there any design that can achieve this?

    Question2: How do I know that sbl_uart_uniflash has been completed(Uart flash complete)?

    Is there a way to automatically restart Arm in Uart mode?

  • Lin,

    Your proposal is hard to understand without specifying which device pins you plan to use. Please provide details on ball # and pin name for the four pins you have mentioned.

    Regards,

    Brennan

  • Brennan,

     We used our development MB, not EVM board. I'll try to describe the foot positions we used as best as possible. Because I'm not a hardware team member, I'm a software team member. 

    Currently hardware design:

    Pin1 : 12V DC input

    Pin2 : GND

    Pin3 : Peak LIN_IN through transceiver to AM2632 LIN2_RxD、LIN2_TxD

    Pin4 : GND

    The new design wants to use Pin3 and Pin4 to share LIN and Uart flash. Because we want to use TI's existing sbl_uart_uniflash interface for burning.

    Behavior as below:

    AM263x  receive the command to switch LIN to Uart(UART0_TxD, UART0_RxD)

    But we think it has problems as below:

    1. The SUT power-on needs to set SOP0=1 into uart boot mode. If we can control AM2632 re-power on, but AM263x resets SOP0, it will be floating and cannot maintain a high voltage.

    2. The GPIO control switches LIN to UART and AM2632 re-power on, GPIO will be floating and cannot be maintained.

  • Hi Anand,

         We will try two solutions to solve the client's flash problem. 
    1. Hardware design change.
    2. The Software attempts to update AM2632 via LIN.

         We design only 4-pin cable output to update AM263x firmware, voltage and ground occupy 2-pin, the other 2-pin is currently only for LIN communication. Unless these 2-pin can share LIN and Uart.

       So I want to know your further clarification. 

    If we use Peak LIN and use the Peak LIN API, can I flash the AM263x using a method similar to can_uniflash? 

    Do I need to generate the AM2632 LIN .cfg file? Are there any key steps I am missing?

  • If we use Peak LIN and use the Peak LIN API, can I flash the AM263x using a method similar to can_uniflash? 

    Do I need to generate the AM2632 LIN .cfg file? Are there any key steps I am missing?

    Ok sure, you do not need to generate any additional config file, please use the CAN itself, in the can uniflash application just replace CAN apis with proper LIN Apis and make sure LIN is initiliazed properly while you are building the application.

  • Hi Anand,

       If we only change the CAN api in can_bootloader.py to LIN api, the AM2632 will not be able to communicate with the host. Moreover, the protocol architectures of CAN and LIN are also very different.

    AM2632 should also need to add bootloader_lin cfg, because the bootloader function will be called in the boot example.
    ${SDK_INSTALL_PATH}\source\drivers\bootloader

    If possible, can TI provide a video to explain what details should be paid attention to when using LIN flash, software and AM2632 bootloader to communicate?