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.

CCS/TIDM-BPM: "Algorithm.c" and "msp430f6638.c" not found for the TIDM-BPM blood pressure monitor

Part Number: TIDM-BPM
Other Parts Discussed in Thread: MSP-FET, , AFE4403, AFE4403EVM

Tool/software: Code Composer Studio

Hello,

We are a university called HEPIA based in Geneva (Switzerland) and we are interested in the TIDM-BPM device.

Our question concerns the source code provided for the TIDM-BPM device. We found the "msp430f6638.h" which is the header file of the MCU integrated in the device. However we didn't find details of some functions. There is only their prototype (only the header file). We tried the hold Ctrl and left click solution but we can't even click on it, there is not a link provided. We are talking about functions such as ADCInit(); , timer0Init(); , timer1Init(); , void dataProcess(void), void dataProcessInit(void); , void lpFilterData(void); ,etc...

We also don't have the "Algorithm.c" and "msp430f6638.c" files. How could we have access to the detail of these functions and these files. We really need them before we can order the MSP-FET debugger and start our work. 

Best regards,

Mike Jaber

HEPIA, Geneva, Switzerland.

  • Hi Mike,

    A better way to find functions and text within a project is to use the "CCS Search Tool". By using the "File Search" tab on the search tool you will see that the ADCInit(); , timer0Init(); , and the timer1Init(); functions are all in "measureMode.c". 

    The functions dataProcess(void); dataProcessInit(void);, and lpFilterData(void); are defined in Algorithm.h but they actually exist in the algorithm source code ( Algorithm.lib ). There is no Algorithm.c because the algorithms used by this TI Design are proprietary, thus they are given in "library" format.

    Also, there is no device ".c" file needed as all of the register definitions needed for the project exist in the device ".h" file.

    Best regards,

    Matt

  • Hello,

    Thank you very much for your response. As we understand the Algorithm.c can't be provided because it's something private done by TI right ?

    Furthermore we have two really important questions. We have already sent an email about these two questions but we haven't received yet a response. So our first question is about the TIDM-BPM blood pressure monitor. We have noticed in the Altium scheme that this device use the BP300 pressure sensor. However we didn't find the datasheet of this pressure sensor. Thus, could you provide us the BP300 pressure sensor datasheet ? We need it in order to get some informations as current consumption for example.

    The second demand concerns the AFE4403YZPR (heart rate mionitor) device. Indeed we are also very interested in the AFE4403YZPR (heart rate mionitor) device. Do you provide any program for this device ? A program where for example we can find the registers configuration, how to read the data, etc...

    Best regards,

    Mike Jaber

    HEPIA, Geneva, Switzerland.

  • Hi Mike,

    That is correct!

    Regarding your concerns for the BP300 and the AFE4403YZPR, those fall outside of the scope of this MSP430 forum so I am going to reassign this thread over to a forum that is more tailored towards questions relating to TI Designs so you can receive further support.

    Best regards,

    Matt

  • Hi Mike,

    Regarding AFE4403, please refer to the AFE4403 product folder at ti.com. Here is the link for your reference.

    http://www.ti.com/product/AFE4403

    You can find the information you are looking for here.

    Note that the AFE4403 is an analog front device that can measure the PPG (photoplethysmograph) signal and it does not provide the heart rate directly. 

    You will need to implement the algorithm for heart rate measurement.

  • Hi Mike,

    Please go here https://wenku.baidu.com/view/fdf41b758e9951e79b89278f.html and translate the page into English. This is the spec for the BP300 pressure sensor made by APM.

  • Hello,

    Thank you very much for your help!

    Best regards,

    Mike Jaber

  • Hello,

    Thank you for the reply. Yes we have taken a look at the AFE4403 datasheet and we noticed that it doesn't provide the heart rate directly. However we don't want to get the heart rate we just want to get the PPG signal in the output of the AFE4403 device.

    So indeed we have downloaded these zip files in the product folder and found out some source code.

    However we don't know in which zip file is the source code for PPG signal application. Indeed we found a source code for AFE4403 but for the SPO2 application only whereas we need the source code for the AFE4403 device for the heart rate monitoring application (even if we don't need the heart rate but just the PPG signal), where we can find how to program AFE4403 registers in order to get the PPG signal at the output so then we could read PPG signal data by SPI thanks to a MSP430 MCU. 

    Best regards,

    Mike Jaber,

    HEPIA, Geneva, Switzerland.

  • Hi Mike,

    You can start with the AFE4403EVM firmware source code (v2.3).

    After running the executable and accepting the EULA, the source code will be installed by default under C:\AFE4403EVMFWSRC-v2.3

    The AFE4403 driver code will be located in the C:\AFE4403EVMFWSRC-v2.3\AFE4403EVM_FW_SRCv2.3_Release\AFE4403

  • Hello,

    Thank you for your response. We will take a look at this code with the team. We have further questions about the AFE4403 device :

    1) First question concerns the consumption. According to the AFE4403 datasheet (p 41) if we use the HRM application (TX3_MODE = 1), we just have to provide current to the external green led. Right ? So that means that we don't need to provide current to the red and infrared led. Right ? 

    2) We are a little bit lost about the LED_DRV_SUP we have to provide. According to the datasheet if we use an external led with a forward voltage of 2.5 V we have to chose a LED_DRV_SUP of 3.5 V ("Assume that the LED manufacturer mentions the highest forward voltage of the LEDs is 2.5 V at this current setting. Further, assume that the TX_REF voltage is set to 0.5 V. The voltage headroom required in this case is 1 V. Thus, the LED_DRV_SUP must be driven with a voltage level greater than or equal to 3.5 V (2.5 V plus 1 V)", p 87). Knowing that in our case we have an external green led with a forward voltage of 3.4 V (min), a LED_DRV_SUP of 3.5 or 3.6 V is enough or no ? That's why we are a little bit confused.

    3) As we understand according to the datasheet the output of the AFE4403 device is a 22 bit-word, which contains the ambient and led samples. However we didn't find a register where the data output of PPG signal is saved. Indeed we probably don't need a 22 bit word for each ppg signal sample, 22 bit seems to be too much for encoding the current converted to analog tension thanks to the TIA. We just need to read by SPI the data corresponding to PPG signal. Then in which register do we find these data ? 

    Thank you very much.

    Best regards,

    Mike Jaber

    HEPIA, Geneva, Switzerland.

  • Hi Mike,

    Here are the answers.

    1) As described in page 41 of datasheet (i.e. HRM application with Third LED) , the LED current control for LED2 is used for LED connected to TX3 pin of AFE (i.e. Green LED) instead of LED connected to TXP of AFE (i.e. Red LED). So if you want to turn ON Green LED you have to program the LED2 current (i.e. 0x22<7:0>) and additionally if you need IR LED then you have to program LED1 current (i.e.0x22<15:8>)

    2) Since the forward voltage drop of your Green LED is 3.4V, the recommended LED_DRV_SUP will be > 4.4 ( 3.4 + 1), here 1V is due to headroom requirement of AFE for TX_REF of 0.5V. However I would suggest to add some margin to 4.4V and apply 5V.

    3) Register from 0x2A to 0x2F contains the output of the AFE for different phases (i.e. LEDs and ambient values). The content of these register is 24 bits ,where lower 22 bits are ADC output and higher 2 bits are sign extension. Incase you don't want 22 bits then you have to read all 24 bits using SPI and discard the corresponding bits in MCU. Discarding the lower bits can also remove the AC component of the PPG signal hampering the heart rate estimation.

    Regards,

    Prabin. 

  • Hi Prabin,

    Thank you very much for your answer. We will give a response for each point.

    1) Knowing that we just need the green led for the PPG signal application, as explained in the datasheet we have to disable the IR led by setting led1 controls to '0'. Then if we disable the IR led, we don't need to provide to this IR led current, right ? We just wanted to be sure about that. That's to say that only the green led needs power supply and current supply, right ?

    2) Basically as mentioned in the last post, we are using a green led with a forward voltage of 3.4 V and a max forward voltage of 4.4 V (picture below).

    Thus using a 5 V power supply for the LED_DRV_SUP, will not damage the green  led since its max forward voltage is 4.4 V, even if we have a 1V headroom voltage ? 

    3) Since we just need PPG signal, we will only need the LED2 (green led) registers. There are 3 LED2 value registers : LED2VAL[23:0] , ALED2VAL[23:0], and LED2-ALED2VAL[23:0]. As we understand the last resgister  LED2-ALED2VAL[23:0] contains the digital value of the LED2 sample after the LED2 ambient is subtracted, which means ambient compensation is already done on this register values. Since we only want to get PPG signal data with ambient compensation, the register we have to read by the MCU is LED2-ALED2VAL[23:0], right ? Then if ambient compensated data are already provided in this register, what is the utility of the two other registers LED2VAL[23:0] , ALED2VAL[23:0] ? 

    Thank you.

    Best regards,

    Mike Jaber

    HEPIA team, Geneva, Switzerland.

  • Hello,

    Did you receive our last message ?

    Regards,

    Mike Jaber

    HEPIA, Geneva, Switzerland.

  • Hi Mike,

    Here are some answers.

    1) Yes, If you don't need IR, then you can set the IR LED current to 0. You can also connect power supply to green LED and choose not to connect IR LED to AFE.

    2) If max forward voltage drop of LED is 4.4V, then you have to supply 5.5V at the anode of LED (including 1V for headroom). Typically 5.5V should be fine with the LED, however since we are not the manufacturer of LED, its better to confirm this with LED's manufacturer.

    3) LED2VAL and ALED2VAL can be used to individually monitor the phases for saturation. For example, if LED2-ALED2 is saturated we won't know which of two phases is saturated. If LED2 is saturated then we can reduce the TIA gain as well as LED current to remove the saturation. Whereas saturation in ALED2 can be removed by using internal AMBDAC. Individual data can be also processed in the MCU to achieve data such as LED - Average of two ambient (on either side of LED). LED - Avg of AMBs gives better rejection of ambient as compared to LED-AMB

    Regards,

    Prabin. 

  • Hello Prabin,

    Thank you very much for your answers.

    Best regards,

    Mike Jaber

    HEPIA, Geneva, Switzerland.

**Attention** This is a public forum