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.

ADS1298 MMB0 usb boot firmware update

Other Parts Discussed in Thread: ADS1298, TMS320VC5506, CC2640, CC2650, MSP-EXP430FR5994

hi,


i'm trying to write my own pc side app interfacing with the ADS 1298 ECG PDK (i.e. the ADS1298 board + MMB0 rev D (which uses the TMS320VC5507PGE).

www.ti.com/.../ADS1298ECGFE-PDK

after installing the evaluation app ftp.ti.com/.../ads129xecg-fe-setup-1.1.1.exe
i'e been able to run the labview based evaluation app. however, perhaps due to some library incompatibilities, the screen looked somewhat corrupted and there has been several freezes / hang in which i'd need to kill the app and restart. i'd try to update the windows patches to see if i could resolve the corrupted window/screen issue.


the other thing is that i'd like to write an alternative app that does pretty much what the labview evaluation app does. in part as i work on the linux platform and using ads1298pdk means having to reboot switch between linux and windows frequently.

however, i'm running into quite a lot of stumbling blocks:


i apparently found the installed firmware in c:\Program Files (x86)\ADS129xECG-FE\FW\ads1298revm-pdk.bin

and the firmware loader in c:\Program Files (x86)\ADS129xECG-FE\lib_1298\FirmwareLoader\build\FW loader.exe

however, when i tried running FW loader.exe with the firmware as a parameter i got an error message:

"unable to locate the labview runtime engine

FW loader requires a version 2010 (or compatible) labview run time engine. please contact the vendor to correct this problem"

i then did various google seaches and found www.ti.com/.../spra840c.pdf Using the TMS320VC5506/C5507/C5509/C5509A USB Bootloader

the document however, apparently only describes the use of "Thesycon (USBIO) Driver and Demo Application" . this program is not available freely for download on Thesycon's web site. The document apparently provide little details otherwise about how to upload the boot firmware image to the MMB0 device.

the source code file http://www-s.ti.com/sc/techlit/spra840.zip

my questions hence are :

1) is there an alternate utility similar to fw loader.exe (lets start with windows based, but i'd prefer to have linux utility as well) which can be used to download the firmware into the MMB0?

2) is there source codes (or similar utility in linux) which can be used to build the tool to download the firmware into the MMB0?

3) if it (1) & (2) is not required is there some common utility (e.g. common open sourced utilities) or protocol tools to do that same download? i've tried using dfu-util.sourceforge.net/ . however, MMB0 (TMS320 C5507) apparently is not using DFU as a firmware update protocol.

downloading the firmware is the first stumbling blocks confronted, after which i'd attempt to work on the cstyx usb driver/stack from the linux side to interface with the MMB0 and ADS1298.

either way, thanks much in advance and thanks for providing the various sources which i'd think those would help with this attempt.

thanks and cheers,

  andrew

  • Hey Andrew,

    I will start by saying TI does not provide support for custom developments using this EVM. We don't provide an easy way to modify this EVM because the only intended use case is for evaluation of the ADS1298. That being said, you bought it and it's yours so you can do whatever you want to it as long as you understand that the level of support you will receive from me might not equate to the level of support you might receive if this EVM were, say, a development kit for C5x DSPs.

    1. I attached the schematic for the MMB0. J8 (unpopulated by default) has the JTAG connections on it. You should be able to program it that way using all kinds of flash utilities.

    2. If this is not available in the LabVIEW source, then we would not be able to release it publicly. However, if you use the JTAG interface then you probably no longer need this.

    Hopefully this gets you going.

    Brian Pisani

    MMB0_Sch_RevD.PDF

  • thanks Brian,

    (repost)

    apparently i did it, this is specifically for linux

    command to compile gcc -lusb-1.0 usb_fw_download.c -o usb_fw_download

    command to run: usb_fw_download ads1298revm-pdk.bin

    note that the  vendor_id: 0x0451 , product_id: 0x9001, endpoint = 0x06 is hardcoded in the source code

    compiling this requires libusb-1.0 (http://libusb.info/ ),

    adapted from http://www.dreamincode.net/forums/topic/148707-introduction-to-using-libusb-10/

    source attached

    /cfs-file/__key/communityserver-discussions-components-files/73/usb_5F00_fw_5F00_download.c

  • Hi Andrew,

    Hope you are doing good!

    I have the same EVM board having CC5509 as host processor and ADS1298 Daughter board. I can use it on Windows using the GUI based application from TI. But I want to access it from Linux based PC.

    Seems that you were facing the same problem and resolved it. Can you please help me to solve the same at my end?

    Appreciate your quick reply.

    Thanks, 

    Dhaval

  • Hey Andrew

    1) I was following your mentioned steps to run your reference code "usb_fw_download.c". I have also installed libusb-1.0 and verified all the things like "vendor_id: 0x0451 , product_id: 0x9001, endpoint = 0x06". Even though it is showing following below kind of error on terminal window.


    "/tmp/ccVUqSjI.o: In function `main':
    usb_fw_download.c:(.text+0x15e): undefined reference to `libusb_init'
    usb_fw_download.c:(.text+0x195): undefined reference to `libusb_set_debug'
    usb_fw_download.c:(.text+0x1ae): undefined reference to `libusb_get_device_list'
    usb_fw_download.c:(.text+0x212): undefined reference to `libusb_open_device_with_vid_pid'
    usb_fw_download.c:(.text+0x26a): undefined reference to `libusb_free_device_list'
    usb_fw_download.c:(.text+0x27e): undefined reference to `libusb_kernel_driver_active'
    usb_fw_download.c:(.text+0x2a1): undefined reference to `libusb_detach_kernel_driver'
    usb_fw_download.c:(.text+0x2c3): undefined reference to `libusb_claim_interface'
    usb_fw_download.c:(.text+0x32d): undefined reference to `libusb_bulk_transfer'
    usb_fw_download.c:(.text+0x373): undefined reference to `libusb_release_interface'
    usb_fw_download.c:(.text+0x3ac): undefined reference to `libusb_close'
    usb_fw_download.c:(.text+0x3bb): undefined reference to `libusb_exit'
    collect2: error: ld returned 1 exit status"

    2) Secondly I tried your 2nd command to run "usb_fw_download ads1298revm-pdk.bin"
    and it was showing that "usb_fw_download: command not found" I have copied "ads1298revm-pdk.bin" this file and pasted on desired location on my pc from the path you mentioned
    "c:\Program Files (x86)\ADS129xECG-FE\FW\ads1298revm-pdk.bin"


    Waiting for your Kind Reply.
    Thanks,
    Gaurav
  • hi Gaurav Dubey,

    first off Brian mentioned that such applications with the MMB0 board is unsupported by TI, and personally i'd not support it as well. Hence, this is provided pretty much as-is, 'no warranties'.

    in addition, i'd like to mention that i did not succeed in running this in linux, i only attempted to try to download the firmware.
    as for the errors, those errors are compile errors showing that the compiler can't find libusb, you would likely need to install the 'development package' which includes the linkable libraries and headers files or you may need to build libusb from source. the 2nd error is simply because you have not successfully compiled the utility.

    note that even after you have done this, it is pretty much 'useless', in the sense that the windows evaluation app provided by TI would not run in linux, i do not have any equivalent app that does what that evaluation app does.

    if you would really like to try the evaluation app in linux, my guess is that one of the approach may be to try to run TI's evaluation app in virtualised windows instance, e.g. using virtualbox etc so that you may possibly install a windows instance, TI's eval app and run it in the VT session.

    my personal thoughts are that given linux's popularity as an o/s platform, TI may like to release an alternative implementation of that evaluation app for linux. but this is pretty much just a wish :)
    one way to do that is to have an evaluation app say in java or python or perhaps some pre-compiled binaries.

  • on a different note, i'm moving into playing with some mcu interfacing stuff e.g. using the beagle bone black (pretty much a very TI product) and various 'arduino' implementations, i'm doing a bit of arduino on st'micros stm32 cortex-m arm mcus, with these mcu implementations, i'd think it is very possible to interface with the ads1298 'daughter board' using SPI directly. i'm yet to get sufficiently competent meddling with these mcu's and electronics but is learning about them as i go along.

    it may be interesting if TI has similar 'arduino' like dev boards and communities which i could perhaps join to learn about the dev boards and such interfacing opportunities, for now i'm quite happy with meddling with the beagle bone black and may try interfacing it one day :)

    i think i may try to 'join' the  Sitara Processors Forum which seemed rather active with the beagle bone black as well https://e2e.ti.com/support/arm/sitara_arm/f/791

    it seemed TMS320 C2000 F28379D
    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/543547

    and CC2640 and CC2650 BLE arm-cortex-m
    http://www.ti.com/tool/LAUNCHXL-CC2640R2#1
    http://www.ti.com/tool/launchxl-cc2650
    CC2650 sensor tag
    http://www.ti.com/tool/cc2650stk

     TMC41294 arm cortex-m4
    http://www.ti.com/tool/ek-tm4c1294xl
    MSP430 based MSP430FR5994
    http://www.ti.com/tool/msp-exp430fr5994

    mcus are suitable for 'arduino' style developments, CC2640/CC2650 seemed more interesting due to its bluetooth integrated radios