Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TDC1000-GASEVM Changing Firmware

Other Parts Discussed in Thread: TDC1000, TDC7200

Hello,

I currently have the TDC1000-GASEVM and have the registers and everything configured how I would like. I would like to be able to communicate directly with the MSP430 chip on board without using the GUI. By this I mean I would simply like to read the TOF data without using the GUI. Now I am not experienced in firmware/embedded software applications so I am just looking for some information to get me started. I would like to know what I will need to accomplish the task such as software(CCS?) or hardware(cables and the such), maybe some tips on what source code to look at. Also can the firmware be changed directly through the USB connection, or will I need to use the JTAG pins? Is there a benefit to using JTAG? 

Also, in the end, I want to be able to send information about TOF over an ethernet connection to a website. Would you recommend staying with the MSP430 for this application, or should I move onto one of the am335x used by the beaglebone black? I mention the am335x in particular because I have a friend who has done a lot of work with it and would help me out if that is the case. Any other suggestions for processors would be appreciated too.

Thanks,

Russell

  • Russell,

    If you install the TDC1000-GASEVM GUI from TI website, you can find the source code zip of the TDC1000GASEVM under the following installation folder

    C:\Program Files (x86)\Texas Instruments\TDC1000_7200EVM\Firmware

    a) The zip includes project files for both TI CCS and IAR tools.  You can find a number of getting started material on TI and IAR website on the tools. You can check this

    b) You will need a JTAG programmer for program development and downloading

    Note: TDC1000EVM GUI has a built-in application to update the flash of the MSP430 with a new hex file. This application can program the device through the USB itself. So to just update the flash with a new hex file you don't need the MSP FET, only if you want to do serious code development you need that tool.

    c) The EVM has a JTAG header J1 that is not populated. If you are going to use the MSP FET, populate the header.

    d) The EVM firmware has already capability built-in to send the data over UART. There's no ethernet support on the MSP430. You can explore taking the data coming over UART to ethernet or some wireless device.

    e) If you open the source code, for example with IAR, you will see the following projects

    demo1_tdc1000_basic_rw: this project shows how to read/write registers of tdc1000

    demo2_tdc7200_basic_rw: this project shows how to read/write registers of tdc7200

    demo4_tdc1000_tdc7200_usb: this project is the actual evm firmware

    test_uart: UART communication test sample project

    Thanks,

    Vishy

  • Hi Vishy,

    I never got back to you after you sent this, but thank you for the quick response; the information you have provided has been extremely helpful. At this point in time I have a couple questions regarding the main firmware installed on the GASEVM board and about UART.

    First, UART:

    1) What are the logic levels of the GPIO 3/4 used for UART and what is the maximum voltage which they could receive? Also, can these logic levels be set in software?
    2) How is the information sent? 8 bits, no parity, 1 stop, 1 start? If not, where in the firmware can this be changed? (where in uart_commn.c)

    Second, clock source/initialization of registers:

    3) Will using the 13 MHz osc available on the GASEVM as opposed to the CPU_CLK help in stabilizing the TOF data? If you don't know this off hand I will test it out tomorrow.
    4) This brings me to my next question. How do I set the Registers which can be seen on the SETUP tab of the GUI? I am focusing more on initializing the board to have the 13 MHz osc. According to the settings in the GUI, on startup the clock is on the 8MHz osc(which I don't believe is actually on the GASEVM), but I can't seem to find where this is initialized in the main.c file for the current firmware. Also, if I do want to use the osc, do I just turn on the osc enable and then change the jumper?

    I will need to change certain other aspects of the SETUP tab, but I should be able to figure that out on my own.

    5) One final question about the TDC1000 ERROR_FLAGS register. In the current firmware it is initialized to be 0x03 which would set all the flags. Why is it done this way? I would think you would want to reset all the flags, so you would initialize it as 0x00?

    Thanks in advance for your reply.

    Russell
  • 1) What are the logic levels of the GPIO 3/4 used for UART and what is the maximum voltage which they could receive? Also, can these logic levels be set in software?

    >>>This should correspond to MSP430 Supply which is 3.3V (set at JP2). I think MSP430 would support up to 3.6V supply. You cannot change in software the logic levels.

    2) How is the information sent? 8 bits, no parity, 1 stop, 1 start? If not, where in the firmware can this be changed? (where in uart_commn.c)

    >>>Yes, 8-N-1 mode. In uart_commn.c, see initialization of UCAxCTL0. You can read about in MSP430 UG

    3) Will using the 13 MHz osc available on the GASEVM as opposed to the CPU_CLK help in stabilizing the TOF data? If you don't know this off hand I will test it out tomorrow.

    >>>It's also about making sure the TX pulse freq is as close as possible to the resonant freq of the transducer. CPU clock gives you some additional options to play with.

    4) This brings me to my next question. How do I set the Registers which can be seen on the SETUP tab of the GUI? I am focusing more on initializing the board to have the 13 MHz osc. According to the settings in the GUI, on startup the clock is on the 8MHz osc(which I don't believe is actually on the GASEVM), but I can't seem to find where this is initialized in the main.c file for the current firmware. Also, if I do want to use the osc, do I just turn on the osc enable and then change the jumper?

    >>>You cannot set GUI setup tab values from MSP430 firmware. You can setup the GUI configuration (including all the TDC1000 and TDC7200 registers) once the way you want and then save the GUI configuration to a file using the "Save/Load Config" option under the TDC1000 or TDC7200 register tab. Then whenever you start a debug session, load the config file previously used and save the config if you make changes.

    To start with you can save the default GUI config into a file and check. It's an editable text file that saves all the GUI configuration selections in addition to all the TDC1000 and TDC7200 registers. If you edit it, only edit the value and maintain the order.

    5) One final question about the TDC1000 ERROR_FLAGS register. In the current firmware it is initialized to be 0x03 which would set all the flags. Why is it done this way? I would think you would want to reset all the flags, so you would initialize it as 0x00?

    >>>Writing a 1 to that register field resets the flag. See TDC1000 register description.

    Thanks,
    Vishy