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.

AM2434: the speed of DFU-USB downloading is different on the different window PC

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

Hi, Ti expert:

      I found that the speed of DFU-USB downloading  is different on the different window PC,There is a significant difference in speed. 

    The normal speed is 110 Kbit/s.  However, on some computers, the speed is only 30Kbit/s. 

the same zadig.exe and util-dfu tool, and the same usb_dfu_uniflash.py to download the same size file(32MB),  and the same am2434 device and the same usb cable.

I had conducted tests on this post before. Then, when I tried it on another PC, I discovered this above problem. 

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1600273/am2434-the-rate-at-which-the-firmware-is-downloaded-via-usb-for-am2434-is-very-slow/6175058?tisearch=e2e-sitesearch&keymatch=tanbao#

What causes this problem? We would be grateful for any assistance.

 

Tanbao

  • Hi Tan,

    I found that the speed of DFU-USB downloading  is different on the different window PC,There is a significant difference in speed. 

        The normal speed is 110 Kbit/s.  However, on some computers, the speed is only 30Kbit/s. 

    the same zadig.exe and util-dfu tool, and the same usb_dfu_uniflash.py to download the same size file(32MB),  and the same am2434 device and the same usb cable.

    This statement itself tells that there are no problem in the zadig.exe, dfu-util software as well the USB DFU driver provided by TI. So the problem is from the USB host used which in your case is the PC(either windows or Linux). This is not related to device drivers and hence out of support topic for TI. 

    Regards,

    Tushar

  • Hi Tushar,

    Let me simplify customer's question, I understand our SW seems has no problem since it is workable with different PC. However, customer does see an obvious difference for the speed across different windows PCs. We understand the difference itself will be likely come from the PC. But as we discussed in the below thread together several months ago, you have mentioned 113 - 200 Kbps will be a reasonable speed to achieve, therefore we also believe there could be some requirements on the PC side to work together to achieve this speed, but we are not clear on that. That's why customer creates this thread, they hope to learn some general guidance that which major specs / requirements for PC needs to support in order to achieve 113-200 Kbps this range speed.

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1600273/am2434-the-rate-at-which-the-firmware-is-downloaded-via-usb-for-am2434-is-very-slow/6175058?tisearch=e2e-sitesearch&keymatch=tanbao

    Thanks,

    Kevin

  • To work with DFU, we only need dfu-util binaries, zadig software. Please refer INSTALL_DFU_UTIL 

    No additional configuration on the host side are required for increasing the DFU speed and such steps are also not mentioned in the SDK docs as well. Please refer TOOLS_FLASH_DFU_UNIFLASH 

    Regards,

    Tushar

  • Hi Tushar,

    We have gone through the above user guide before raising this thread. We also did not find anything useful that need to look at apart from dfu-util binaries, zadig software. So we assumed that by following the guide, it should reach similar speed on different PCs.

    However, the fact is, by following the same steps, customer sees different speed and vary quite much from 30 to 113-200 Kbps. I understand we could say this has nothing to do with TI, as this comes from the difference between PCs, but if you could think of something that could be helpful for customer to try please let us know, since customer really do not know how to debug based on this situation. 

    Thanks,

    Kevin

  • Hi Kevin,

    I have tried on my side as well. I was also getting the same ~28 KBps speed of dfu transfer. The ~113 KBps speed was on the U-boot DFU.

    Meanwhile, I found a workaround for this issue, there is tud_dfu_get_timeout_cb API in the USB DFU Uniflash example which return the timeout value for wait before next DFU Download. This was done to perform the operation synchronously. As we are using memcpy to copy the data hence you can return the timeout as 0 as we don't need to wait. Memcpy operation are mostly synchronous.

    Please update the code as below and rebuilt the DFU Uniflash. 

    uint32_t tud_dfu_get_timeout_cb(uint8_t alt, uint8_t state)
    {
      if ( state == DFU_DNBUSY )
      {
    	  /* as of now we support only flash memory */ 
    	//   return 1 ; 
      }
      return 0;
    }

    Once the DFU Uniflash is rebuilt, update the path in default_dfu_ospi.cfg file. 

    Re-run the usb_dfu_uniflash script and let me know if you see improvements.

    Regards,

    Tushar 

  • Hi,Tushar:

          Thank you a lot , it works. I try it on two different PC, the speed is  about 150Kbyteps

  • Hi Tan,

    Thank you for the confirmation. Marking the thread as resolved.

    Regards,

    Tushar