- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hello, I am using psoc 5lp cy8ckit-059 prototyping kit and planning to create a simple emg acquisition system using single differential channel. The attachment below is my project and when i trying to test it with my electrode which connected to pin_1, the reading is not right as in image below. I have tested the circuit using VDAC 100mV (connected to pin_1, PGA input) and it worked well. Do I need to add something like filter?
- Labels:
-
PSOC5 LP MCU
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I looked at the project. The input is not differential, what is the ground reference?
EMG signals are about like ECG signals, about 1 mV, with bandwidth from .1 to 100 Hz.
I suggest a differential amplifier, two PGAs back to back. Bias both inputs at mid supply.
Connect the diff amp outputs to the input of a differential ADC.
Your sample rate is much to high to be useful. Set it for 50 ksps or so and make your filtering easier.
Take a look at on-line references for ECG systems to get hints for circuit design.
I have 3 patents on ECG signal processing and 22 years at Cypress, I can probably help. Send your phone number by private email if you want to chat.
---- Dennis Seguine
PSoC Applications Engineer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your input wasn't quite balanced, and there is no way to pin the input voltage to within the common mode range of the chip. Try something like:
You could try even more gain to get better resolution; remember input signal level is about 1 mV. Filters can be done in the filter component or by writing your own FIR or IIR filters.
---- Dennis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
can I know what are the values of R_1, R_2, R_3 and R_4 because I can't see it clearly. I tried testing the circuit you suggested using resistor I currently have (as image below) and it did have reading but when I move my muscle the reading didn't change much.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
R1 and R2 = 10k to set mid-voltage bias point.
R3 and R4 = 1.0 meg so as not to load signal.
Typical skin impedance is modeled as 47k||47 nF.
To make good contact, use 3M red dot electrodes
https://www.amazon.com/Red-Dot-Multi-Purpose-Monitoring-Electrode/dp/B01AME7YC0/ref=sr_1_3?crid=242M...
To connect to the electrodes, use TENS wires (cheap):
https://www.amazon.com/Wires-Electrode-Durable-Electrodes-3-5mm/dp/B073P2SHQY/ref=sr_1_9?crid=1IGTFW...
The wire in a phone jack to your circuit.
A 2 mV signal with gain of 32 yields 64 mV. A 12 bit converter on 5V has 1.25 mV per bit, so you should be able
to see some signal. START WITH A SIGNAL GENERATOR FIRST, prove that it works, then flex your muscles.
Do some research on existing EMG monitoring systems and signals so you know what to expect.
An questions, send you phone by private email in this forum and I can call you.
---- Dennis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have tested the circuit with the resistors, the circuit works well and I get the signal. Now, I am trying to construct a single differential circuit based on an EMG refence book (image below) but when I tested the circuit, I got negative readings.
This is the single differential circuit from the reference book
this is the circuit I have constructed in PSOC creator
this is the result
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thank you for your answers. I will need to wait some parts to arrive. I am new to this but will do my best for this project. I will contact you if I have another question. thank again 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Naz99,
As alternative, you may try inexpensive external HX711 24-bit DelSig-ADC module, which can provide +/-80mV scale at 80Hz.
HX711: 24-bit Delta Sigma ADC interface for weight scale using PSoC
It already has built-in PGA. The advantage is very low price (<$1), and possibility of using multiple devices simultaneously
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What was the reference for the single differential schematic?
---- Dennis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
below is the schematic circuit from the reference book
I am planning to construct the circuit as in the sketch below:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I asked a simple question. I repeat:
What is the reference book?
---- Dennis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
sorry for the misunderstood, i though it was reference voltage. The reference is from journal below:
Tutorial. Surface EMG detection in space and time: Best practices - ScienceDirect
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nazhan:
OK, now I get it. To do the double differential, you can do two separate differential channels, digitize, then
subtract the second from the first. The attached project shows one way. I had a problem with the build. The
PGA outputs should be able to route directly to the ADC, but it struggled; I must have done something wrong
but this routes and should work.
The idea is to keep the two ADC conversions as close together as possible. You can set a sample rate of 50 ksps (20 usec / sample). The samples will be therefore 20 usec apart. This is very small compared to the maximum
rate of change of the signal. Calculate the difference between diff1 and diff2 in your code, don't bother trying
to do it in analog hardware. The ADC's SOC (start of convert) is triggered by the PWM. You will get an end of
convert interrupt, use that to start your calculations.
You don't need that extra reference line into the ADC because the signals are already referenced to mid-supply.
Let me know how it works out.
---- Dennis