Hallo Leute,
ich möchte euch heute mal mein aktuelles Projekt vorstellen mit dem ich mich die letzten Wochen beschäftigt habe, soweit es meine knappe Freizeit zugelassen hat.
Ich wußte nicht ob das ganze überhaupt funktionieren wird oder ob es Sinn macht. Ich hatte einfach Lust es so zu machen und für bis jetzt 15 Euro Materialkosten hatte ich sehr viele Stunden Spaß an dem Projekt.
Mein nächstes größerer Projekt soll eine Subwoofer-Weiche sein, die ich hier zuhause für meine 2 Subwoofer verwenden möchte. Dafür habe ich jetzt dieses Teilprojekt gestartet. Durch meine Recherchen im Internet ist mir klar geworden, das Phasenregler eigentlich nur Pfusch sind, um einen Subwoofer, der ja logischerweise woanders steht wie die Sateliten, vernünftig an diese anzubinden. Das einzige wahre ist ein Delay um die Laufzeitdifferenzen auszugleichen. Ob so ein Delay was bringt oder nicht weiß ich nicht. Aber interessieren tut es mich auf jeden Fall. Ein weiterer Grund für mich dieses Projekt durchzuführen.
Also habe ich mir Gedanken gemacht wie ich das ganze einfach und vor allem kostengünstig lösen kann. DSP-Lösungen sind für mich wegen des zu hohen Preises ausgefallen, vor allem, da ich ja nicht weiß ob das ganze überhaupt das bringt was es kostet...
Hier mal einige Rechnungen die ich zu Anfang des Projektes aufgestellt habe. Ich hoffe die überprüft mal jemand ob das auch stimmt was ich mir da zusammengedacht habe:
Ich wollte das Delay direkt in 5cm-Schritten per Tasten und per RS232 einstellbar machen. Die Ausbreitung von Schall in Luft nehme ich mal mit 343m/s an.
Das beduetet für 5 cm ist die Delay-Länge: 343m/s / 0,05m = 6860 1/s bzw. 145,8 µS
Somit habe ich auch gleich meine Samplingrate für die digitale Aufzeichnung: 6860 Hz. Geworden sind es im moment aus programmtechnischen Gründen 6849 Hz. Aber diese Abweichung sollte egal sein.
Ich zeichne also 6849 mal in der Sekunde per ADC einen Wert in einen Ringspeicher auf. Der Ringspeicher ist 256 Werte groß, ich kann also ein Delay von 256 x 5cm = 1295cm also fast 13 Meter einstellen. Je nach Delay-Einstellung schaue ich dann x Werte zurück in den Speicher und gebe diesen Wert über einen DAC wieder aus. Bei Delay = 0 wird der Wert einfach direkt wieder ausgegeben.
Als Controller für das ganze habe ich mir einen ATMega8 ausgesucht den ich an einem 8MHz Quartz laufen lasse. Wegen dem 8 Mhz dann auch die 6849 Hz, das ist der näheste Wert der mir mit den eingebauten Timern im Atmel möglich war zu erreichen.
Da das ganze ja günstig sein sollte verwende ich auch gleich den internen 10 Bit ADC im Atmel um die Werte einzulesen. Als DAC habe ich ein 10 Bit R2R-Netzwerk gebaut. Günstiger geht es wohl nicht.
Hier mal der Schaltplan des ganzen im Din A3 PDF-Format:
Schaltplan
Oben links die ISP-Programmier-Schnittstelle, damit ich den Controller in der Schaltung programmieren kann. Hier ist auch gleich noch ein LCD-Display angeschlossen das bei der Entwicklung sehr hilfreich war um zu schauen was der Controller so treibt. Gleich Rechts davon eine RS232-Schnittstelle mit der ich das Delay auch einstellen kann. (Für später in der großen Weiche) Noch weiter rechts die Eingänge für die Tasten und eine Status-Led für den Benutzer die Rot oder Grün leuchten kann. Unterhalb vom ISP noch der Einschalt-Reset und der Quarz.
Dann kommt darunter das Netzteil. Eingangsspannung soll 12V DC sein. Davon werden 5V für den Controller und 9V für die OP's erzeugt. Die Masse für digital und analog habe ich mal getrennt gelassen und am Netzteil zusammengeführt.
Rechts dann noch meine Referenzspannungs-Erzeugung von 4,5V für den ADC. Und die hälfte davon für die virtuelle Masse der OP's.
Die Eingangsschaltung ist nichts besonderes, außer das ich für Diagnose-Zwecke eine Signal-Ok Erkennung und eine Clip-Erkennung eingebaut habe. In der endgültigen Version kann man das wohl weg lassen. Um möglichst wenig Verlußt durch die ADC/DAC-Wandlung mit nur 10 Bit zu haben wollte ich ein möglichst hohes Eingangssignal haben. Dafür die Verstärker-Stufe um N1:B. Wenn der Wert über 3,6V liegt leuchtet eine grüne Led für Signal Ok. Darunter noch die Clip-Erkennung, wenn das verstärkte Eingangssignal über 4,5V oder unter 0,2V liegt. Hierfür dann noch eine rote Led.
Dann noch der R2R-DAC und das wars auch schon. Aus diesem Schaltplan ist dann folgendes Layout enstanden:
Layout
Bestückung oben
Bestückung unten
Den R2R habe ich mal durchgemessen. Die größte Abweichung in der Mitte um 2,25V (wo das Signal ja am leisesten ist) waren 10,5mV. Die insgesamt größte Abweichung war 11,3mV. Eigentlich ganz schön, wenn ein Bit nur 4,9mV sein soll. Dafür isses aber günstig. :-)
Tja, dann liefere ich mal ein paar Bilder vom Bau des Prototypen:
Zuerst mal ganz viele Tütchen von meinem Lieblings-Lieferanten. Kenner erkennen das sofort. :-) Und die Platine natürlich, die ich selbst hergestellt habe.
Hier nochmal die Platine aus der Nähe. Wer findet die 3 Löcher, die ich vergessen habe zu bohren?
Der R2R-Wandler wurde zuerst bestückt. Ich habe 1% 0805 SMD-Widerstände verwendet. So klein hatte ich vorher noch nicht gelötet und war etwas aufgeregt, vor allem wenn man die Lötspitze sieht. War aber alles Problemlos und hat wunderbar geklappt.
Der restliche SMD-Kram ging dann Ruck-Zuck.
Dann noch schnell die Oberseite mit den "großen" Bauteilen bestückt und fertig war das ganze schon. Für den ATMega habe ich den falschen Sockel erwischt, deswegen habe ich mir diesen Adapter hier zusammengelötet. Das kommt davon wenn man die Platine ätzt bevor das Material da ist...
Und hier ein Bild von meinem Versuchsaufbau mit Programmiergerät und Display.
Und das Display noch mal aus der Nähe. Ist zwar für den späteren Gebrauch völlig unnötig, aber damit hält man sich immer am längsten auf...
Tja, was soll ich sagen, es funktioniert grob. Die Störgeräusche sind natürlich noch unter alles Sau, aber es kommt hinten das raus was vorne eingespeißt wird. Das digitale Rauschen übertönt aber noch fast alles. Hier muss noch stark verbessert werden. Aber ich wollte das ganze jetzt erst mal hier vorstellen und auf ein paar Kommentare, Tipps und Anregungen von euch Profis hier warten.
Viele Grüße
Andreas
ich möchte euch heute mal mein aktuelles Projekt vorstellen mit dem ich mich die letzten Wochen beschäftigt habe, soweit es meine knappe Freizeit zugelassen hat.
Ich wußte nicht ob das ganze überhaupt funktionieren wird oder ob es Sinn macht. Ich hatte einfach Lust es so zu machen und für bis jetzt 15 Euro Materialkosten hatte ich sehr viele Stunden Spaß an dem Projekt.
Mein nächstes größerer Projekt soll eine Subwoofer-Weiche sein, die ich hier zuhause für meine 2 Subwoofer verwenden möchte. Dafür habe ich jetzt dieses Teilprojekt gestartet. Durch meine Recherchen im Internet ist mir klar geworden, das Phasenregler eigentlich nur Pfusch sind, um einen Subwoofer, der ja logischerweise woanders steht wie die Sateliten, vernünftig an diese anzubinden. Das einzige wahre ist ein Delay um die Laufzeitdifferenzen auszugleichen. Ob so ein Delay was bringt oder nicht weiß ich nicht. Aber interessieren tut es mich auf jeden Fall. Ein weiterer Grund für mich dieses Projekt durchzuführen.
Also habe ich mir Gedanken gemacht wie ich das ganze einfach und vor allem kostengünstig lösen kann. DSP-Lösungen sind für mich wegen des zu hohen Preises ausgefallen, vor allem, da ich ja nicht weiß ob das ganze überhaupt das bringt was es kostet...
Hier mal einige Rechnungen die ich zu Anfang des Projektes aufgestellt habe. Ich hoffe die überprüft mal jemand ob das auch stimmt was ich mir da zusammengedacht habe:
Ich wollte das Delay direkt in 5cm-Schritten per Tasten und per RS232 einstellbar machen. Die Ausbreitung von Schall in Luft nehme ich mal mit 343m/s an.
Das beduetet für 5 cm ist die Delay-Länge: 343m/s / 0,05m = 6860 1/s bzw. 145,8 µS
Somit habe ich auch gleich meine Samplingrate für die digitale Aufzeichnung: 6860 Hz. Geworden sind es im moment aus programmtechnischen Gründen 6849 Hz. Aber diese Abweichung sollte egal sein.
Ich zeichne also 6849 mal in der Sekunde per ADC einen Wert in einen Ringspeicher auf. Der Ringspeicher ist 256 Werte groß, ich kann also ein Delay von 256 x 5cm = 1295cm also fast 13 Meter einstellen. Je nach Delay-Einstellung schaue ich dann x Werte zurück in den Speicher und gebe diesen Wert über einen DAC wieder aus. Bei Delay = 0 wird der Wert einfach direkt wieder ausgegeben.
Als Controller für das ganze habe ich mir einen ATMega8 ausgesucht den ich an einem 8MHz Quartz laufen lasse. Wegen dem 8 Mhz dann auch die 6849 Hz, das ist der näheste Wert der mir mit den eingebauten Timern im Atmel möglich war zu erreichen.
Da das ganze ja günstig sein sollte verwende ich auch gleich den internen 10 Bit ADC im Atmel um die Werte einzulesen. Als DAC habe ich ein 10 Bit R2R-Netzwerk gebaut. Günstiger geht es wohl nicht.
Hier mal der Schaltplan des ganzen im Din A3 PDF-Format:
Schaltplan
Oben links die ISP-Programmier-Schnittstelle, damit ich den Controller in der Schaltung programmieren kann. Hier ist auch gleich noch ein LCD-Display angeschlossen das bei der Entwicklung sehr hilfreich war um zu schauen was der Controller so treibt. Gleich Rechts davon eine RS232-Schnittstelle mit der ich das Delay auch einstellen kann. (Für später in der großen Weiche) Noch weiter rechts die Eingänge für die Tasten und eine Status-Led für den Benutzer die Rot oder Grün leuchten kann. Unterhalb vom ISP noch der Einschalt-Reset und der Quarz.
Dann kommt darunter das Netzteil. Eingangsspannung soll 12V DC sein. Davon werden 5V für den Controller und 9V für die OP's erzeugt. Die Masse für digital und analog habe ich mal getrennt gelassen und am Netzteil zusammengeführt.
Rechts dann noch meine Referenzspannungs-Erzeugung von 4,5V für den ADC. Und die hälfte davon für die virtuelle Masse der OP's.
Die Eingangsschaltung ist nichts besonderes, außer das ich für Diagnose-Zwecke eine Signal-Ok Erkennung und eine Clip-Erkennung eingebaut habe. In der endgültigen Version kann man das wohl weg lassen. Um möglichst wenig Verlußt durch die ADC/DAC-Wandlung mit nur 10 Bit zu haben wollte ich ein möglichst hohes Eingangssignal haben. Dafür die Verstärker-Stufe um N1:B. Wenn der Wert über 3,6V liegt leuchtet eine grüne Led für Signal Ok. Darunter noch die Clip-Erkennung, wenn das verstärkte Eingangssignal über 4,5V oder unter 0,2V liegt. Hierfür dann noch eine rote Led.
Dann noch der R2R-DAC und das wars auch schon. Aus diesem Schaltplan ist dann folgendes Layout enstanden:
Layout
Bestückung oben
Bestückung unten
Den R2R habe ich mal durchgemessen. Die größte Abweichung in der Mitte um 2,25V (wo das Signal ja am leisesten ist) waren 10,5mV. Die insgesamt größte Abweichung war 11,3mV. Eigentlich ganz schön, wenn ein Bit nur 4,9mV sein soll. Dafür isses aber günstig. :-)
Tja, dann liefere ich mal ein paar Bilder vom Bau des Prototypen:
Zuerst mal ganz viele Tütchen von meinem Lieblings-Lieferanten. Kenner erkennen das sofort. :-) Und die Platine natürlich, die ich selbst hergestellt habe.
Hier nochmal die Platine aus der Nähe. Wer findet die 3 Löcher, die ich vergessen habe zu bohren?
Der R2R-Wandler wurde zuerst bestückt. Ich habe 1% 0805 SMD-Widerstände verwendet. So klein hatte ich vorher noch nicht gelötet und war etwas aufgeregt, vor allem wenn man die Lötspitze sieht. War aber alles Problemlos und hat wunderbar geklappt.
Der restliche SMD-Kram ging dann Ruck-Zuck.
Dann noch schnell die Oberseite mit den "großen" Bauteilen bestückt und fertig war das ganze schon. Für den ATMega habe ich den falschen Sockel erwischt, deswegen habe ich mir diesen Adapter hier zusammengelötet. Das kommt davon wenn man die Platine ätzt bevor das Material da ist...
Und hier ein Bild von meinem Versuchsaufbau mit Programmiergerät und Display.
Und das Display noch mal aus der Nähe. Ist zwar für den späteren Gebrauch völlig unnötig, aber damit hält man sich immer am längsten auf...
Tja, was soll ich sagen, es funktioniert grob. Die Störgeräusche sind natürlich noch unter alles Sau, aber es kommt hinten das raus was vorne eingespeißt wird. Das digitale Rauschen übertönt aber noch fast alles. Hier muss noch stark verbessert werden. Aber ich wollte das ganze jetzt erst mal hier vorstellen und auf ein paar Kommentare, Tipps und Anregungen von euch Profis hier warten.
Viele Grüße
Andreas
Kommentar