This daughtercard finally showed up this afternoon. It seems to have the least luck so far.
PCB can be ordered here:
I guess there is a discrepancy on the two PCB. The layout of the main PCB was updated shortly after I found out that the audio connectors were flipped. In updating the PCB, I have decided to align the grid of the daughtercard connector to a 0.1" grid. Both PCB for the main and daughter cards and the 3D models released on github are the updated version with the correct spacing.
The daughtercard connector spacing is slightly wider than my main board prototype.
Here is how I make up for the wrong spacing for my main card. I use a bottom entry connector as their pins are 0.3" apart to accommodate the pins coming from the solder side of the PCB. I cut the dual row connector into a single row and bend the pins slightly for the right spacing.
This is how it will fit.
A bit of SMT soldering/ hot air reflow later.
The connector partially covers the resistors. It is actually not touching the resistors as they left a cavity in the connector for the pins.
This is how it look when the PCB are fitted together.
Errata:
☑ connector spacing on my prototype is incorrect. Already been fixed.I connected the ground of one of the TV audio inputs to the output ground with the alligator clip and now the hum is gone!
☑ Filter changed to 0805 600R ferrites as the I*R drop on the +/-5V rail is too high with the RC filter.
☑ Seems to be loud hums in the circuit. This is because the boards are floating and do not share ground with either the PC or the TV.
Looks like the loud click with the relay is also gone with the analog MUX! I haven't even implemented the code to minimize the glitch. Probably the glitch frequency is beyond the frequency response of the amplifier. :)
The SWD cable clears the daughter card as expected.
I made a modification on the PCB for the ground connection. I think at this point the hardware is considered as final with the exception of the loudness voltage divider values that I might tweak. I have uploaded an update on github.
I use 10K 1% resistors (blue). I sorted a batch of these resistors so that they are matched to 4 digits on my multimeter (i.e. within 10 ohms or within 0.1%) This is to maximize their common mode rejection.
Each of the following coloured groups of 4 resistors use resistors of the same values.
Glitchless switching
Original post date:09/01/2016This time it is with the daughtercard doing the switching. The audio switching is now glitch free. (The clicking noise is from my mouse button.)
I have added the loudness protection. The code is on github. The major features seem to be working well enough for my daily use.
Here are some scope captures of the loudness protection in action. It takes a few samples for the volume averaging to reach the threshold. Once the loudness threshold is crossed, the output signal is attenuated by a voltage divider and a timeout counter that gets reloaded. When the timer goes to zero, the loudness protection is reset. This behaviour is controlled by the firmware, so it can be tweaked.
This is the "Chiptune" background music for a trainer that is a bit too loud.
This is from a movie. The loudness protection kicks in right at the first narration.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.