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.

Real-Time Data Acquisition



I would like to input real-time myoelectric data from a Gould Bioelectric Signal Conditioner (basically collects analog signals representing electical activity of muscles) into the TI Piccolo TMS320F28069 in the "Experimenter's Kit". Any ideas as to how to accomplish this and which pins to use? Also, since it is an ongoing (rolling) data collection (which I will be enveloping for processing), is there enough storage on-board or should I use additional memory. I plan on doing all of my MCU interfacing via Simulink w/ Embedded Coder from Mathworks.

Any advice would be much appreciated!

Thanks,

Kristi

  • Kristi,

    What kind of signal comes out of the signal conditioner?  

    Is it analog? If so you might be able to use the ADC (analog to digital converter) module. If this will work and if the on-chip storage will be sufficient depends on a number of factors:

    -What is the minimum and maximum voltage that can be produced? The F28069 ADC has an input range of roughly 0 to 3.3V.

    -How fast can the signal change and what information are you trying to get out of it? How long of a rolling record do you need to keep at any one time? A few milliseconds? A few seconds? More? The F28069 ADC can convert up to 3.4 million samples per second. Each sample is 12-bits, but you would generally store each in a 16-bit word.  

    -The maximum RAM is about 50K words, although this may not all be usable for a buffer because it may not all be contiguous and some will be needed for your program.      

  • Devin,

    Thanks for your answer. The signal is analog, ranging from 0 to +/- 2.5 volts. Each data 'envelope' should be 200-300 milliseconds collected, then pushed to processing while the next envelope is being collected.The max sampling rate would be 4000 Hz, but I may be able to sample lower. I am not sure yet. 

    Thanks,

    -Kristi

  • Is it +/-2.5V on a single wire or is it differential? You may need to use an amplifier circuit to attenuate the signal and add some offset to go from +/- 2.5V to 0 to 3.3V.  

    4kHz for 300ms gives 1200 samples.  If you have 2 alternating buffers, you will need space for about 2400 samples.  This shouldn't be a problem to store in the device internal memory.

  • The signal conditioner is a preamplifier that includes a differential op-amp. The final output plots +/- 2.5 wave on the oscilloscope.

    You have been so much help. Thank you very much. I am working with a Senior Design Team (Biomedical Engineering) to build a prosthetic arm that responds to muscle signals. Unfortunately, microcontrollers is not my strong suit.

    Very Thankfully,

    Kristi

  • Sounds like an interesting project.  Have you looked at submitting it for the TI analog design contest (see link below)? If you are already using TI parts, you might not have to do much other than meet the documentation requirements for the contest.  

    http://e2e.ti.com/group/universityprogram/w/wiki/2114.texas-instruments-analog-design-contest.aspx?DCMP=univ-adc&HQS=analogdesigncontest

    As far as getting your +/-2.5 volt signal into the 0 to 3.3V range, my guess is that you will probably want to attenuate the signal with a resistor voltage divider, then have a unity gain or low gain (say x2) op amp circuit with some offset to get into the desired range.  See the below link with some op-amp circuits, including offset adjustment.  Simulating in spice or similar before building may be the quickest way to get things right. 

    http://www.ti.com/lit/an/snla140a/snla140a.pdf