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.

Pulse oximeter

I am using the TMS320CC5515 EVM connected to the front-end Spo2_FE_Rev_2 and I have the project for that on my PC, I download the .out (either the file that came with the project or one that I build from the files. I'm using CCS v3.3 and it appears to load correctly. When I run the program it seems to be stuck in the vectors.asm on

wait_pll:
    AC0 = *port(PLL_CNTL3)
    AC0 = AC0 & 0x0008
    if(AC0 == 0) goto wait_pll

What am I doing wrong? The first time I ran it out-of-the-box, with no debug connections the OLED worked.

 

Rob Reasons

  • Rob,

    With given information, I don't know what is wrong with your set up. Did you re-compile the project? 

    Regards,

    Peter Chung

     

  • Peter,

    Yes I rebuilt all and created a new SpO2.out and loaded it. The load doesn't take long, and when I start the debug it gets stuck in the loop

    wait_pll:
        AC0 = *port(PLL_CNTL3)
        AC0 = AC0 & 0x0008
        if(AC0 == 0) goto wait_pll

    in vectors.asm. Do I need to do anything else besides build the program and load it to make it work? What about the gel file?

    Rob

  • Rob,

    What is your compiler (Code Generation Tool) version? Please try the version 3.3.6 and see if it works. 

    Regards,

    Peter Chung

  • Peter,

    I don't know where to find the Code Generation Tool - that's why I can't get the version or how to change it to 3.3.6.

    Rob

  • Peter,

    I found that I'm using Code gen v3,3.2. How do I get v3.3.6?

    Rob

  • Rob,

    Try this link. 

    http://processors.wiki.ti.com/index.php/Compiler_Releases

    You need to download C5500 Code Generation Tool v3.3.6.

     

    Thanks,

    Peter

  • Peter,

    I downloaded it again and was successful this time.

    Rob

  • Peter,

    I used 3.3.6 and it still gets stuck in the same place. Do I need to load a gel file?

    Rob

  • Did it work OK when you downloaded the original .out file without rebuilding it? 

     

  • Peter,

    It worked fine when I loaded the original SpO2.out through CCS v4. I always go back to that to make sure I haven't damaged the board.

    Rob

  • Hi Peter,

     

    Rob and I have tried to Load the SpO2.out to the board using 4.x and 3.3 on his machine.  We are able to load the SpO2.out file to the board successfully using 4.x, but we have no source code and ability to debug.

    We are not able to load the SpO2.out to the v3.3 successfully, it gets stuck in a PLL while loop.  We have confirmed that we are now using 3.3.6 Code Generation Tools (Compiler).  The following video shows our steps with v3.3... and shows the PLL infinite while loop.  It is using the c55xxsim.gel, we have also tried it with Spectrum Digitals 5505 gel file found here... http://support.spectrumdigital.com/boards/evm5505/revd/  and the 5515 gel file found here... http://support.spectrumdigital.com/boards/evm5515/revb/

    If it is the Gel file, please give us some guidance.  Here's the video showing our steps and the PLL infinite loop.....

    http://www.youtube.com/watch?v=BpdQZJu24J4

    We also recorded our steps with v4.x where we are able to load the SpO2.out to the board, but we do not have any source code associated with it.

    http://www.youtube.com/watch?v=WrTFJE0fmuE

    If there is any way you could give us clear instructions on how to get a development environment setup so that we can build and debug the available SpO2 source code.  That is what we need.   CaptureFox.com is a great plugin for Firefox for screen recording...  if it will help you communicate to us what we should be doing, and what you do to get the environment work for the SpO2 Front End.

    Thanks so much for your help,

    Peter Gordon  (and Rob Reasons)

     

  • Pete,

    I am sorry to hear that you still can't run the project. It is also interesting that the project is an CCS3.3 project, not CCS4 but you are saying that it only works when you use CCS4...

     

    I don't think you need a gel file to run the SpO2 project, but let's try a couple of things. 

    1) Delete the following code and see if it works.

    wait_pll:
        AC0 = *port(PLL_CNTL3)
        AC0 = AC0 & 0x0008

        if(AC0 == 0) goto wait_pll  

     

    2) it you can make it work, then we know that it is not a compiler issue. 

    3) Try the gel file I attached here. (add the wait_pll loop)

     

    Let me know how it goes.

     

    Regards,

    Peter Chung

     

     

     

  • Peter,

    When I remove those lines I get thr link error:

    <Linking>
    >> warning: entry point other than _c_int00 specified

    and the program doesn't work.

    I will try your gel file next.

    Rob

  • Peter,

    I added the code back and loaded the gel file with yours (also replaced the existing sim.gel with this one - I think when you load the project it automatically loads this gel file)

    Gets stuck at the same place.

    Rob

  • Peter,

    Actually I get an error when I load the program:

    Error: Check the linker command file / map file for any part of the program going into reserved area and correct the problem when Program Counter is 0x0  NOTE: Reset the target, reload the corrected program and continue execution

    Rob

  • Hi Peter,

    We (Rob) have tried the steps with no successful result.  See Rob's postings to the forum entry.

    To clarify, the 4.x environment is used to "successfully" Load Assemblies (SpO2.out) and run the application on the board, it is not used to Load the Project (SpO2.prj).  The SpO2.prj Project is a 3.3 project and cannot be opened in the 4.x development environment.  We have not been able to successfully Load Assembly SpO2.out into the development board using the 3.3 environment; we have not been able to successfully Debug the SpO2.prj in the 3.3 environment (stuck in PLL infinite loop).

    1.  Do you have an SpO2.prj up and running?

    2.  Please help us, we have been losing weeks/months on this, trying to get the development environment up and running to successfuly view and debug the SpO2.prj.  We first ordered the SpO2 Front End MDK in September (9/23/2010 12:58:34 PM)  Please help.

    Peter Gordon (and Rob Reasons)

     

     

  • Rob,

     

    That does not make sense to me. Please try following steps and let me know if it works for you. 

    1) Go to "http://code.google.com/p/c5505-ezdsp/"  and Get SpO2 MDK for C5515EVM

    2) Open the project with CCS3.3 and download its output file (.out) to your target board (with CCS3.3) as it is. Please do not build the project.  

    It should work. If it still doesn't work, then I suspect that your board may have some issues. 

     

    Regards,

    Peter Chung

  • Peter,

    I deleted the existing folder, downloaded the zipped file and unzipped it. I launched v3.3.6 and opened the project in C:\Texas Instruments\MDK_SpO2System_C55515EVM\SpO2_System_v5_1. I loaded SpO2.out both in C:\Texas Instruments\MDK_SpO2System_C55515EVM\SpO2_System_v5_1\Debug and in C:\Texas Instruments\MDK_SpO2System_C55515EVM\Output but got the same results - the board did not work and the program got in an infinite loop at

    wait_pll:
        AC0 = *port(PLL_CNTL3)
        AC0 = AC0 & 0x0008
        if(AC0 == 0) goto wait_pll

    in vectors.asm

    The board works fine when we load SpO2.out through v4.

    Rob

  • Rob,

    I would like to have a conf. call with you to figure out what is going on. Are you available this morning? Please let me know the time you are available. 

     

    Regards,

    Peter Chung

     

  • Peter,

    I am here all day. I'd love to talk with you.

    My number is 614-245-4059.

    I speak very little Chinese. I speak Japanese and am still learning English...

    Rob

  • Rob,

    Please call in 972-995-7777 or 1-877-561-6828

    code: 89065084#

    I will call in now. 

     

    Peter

  • Peter,

    Thank you very much for all your help. We have been struggling with this for two months so this is a real breakthrough.

    I get a survey on my service calls but probably won't get one on this. Can you give me the emails or how to contact your supervisors to tell them what a great job you have done?

    One more question - how do I burn the program into flash so I can take the board and show it off?

    Rob

  • Rob,

    I am glad that I could help. I appreciate your willingness to inform it to supervisor. Your comments in this forum is good enough, thank you. 

    I will give you a link for the tool that you can program a boot-image into the C5515EVM within this week. Hopefully by Wednesday. 

     

    Regards,

    Peter Chung

     

     

  • Peter,

    I have been reading the other messages on the forum about the pulse oximeter and I have a few questions. We have tested two Nelcor-compatible sensors (that you don't recommend) and we are getting readings on the OLED but they are inconsistent and are dependent on how you place the probe on your finger. We have emailed the company you recommend to get a sensor but it is not clear how to order a sensor from them. We will hold any judgement of the pulse oximeter until we get that sensor.

    One member of the company we are working with is an M.D. who has strong opinions about probes - we showed him a number of probes and he only found one acceptable, without even looking at the signals they could produce. In the case he doesn't like the one we get from Biometric Cables (part number 020101001-TMS320VC5505-SPO2 ) what is involved in calibrating your pulse oximeter for another sensor?

    I'm interested to know how much effort T.I. has put into the signal analysis on this device. I know engineers who have made a career with pulse oximeters. Have you used a simulator to test many of the conditions that can occur with a human? Do we have a device that is almost ready for clinical trials (we obviously have to make our own boards based on your schematics) or will it be up to us to fine-tune the software for this?

    Thanks!

    Rob

  • Rob,

    I need to clearly say this. The SpO2 software and hardware are only for evaluation purpose, not for any medical diagnostic use. For the sensor, we have not tested any other sensors. If you want to use SpO2 software for production, I expect that you need to improve its quality a lot. The software we provide does not have production quality. The purpose of it is to help customer understand the C5505/15 device and concept of SpO2. 

     

    Here is what the SpO2 website says:

    EVALUATION BOARD/KIT/MODULE TOOL ("Tool") WARNINGS, RESTRICTIONS AND DISCLAIMER

    For Feasibility Evaluation Only in Laboratory/Development Environments. Not for Medical Diagnostic Use.
    This Tool is intended solely for evaluation and development purposes. It is not intended for diagnostic use and may not be used as all or part of an end equipment product.
    This Tool should be used solely by qualified engineers and technicians who are familiar with the risks associated with handling electrical and mechanical components, systems and subsystems.

     

    Regards,

    Peter Chung

     

  • Rob,

     

    As I promised, here is the programming tool for the C5515 EVM  (C5515EVM_Programmer.out) . This is still an early version. I will clean it up and then release it later. 

     

    How to use:

    Just load the program using CCS and run it.  You can then either follow these directions from the utility, or you can type in all of the answers to all questions at the first prompt as a shortcut.

    Following are some examples, assuming that you want to load a file named "C:\c5505\bootimage.bin"...

     

    For writing to NAND on an EVM, at the first prompt enter; "141c:\c5505\bootimage.bin"

     

    For writing to NOR on an EVM, at the first prompt enter; "221c:\c5505\bootimage.bin"

     

    For writing to SPI EEPROM on an EVM, at the first prompt enter; "311c:\c5505\bootimage.bin"

     

    For writing to I2C EEPROM on an EVM, at the first prompt enter; "41c:\c5505\bootimage.bin"

     

    For writing to MMC card on an EVM, at the first prompt enter (secure boot image only); "51c:\c5505\bootimage.bin"

     

    For writing to SD card on an EVM, at the first prompt enter(secure boot image only); "61c:\c5505\bootimage.bin"

     

    Please note that there is no space.

     

    Some devices take a while to complete writing all data. Always wait for an error message or "Programming Complete" message. 

     

    Regards,

    Peter Chung

     

    C5515EVM_Programmer.zip
  • Peter,

    Thank you very much. I have come to respect you for a clear and straight-forward answer, and that is exactly what I got. I don't know of anyone else at TI I would have asked those questions.

    Thanks again!

    Rob

  • Peter,

    Thank you very much! I know that I can rely on you for a quick response. I'm sure this technique will work!

    Rob

  • Peter,

    I think I am still missing something. Don't I need to build my SpO2 program as a release, creating SpO2.bin? Or how do I create a bin file from the out file?

    Should I write to NAND or NOR on the C5515 EVM?

    I understand the first digit in your enters (1, 2, 3 or 4) but I don't understand the second digit (4, 2 or 1). What are these referring to in the prompts?

    Thanks!

    Rob

  • Rob,

    I expected this question  :-). 

    1) Convert .out to .bin:

    Run hex55.exe on your .out file to create a binary file.

    Hex55.exe is located in <C5500 Code Generation Tools Install Directory>\bin\hex55.exe  (version 4.3.3 and later)

    e.g. C:\Program Files\Texas Instruments\C5500 Code Generation Tools 4.3.6\bin\hex55.exe

    You may not have this version, so let me attach it here (change its extension to .exe before use) 

     

    Run hex55.exe with the following options:

    "hex55.exe -boot -v5505 -serial8 -b -i [.out file name including file path] -o [.bin file name including file path]"   (if hex55.exe and the .out file are in the same folder, you don't need to enter file path)

    This will create a .bin file (hex55.exe will remove debug information from .out file, so you don't need to have a release build).

     

    2) The second/third digit numbers:

    Actually, I am going to remove those options for official release version. For EMIF (NOR and NAND), the second digit indicate Chip Select space, the third digit indicate "writing". Ex, 141 (1 = NAND, 4= CS4, 1=Write)

     

    Let me give you a link that will help you in case you have more questions. This link includes lots of information on the C5505/15 device. But, if you can't get help from this link, you can always post a question here.

    http://processors.wiki.ti.com/index.php/Category:C5000

     

    Regards,

    Peter Chung

     

    hex55.zip
  • Peter,

    I had to run it through DOS - XP would not run it directly. I'm having trouble with the format. I have put a copy of hex55.exe and spo2.out on the main directory to make it easier to find in DOS.

    I entered "hex55.exe -boot -v5505 -serial8 -b -i spo2.out -o spo2.bin"  and I get a fatal error. I'm sure I'm not putting the file names in correctly, or in the wrong place. The definitions of the commands don't hep much. They say that  it should be -o=spo2.bin so I tried that and making b=spo2.out (following the description of the commands.

    Could you tell me what the line should look like with these file names?

    Thanks!

    Rob

  • Rob,

     

    Sorry, the command line I gave you was incorrect. Here is the correct one.

    "hex55 -boot  -v5505 -serial8 -b -o [.bin: output file name] [.out: input file name]"

     

    It should work. 

     

    Regards,

    Peter Chung

     

  • Peter,

    Thanks! I'm still unsure where the name SpO2.bin and SpO2.out appear.

    "hex55 -boot  -v5505 -serial8 -b -o [.bin: output file name] [.out: input file name]"

    Do I leave the [...] in place or are those whole things replaced by the file names?

    Rob

  • Rob,

     

    Type:

    hex55 -boot -v5505 -serial8 -b -o SpO2.bin SpO2.out

     

    Thanks,

    Peter

  • Peter,

    Again, you are the wizard. I started working on computers even before they had DOS so obviously I've had a lot of experience with DOS. I know how particular the commands are so I just wanted to get it right. I have SpO2.bin now.

    Should I use NAND or NOR on the c5515 EVM?

    Rob

  • Rob,

     

    Glad that it works. 

    It is up to you to choose either NOR or NAND.  Good luck. 

    Thanks,

    Peter 

  • Peter,

    I got the program loaded! When I run the program I get the Standard Input Dialog Box and nothing else in the program works. I have to  type the whole string that you gave for writing to NAND.

    Rob