I am attempting to make a circuit with the MT8870 chip. What I want to do is have a plug going from a cell phone, into the circuit board in a way so that the MT8870 will decode the button presses and light up LED's to indicate (in binary) which button was pressed. Later on the circuit will be more complicated, but I need to make it work in this simple setup first.
This has been done many times by many people, but typically it is done with an old Nokia phone. I need to do this with a modern smartphone. The phone I am using is a Samsung Galaxy S4.
First I set up the circuit on a breadboard in its normal fashion, as can be seen in this diagram:
This circuit did not show any response to button presses. After a lot of googling, an obscure forum post in an indian forum stated that the 100k resistor between tip and pin 2 works for old Nokias, but is too strong for modern phones. He said that his circuit worked fine after replacing that 100k resistor with a 4.7k resistor.
So I tried using less resistance between tip and pin 2. I didn't want to go quite as low as 4.7k if I didn't have to, so I first tried 10k. With the 10k resistor in place, as soon as I fired up the circuit and started hitting buttons on my phone the LEDs started reacting exactly as they were supposed to. I thought I had won. But then another problem arose.
After a few seconds of playing with the buttons, the whole thing suddenly stopped responding. The lights didn't all go off, they just stayed in the position they were in and would not react to the keypresses.
I tried unplugging the power and plugging it back in. This reset all the lights (set them all to off) but they still wouldn't respond to keypresses. After some playing around aimlessly, it started working again. But, again, after a few seconds it stopped responding. Unplugging the circuit and plugging it back in does nothing. It seems as if unplugging the phone from the circuit works sometimes
I tried reducing the resistance again. I tried 4.7k and 1k. Both of these behaved the same way as the 10k resistor.
As it stands, the circuit will work for a few seconds, and then lock up. If, while it is working, I keep pressing buttons on the phone constantly, it will not lock up. But if I stop pressing anything for even five seconds, it locks up every time.
I suspect that when I changed the resistor from 100k to 10k, I would have needed to change something else as well. Possibly the resistor between pin 2 and pin 3? Possibly the capacitor between tip and the (now) 10k resistor? Possibly the capacitor between pin 17 and V+ or the resistor between pins 17 and 16?
Here is the circuit as it is now, the only difference from the diagram above is the resistor at the top left:
The 5V I am using comes from a 5V regulator connected to a 9V battery. Using the multimeter, all voltages and continuities on the board are appearing correct.
I understand most of the circuit. I understand the bottom half completely. I understand that the 0.47uF capacitor is to filter out noise in the signal. I understand that the resistors at the top left of the diagram are for controlling the op-amp, but I don't understand exactly how they do that. I don't understand the 0.1uF capacitor at the top right or the 330k resistor directly below it at all.
Here is a link to the datasheet for the MT8870http://www.natalnet.br/~aroca/afron/mt8870.pdf
I have read it many times, but I still don't entirely understand the op-amp or pins 16 and 17.
Any assistance in helping me to stop it from locking up is appreciated.