Hello all,
I'm back again with an audio zero-cross detection circuit that I have desig ned based on valuable feedback from some of you (notably Jim Thompson and J ohn Fields). I am trying to gate an audio signal while avoiding clicks as i t switches on and off.
I'm submitting the LTSpice file here for your comments and also to ask why one thing does not seem to be working as intended:
The output from the two LM339 comparators seems to go all to hell once some part of input frequency goes over 1000 Hz or so. It all works fine at lowe r frequencies, and if there is just one comparator instead of two (but I ne ed two to handle zeroes at rising and falling). I haven't built the actual circuit in real parts (lab is a bit of a mess at the moment), but LTSpice i s usually far wiser than me, so I must have a flaw in the logic somewhere!
Thanks for your comments and help.
doug beeson
PS: Links for the referenced libraries are here:
Version 4 SHEET 1 1752 2420 WIRE -384 208 -384 192 WIRE -224 256 -224 240 WIRE -112 256 -112 240 WIRE 0 256 0 240 WIRE -384 288 -384 208 WIRE -224 288 -224 256 WIRE -112 288 -112 256 WIRE 0 288 0 256 WIRE -384 448 -384 368 WIRE -224 448 -224 368 WIRE -224 448 -384 448 WIRE -112 448 -112 368 WIRE -112 448 -224 448 WIRE 0 448 0 368 WIRE 0 448 -112 448 WIRE -112 480 -112 448 WIRE 624 672 624 640 WIRE 976 704 976 672 WIRE 320 736 320 720 WIRE 320 784 320 736 WIRE 784 784 768 784 WIRE 880 784 784 784 WIRE 1088 784 1072 784 WIRE -384 800 -448 800 WIRE -240 800 -304 800 WIRE 112 800 64 800 WIRE 288 800 192 800 WIRE 416 816 352 816 WIRE 624 816 624 752 WIRE 624 816 496 816 WIRE 672 816 624 816 WIRE 880 816 672 816 WIRE 288 832 208 832 WIRE -368 896 -368 864 WIRE 320 896 320 848 WIRE -704 912 -720 912 WIRE -624 912 -704 912 WIRE -448 912 -448 800 WIRE -448 912 -544 912 WIRE -400 912 -448 912 WIRE 320 912 320 896 WIRE -240 928 -240 800 WIRE -240 928 -336 928 WIRE -192 928 -240 928 WIRE -48 928 -112 928 WIRE 48 928 -48 928 WIRE 208 928 208 832 WIRE 208 928 48 928 WIRE -400 944 -416 944 WIRE -48 976 -48 928 WIRE 48 976 48 928 WIRE -704 1008 -720 1008 WIRE -624 1008 -704 1008 WIRE -448 1008 -544 1008 WIRE -416 1008 -416 944 WIRE -416 1008 -448 1008 WIRE 320 1008 320 992 WIRE 976 1008 976 928 WIRE -368 1024 -368 960 WIRE 976 1024 976 1008 WIRE -448 1072 -448 1008 WIRE -48 1072 -48 1040 WIRE 48 1072 48 1056 WIRE 48 1072 -48 1072 WIRE 48 1088 48 1072 WIRE 320 1088 320 1008 WIRE 48 1104 48 1088 WIRE 208 1104 208 928 WIRE 288 1104 208 1104 WIRE 416 1120 352 1120 WIRE 560 1120 496 1120 WIRE 624 1120 624 816 WIRE 624 1120 560 1120 WIRE 288 1136 208 1136 WIRE 128 1168 128 1136 WIRE 624 1184 624 1120 WIRE -448 1200 -448 1152 WIRE 320 1200 320 1152 WIRE 320 1216 320 1200 WIRE 128 1264 128 1248 WIRE 208 1264 208 1136 WIRE 208 1264 128 1264 WIRE 128 1280 128 1264 WIRE 624 1360 624 1248 WIRE 128 1408 128 1360 WIRE -496 1552 -704 1552 WIRE 528 1552 -496 1552 WIRE 768 1552 528 1552 WIRE 768 1600 768 1552 WIRE 992 1616 928 1616 WIRE -32 1648 -32 1616 WIRE 528 1648 528 1552 WIRE 528 1648 384 1648 WIRE 656 1648 528 1648 WIRE 384 1664 384 1648 WIRE 656 1664 656 1648 WIRE 992 1664 992 1616 WIRE 272 1680 272 1632 WIRE 384 1680 384 1664 WIRE 768 1680 704 1680 WIRE 832 1680 768 1680 WIRE 928 1680 928 1616 WIRE 928 1680 912 1680 WIRE -32 1696 -32 1648 WIRE 272 1728 272 1680 WIRE 272 1728 192 1728 WIRE 336 1728 272 1728 WIRE -704 1744 -704 1552 WIRE 336 1744 336 1728 WIRE 944 1744 864 1744 WIRE 1024 1760 992 1760 WIRE -32 1824 -32 1776 WIRE 32 1824 -32 1824 WIRE 192 1824 192 1728 WIRE 192 1824 112 1824 WIRE 384 1824 384 1760 WIRE 656 1824 656 1760 WIRE 656 1824 384 1824 WIRE 1024 1824 1024 1760 WIRE 1024 1824 656 1824 WIRE 1168 1824 1024 1824 WIRE -32 1872 -32 1824 WIRE 1168 1872 1168 1824 WIRE -704 1888 -704 1824 WIRE 1024 1888 1024 1824 WIRE 1024 1888 992 1888 WIRE 384 1904 384 1824 WIRE 656 1904 656 1824 WIRE 944 1904 864 1904 WIRE -304 1920 -320 1920 WIRE -224 1920 -304 1920 WIRE -96 1920 -144 1920 WIRE 192 1920 192 1824 WIRE 272 1920 192 1920 WIRE 336 1920 272 1920 WIRE 768 1984 704 1984 WIRE 832 1984 768 1984 WIRE 928 1984 912 1984 WIRE -32 2000 -32 1968 WIRE 272 2000 272 1920 WIRE 528 2000 384 2000 WIRE 656 2000 528 2000 WIRE -32 2016 -32 2000 WIRE 272 2016 272 2000 WIRE 928 2032 928 1984 WIRE 992 2032 992 1984 WIRE 992 2032 928 2032 WIRE -704 2048 -704 1968 WIRE 528 2144 528 2000 WIRE 768 2144 768 2064 WIRE 768 2144 528 2144 WIRE 528 2224 528 2144 WIRE -704 2384 -704 2128 WIRE -512 2384 -704 2384 WIRE 528 2384 528 2304 WIRE 528 2384 -512 2384 FLAG -112 480 0 FLAG -112 256 9V FLAG 0 256 -9V FLAG 320 736 9V FLAG 320 896 -9V FLAG 672 816 OUT FLAG -224 256 5V FLAG 624 640 5V FLAG 624 1360 0 FLAG 320 1008 9V FLAG 320 1200 -9V FLAG 560 1120 OUT FLAG 128 1408 0 FLAG 128 1136 5V FLAG 64 800 0 FLAG -368 864 9V FLAG -368 1024 -9V FLAG -448 1200 0 FLAG 1168 1872 0 FLAG 272 1680 B1 FLAG 272 2000 B2 FLAG 864 1744 B1 FLAG 864 1904 B2 FLAG 192 1824 155 FLAG -32 1648 9V FLAG -32 2000 0 FLAG -496 1552 AC+ FLAG -512 2384 AC- FLAG -704 912 AC+ FLAG -704 1008 AC- FLAG 784 784 ucout IOPIN 784 784 In FLAG 976 672 0 FLAG 976 1008 CLR FLAG -384 208 ucout IOPIN -384 208 Out FLAG -304 1920 GATE IOPIN -304 1920 In FLAG 1088 784 GATE IOPIN 1088 784 Out FLAG 48 1088 0 FLAG 528 2144 ACGATE SYMBOL Comparators/LM339 320 816 R0 SYMATTR InstName U1 SYMBOL voltage -704 1728 R0 SYMATTR InstName V1 SYMATTR Value SINE(0 7 2 0.1 0 0 8) SYMBOL voltage 0 272 R0 SYMATTR InstName V2 SYMATTR Value -9 SYMBOL voltage -112 272 R0 SYMATTR InstName V3 SYMATTR Value 9 SYMBOL res 608 656 R0 SYMATTR InstName R2 SYMATTR Value 7.5k SYMBOL voltage -224 272 R0 SYMATTR InstName V4 SYMATTR Value 5 SYMBOL schottky 640 1248 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D2 SYMATTR Value 1N5819 SYMATTR Description Diode SYMATTR Type diode SYMBOL res 512 800 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R3 SYMATTR Value 1k SYMBOL Comparators/LM339 320 1120 R0 SYMATTR InstName U2 SYMBOL res 512 1104 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R4 SYMATTR Value 1k SYMBOL res 112 1152 R0 SYMATTR InstName R5 SYMATTR Value 511K SYMBOL res 112 1264 R0 SYMATTR InstName R6 SYMATTR Value 511 SYMBOL ind 512 2208 R0 SYMATTR InstName L1 SYMATTR Value 0.7mH SYMATTR SpiceLine Rser=5.5 Cpar=1nF SYMBOL res -640 928 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R1 SYMATTR Value 1K SYMBOL res -528 992 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R7 SYMATTR Value 1K SYMBOL res -288 784 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 -26 0 VTop 2 SYMATTR InstName R8 SYMATTR Value 1K SYMBOL Opamps/UniversalOpamp2 -368 928 R0 WINDOW 3 16 -10 Left 2 SYMATTR Value LM324 SYMATTR InstName U3 SYMATTR SpiceModel lm324 SYMBOL res -464 1056 R0 WINDOW 0 46 40 Left 2 SYMATTR InstName R9 SYMATTR Value 1K SYMBOL nmos 336 1664 R0 SYMATTR InstName M1 SYMATTR Value PMV31XN SYMATTR Prefix X SYMBOL res 128 1808 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R10 SYMATTR Value 100 SYMBOL nmos 336 2000 M180 SYMATTR InstName M2 SYMATTR Value PMV31XN SYMATTR Prefix X SYMBOL res 752 1584 R0 SYMATTR InstName R11 SYMATTR Value 10k SYMBOL res 752 1968 R0 SYMATTR InstName R12 SYMATTR Value 10k SYMBOL res 928 1664 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R13 SYMATTR Value 100 SYMBOL res 928 1968 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R14 SYMATTR Value 100 SYMBOL nmos 944 1664 R0 SYMATTR InstName M3 SYMATTR Value PMV31XN SYMATTR Prefix X SYMBOL nmos 944 1984 M180 SYMATTR InstName M4 SYMATTR Value PMV31XN SYMATTR Prefix X SYMBOL pmos 704 1760 R180 SYMATTR InstName M5 SYMATTR Value PMV33UPE SYMATTR Prefix X SYMBOL pmos 704 1904 M0 SYMATTR InstName M6 SYMATTR Value PMV33UPE SYMATTR Prefix X SYMBOL npn -96 1872 R0 SYMATTR InstName Q1 SYMATTR Value 2N2222 SYMBOL res -128 1904 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 -26 0 VTop 2 SYMATTR InstName R15 SYMATTR Value 10K SYMBOL res -16 1792 R180 WINDOW 0 36 76 Left 2 WINDOW 3 36 40 Left 2 SYMATTR InstName R16 SYMATTR Value 1000 SYMBOL voltage -384 272 R0 WINDOW 3 -545 45 Left 2 SYMATTR Value PULSE(0 5 0.1 0.000001 0.000001 0.13 .79 5) SYMATTR InstName V5 SYMBOL CD4000/cd4013b 976 704 R0 SYMATTR InstName U4 SYMBOL voltage -704 1872 R0 SYMATTR InstName V6 SYMATTR Value SINE(0 4 515 0.1 0 20 1000) SYMBOL res 32 960 R0 SYMATTR InstName R17 SYMATTR Value 1k SYMBOL res -96 912 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 -26 0 VTop 2 SYMATTR InstName R18 SYMATTR Value 20K SYMBOL voltage -704 2032 R0 SYMATTR InstName V7 SYMATTR Value SINE(0 3 800 0.5 0 5 2000) SYMBOL schottky -32 1040 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D1 SYMATTR Value 1N5819 SYMATTR Description Diode SYMATTR Type diode SYMBOL res 208 784 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R19 SYMATTR Value 511 TEXT -920 256 Left 2 !.tran 3 startup uic TEXT 632 1520 Left 2 ;P-Channel TEXT 376 1520 Left 2 ;N-Channel TEXT 664 1656 Left 2 ;S TEXT 664 1880 Left 2 ;D TEXT 360 1648 Left 2 ;D TEXT 360 1776 Left 2 ;S TEXT 360 1872 Left 2 ;S TEXT 664 1768 Left 2 ;D TEXT 360 2008 Left 2 ;D TEXT 664 2008 Left 2 ;S TEXT 880 1520 Left 2 ;P-Channel driver TEXT -928 384 Left 2 !.inc PMV31XN.lib TEXT -928 424 Left 2 !.inc PMV33UPE.lib TEXT -928 464 Left 2 !.inc lm324.lib TEXT -1040 960 Left 2 ;ZCD and gate trigger TEXT -1144 1600 Left 2 ;Audio and NPN-PNP gate circuit TEXT -712 744 Left 2 ;unit gain difference amp TEXT -184 840 Left 2 ;ensure V > -0.6 TEXT 688 1208 Left 2 ;clamp to GND TEXT 712 608 Left 2 ;John Fields idea to use D-type flip flop for gate c ontrol TEXT -632 136 Left 2 ;uController will signal gate ON/OFF but actual switch ing will be subject to ZCD. TEXT -1304 2088 Left 2 ;*** ZCD output goes wonky when f > 1000Hz or so TEXT 40 1256 Left 2 ;5 mV