Go Down

Topic: MSGEQ7 Works on breadboard. Stops Arduino on PCB. (Read 838 times) previous topic - next topic

AllanB

My project include SD Card reader, TLC5940 with 555 as external clock and MSGEQ7 for analyzing frequencies in music streamed from SD Card. The frequency spectrum is use to turn LED on and off via TLC5940.
Good news is that everything works on the breadboard. I used Fritzing to help me make an Arduino shield. I used IC sockets for all IC's so I can test them one by one. If I don't put my MSGEQ7 in its socket, the code is running and music is streamed. When I power up with MSGEQ7 in its socket I don't receive anything in my serial monitoring as I normally do. If I measure voltage over pin 1 and 2 on MSGEQ7 it reads 5v as expected. I have spent hours measuring resistance (continuity) on the PCB to check the circuit.
Another thing I observe is that the LED on the Arduino (pin 13) is on. That could indicate that the program never starts because the SD Card uses SPI and initialization make it an SCK pin.
Now my question is, does the fact, that Arduino never start the program indicate what is wrong?
Ps. please don't answer "Yes, it indicates that the wiring is wrong". I know that. I need directions to look at, not answers without substance.

AllanB

#1
Jan 19, 2013, 12:57 pm Last Edit: Jan 19, 2013, 01:10 pm by AllanB Reason: 1
Here is a link to Fritzing breadboard picture:
https://dl.dropbox.com/u/83914131/soundboxr_bb.png
and schema:
https://dl.dropbox.com/u/83914131/soundboxr_schem.png

AllanB

Finally I found the error. I want to share my approach if others should come in the same situation.
First I desoldered the resistor and some capasitors to see if that changed anything. No result at this path.
Then I carefully bended leg 1 and 2 of MSGEQ7 so only these two legs - the power legs - was attached in the IC socket. Now the PCB worked. Then I added leg 3 and 4 and the PCB stopped working. This way I isolated the problem to leg 3. This is the analog output. Now I could begin to measure resistance (or continuity) from this leg to every possible point on the PCB. Bingo, the reset pin on the Arduino was connected. A little solder between the reset pin and the trace from MSGEQ7 and to the analog pin 0 had escaped my keen eye - or maybe not so keen eye.

That also explain why the program never really started. As soon as MSGEQ7 began to send a signal high enough the Arduino was reset. Maybe turning power on made MSGEQ7 put pin 3 high. I don't have a scope to test. But now it does not matter anyway.

Go Up