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.

ADS1291 calculation power question

Other Parts Discussed in Thread: MSP430FR5728, MSP430G2452

Hello, 

I only need one channel ECG, and I am going to use 1291 in my application, to reduce the cost and size of my application, I want to use msp430FR5728 or 38. the major function of this MCU is communicate with 1291 and a handheld device through UART, and related DSP( no USB and display). I don't know how to evaluate the calculation requirement of notch filter and band pass filter. the demo board is 128K flash, 8+2K ram. I hope I can use 5728/5738, is it possible? how to evaluate this calculation load?

another option of my application is to use a low end MSP like MSP430G2452, to convert SPI to UART. then my question becomes how much calculation power does host device need. I know it is hard to answer the question. let's assume that the host is a Samsung smart phone or Iphone, is it possible for them to handle DSP calculations as in EVM? is it only use a fraction of smart phone power, or it barely can handle it? 

thank you,

David 

  • Hi David,

    I will defer to our MSP430 experts on this question... 

  • david sun77114 said:
    how to evaluate this calculation load?

    Calculation load completely depends on your implementation. There is no generic answer. If you have an algorithm, you may be able to estimate the instructions and therefore processor time to execute it. However, small changes of the algorithm, reordering of steps (where possible) will give a completely different result.

    Another thing is the memory requirement. The FR573x only has 16k FRAM and 1k of additional SRAM. Since FRAM can be used like SRAM, this leaves you with 17k memory for both, code and data. Only you can know how much data must be stored to perform the required calculations. Also, the FR47xx isn't the fastest. The FRAM has only 8MHz maximum clock, and since data is stored in FRAM too, this effectively limits your processing speed to 8MHz (a little bit more, depending on usage of the 1k SRAM)

    For the option with an MSP SPI to UART converter chip, I suggest using the MSP430G2113 (the cheapest of the 2xx3 group), as the 2452 only has an USI module, which can do SPI but not UART in hardware. The 2xx3 devices have an USCI module which can do UART and SPI in hardware simultaneously. For a simple converter, the smallest one with 1k flash and 256 bytes ram should be enough. If more buffer space is needed, the 2413 offers 512 bytes ram (and 8k flash). The ADC of the 2x53 devices is not needed.

    About the processing power of the host device, well, I have no clue.

  • thank you for replying my question, I am going to port partial of the ADS1X9X_ECG_Recorder_FW to FR5738(24QFN), to see if it can hold and run the algorithm. but I notice there is no demo board for this chip( 5728 or 5738), the demo board is for 5739, but 5739 doesn't have 32X32 multiplier. I think this is very critical to the performance of the algorithm, am I right? 

  • david sun77114 said:
    5739 doesn't have 32X32 multiplier

    Why do you think that? My datasheet lists an MPY32 for all FR57xx devices.

  • sorry, my mistake, when I do the product search, I checked 24VQFN and 32bit multiplier, that is why I didn't find a 5739. a silly mistake. 

  • Hello, Jens-Michael Gross

    I am porting the ECG code from 5529 to 5728, I deleted USB and Nand flash portion because I don't need them, I hope I can keep all filters in the 17K memory",  but I always get a memory error, what is this mean? could you tell me which user manual or application note explained the arrangement of the memory space.

    error #10099-D: program will not fit into available memory.  run placement with alignment fails for section "DATA_GROUP" size 0x59 .  Available memory ranges:
       RAM          size: 0x400        unused: 0x52         max hole: 0x52      
    error #10010: errors encountered during linking; "test5728.out" not built

    from you post above, you said " The FR573x only has 16k FRAM and 1k of additional SRAM. Since FRAM can be used like SRAM, this leaves you with 17k memory for both, code and data. Only you can know how much data must be stored to perform the required calculations. "

    how to tell the compiler increase the data ram? I attached map file.

    I guess(hope) 8Mhz speed is good enough for a 250 samples per second ECG signal processing.

    thank you,

    David Sun

  • david sun77114 said:
    but I always get a memory error, what is this mean?

    It means that for some reason, ram is used up until only 82 ytes are left, but the DATA_GROUP section is 89 bytes and doesn't fit.

    david sun77114 said:
    how to tell the compiler increase the data ram? I attached map file.

    You cannot increase ram. ram and fram are two separate things. You may distribute your data between the two (e.g. by manually stating where everything shall go, using attributes and pragmas) but the linker cannot just extend ram into fram.

    The linker command script regulates where things go. It is linker/IDE specific. I'm sure you may be able to tweak it but I don't know how and (since I'm using mspgcc only) I cannot try myself even if I had the time. Sorry.

  • thank you very much for answer my questiones, If I want learn more about how to distribute data between ram and fram, is there a reference book or manual.

    could you please send me some link?

    appreciate your help, Best wishes for the Holidays!

    David Sun

  • david sun77114 said:
    is there a reference book or manual.

    There's the compiler/linker manual. And maybe you'll find a few tips in older forum threads. However, your exact task hasn't been tried before (at least I don't remember).

    Maybe you can get more help in the compiler forum.

  • thank you for your suggestions

**Attention** This is a public forum