Für meien Master-Thesis würde ich gerne ein DSP-System zur Audiosignalverarbeitung entwickeln. Das System soll über zwei unbalanced Eingänge und vier oder sechs unbalanced Ausgänge verfügen. Im DSP sollen dann 2- oder 3-Wege Stereo-Frequenzweiche, Parametrische Equalizer, Kompressor, Limiter und Subharmonic synthesizer implementiert werden. Die Verarbeitung soll in Audiotypischer Samplerate und mit 24Bit erfolgen. Desweiteren sollen noch ein LCD-Display und ein LED-VU-Meter angesteuert werden. Über einen I2S-Eingang soll es möglich sein, ein digitales Stereo-Signal einzukoppeln (beispielweise aus einem Bluetooth-Audio-Empfänger) Die Masterarbeit ist noch nicht angemeldet und steht noch ein wenig in zeitlicher Ferne. Dennoch würde ich mich gerne schon mal mit der Machbarkeit dieses Vorhabens auseinandersetzen. Praktisch gesehen werde ich einen DSP-Prozessor auswählen, DACs und ADCs wählen, die Platine dafür entwickeln und die genannten Features in Software implementieren. Wenn ich im Zuge der Masterarbeit nicht alle Features implementiert bekomme weil die Zeit fehlt ist das ok, das System sollte aber Leistungsfähig genug sein, um die fehlenden Features später problemlos nachrüsten zu können, da ich es für private Zwecke weiter verwenden und ausbauen möchte. Nur wie fängt man da an? Ich nehme an, zuerst suche ich mir einen passenden DSP-Prozessor aus. Kostenloser C-Compiler ohne Codegrößen-, Laufzeit- oder Codeoptimierungsbeschränkung ist sicher pflicht. Nun habe ich aber 1x Stereo Analog In, 1x I2S In, und 3x Stereo Analog Out. D.h. Ich benötige entsprechend viele Hardware-Kommunikationsschnittstellen am DSP. Beim Stöbern ist mir jedoch aufgefallen, dass das gar nicht unbedingt so üblich zu sein scheint. Da ist dann von 2..3 I2S-Schnitstellen die Rede, benötigen würde ich aber gleich mal 5. Wieder andere DSPs verwenden andere Schnittstellen oder z.B. TDM, welches aber nur in Verbindung mit einem größeren all-in-one Codec zu gebrauchen sein dürfte und damit die Auswahl an benutzbaren Bauteilen einschränkt, da das meiste ja für I2S zu bekommen sein dürfte. Habe ich nur an der flaschen Stelle gesucht? Nach welchen Kriterien also sollte ich einen DSP aussuchen? Gruß, ein Etit-Student
Etit-Student schrieb: > Nun habe > ich aber 1x Stereo Analog In, 1x I2S In, und 3x Stereo Analog Out. D.h. > Ich benötige entsprechend viele Hardware-Kommunikationsschnittstellen am > DSP. Beim Stöbern ist mir jedoch aufgefallen, dass das gar nicht > unbedingt so üblich zu sein scheint. Da ist dann von 2..3 > I2S-Schnitstellen die Rede, benötigen würde ich aber gleich mal 5. Nicht unbedingt. Die reine Signalverarbeitung ist das eine. Das Routing der Signale ist das andere. Beides kann, muss aber nicht im gleichen Gerät stattfinden. Stichwort: Matrix mixer https://en.wikipedia.org/wiki/Matrix_mixer Mir scheint, Du willst quasi so etwas bauen? http://www.extron.de/product/printable.aspx?id=dmp64
Nach Möglichkeit wollte ich gerne alles in einem Baustein erledigen, sonst handle ich mir wieder zusätzlichen Overhead mit der Kommunikation zwischen Router und Prozessor ein, das wird dann alles wieder eine Nummer komplizierter.
Ach ja, die Verarbeitung sollte mit 96kHz Samplerate erfolgen damit das Antialiasing- und Rekonstruktionsfilter einfach gehalten werden kann. Die Samplingtiefe soll 24Bit betragen um genug Headroom auch für hohe Eingangspegel zu erhalten.
Hallo, ich bin gerade an einem ähnlichen Projekt dran: Grundsätzlich gibt es im großen und ganzen drei Möglichkeiten das irgendwie zu realisieren. 1. Es gibt Audio-DSPs wo alles auf einem einzigen IC integriert ist. z.B. der ADAU1701. AD an Board, DA an Board, bis zu 8 digitale Audio Ein- und Ausgänge. TI hat da auch paar ähnliche Chips. Konfiguration bei dem ADAU z.B. erfolgt graphisch, dass du dir da einen Signalpfad zusammenkonfigurieren kannst. 2. Du baust dir ein eigenes DSP-System auf. Mit eigenen AD-Wandlern, eigenen DA-Wandlern und einem dickeren DSP-Baustein. Das sind dann DSPs, die du wenn du willst direkt in einer Sprache wie z.B. C Programmieren kannst, wenn du willst um deine eigenen Filteralgorithmen zu implementieren. Von der Komplexität natürlich eine deutliche Stufe über das wie in 1. Du musst ne PLL mit drauf machen um die Master-Clock zu generieren, musst beim Leiterplattenlayout ein bisschen aufpassen. 3. Du machst das ganze wie in 2. nimmst aber einen FPGA als Baustein und baust dir deinen DSP per Hardwaresprache zusammen. Paramter können ja z.B. über ein I2C Modul von außen trotzdem geändert werden.
Moin, Ich schaetz' die Zeitdauer fuer so eine Masterarbeit mal auf <=6 Monate. In dieser Zeit kann man nicht allzuviel wuppen. Nochdazu weil man ja auch noch Zeit braucht, dan ganzen Kram auf viele Seiten Papier zu bringen, sich mit der Textverarbeitung entsprechend auseinandersetzen,etc. bla. In dieser Zeit ein komplettes HW-Design eines Multilayer-PCBs ggf. noch mit DDRx-SDRAM Interface, also impedanzkontrollierten Bussen... eieiei... das ist "ambitioniert". Davon ausgehend wuerd' ich eher die Sache andersrum aufziehen: Welche Bausteine lassen sich moeglichst simpel auf ein Board bringen? welche Erfahrungen beim Erstellen von Layouts hab' ich, die Hochschule? welches Gehaeuse haben die Bausteine, kann ich das ueberhaupt "verschaffen"? Beispiel: Die popeligsten DSPs vom TI, C55x Serie kommen im 0.65mm bzw. 0.8mm Pitch BGA Gehaeuse daher. Da ist erstmal voellig wurst, ob die 24bit oder 25.3 bit Audiosamplebreite koennen - da musst du erstmal ein Board routen (lassen), fertigen (lassen) und bestuecken (lassen) koennen, bevor das interessant wird... Gruss WK
Aber mal eine Frage: Audio-DSPs mit zwei Eingängen und vier/sechs Ausgängen gibts doch schon seit Jahren in allen Möglichen Variationen für Industrieeinsatz, ELA-Technik, CarHifi, Veranstaltungstechnik, Hifi, etc... zu kaufen? Wo ist da der Reiz eine Master-Thesis drüber zu schreiben?
Variante 1 und 2 scheinen mir am praktikabelsten. Variante 1 ist natürlich interessant bezüglich der einfachen Realisierung, allerdings schätze ich, dass ich da einfach zu beschränkt in meinen Möglichkeiten bin. Kann man da einfach eine I2S-Quelle anschließen? Kann man einfach mitten im Verarbeitungspfad die Audiodaten abgreifen und eigene Berechnungen damit nebenher durchführen um ein VU-Meter zu realisieren? Sind so etwas wie Kompressor und Subharmonic Synthesizer damit überhaupt konfigurierbar oder muss man sich das dann selber zusammencoden? Und wenn letzteres: Hat man überhaupt die Möglichkeit, eigene Algorithmen zu implementieren? Wie läuft das eigentlich ab mit diesem SigmaStudio. Klickt man sich da einfach nur alles zusammen und flasht es auf den DSP und das wars dann? Oder Generiert SigmaStudio lediglich Code, den man dann noch nach belieben Verändern und (um die genannten Features) erweitern kann? Sind das also Closed-Source Fertigbausteine oder sind die frei programmierbar? Variante 2 ist, falls mich Variante 1 jetzt nicht gerade noch umhaut, eher das, was ich möchte. Die Masterarbeit soll ja auch einen gewissen Anspruch erfüllen, außerdem möchte ich mit dem System wirklich flexibel sein. Im Zuge der Masterarbeit reicht es, wenn der DSP ein fixes Routing mit Frequenztrennung übernimmt! Alles weiteren Features kann ich dann in Eigenregie nach der Masterarbeit noch implementieren. Das ist auch der Grund warum ich überhaupt ein eigenes System entwickeln möchte. Die ganzen kaufbaren Systeme bieten eine Reihe an Features, sind aber darüberhinaus nicht anpassbar und alle closed-source. Ich möchte jedoch maximale Flexibilität und die Freiheit, ein bereits lauffähiges System beliebig anzupassen und jeden erdenklichen Algorithmus implementieren zu können, sei es Level-Meter, BPM-Erkennung, Limiter oder Subharmonic Synthesizer. Dementsprechend muss der DSP natürlich genug Leistungsreserven haben um bei 24bit/96khz all diese Verarbeitungsalgorithmen auf 4 Kanälen bereitstellen zu können. Zum gegenwärtigen Zeitpunkt habe ich noch überhaupt keine Vorstellung, wie viel Rechenleistung dafür in der Praxis tatsächlich notwendig ist. Am ärgerlichsten wäre es, am Ende ein lauffähiges System zu haben, in das ich mich bereits eingearbeitet habe, aber dann nicht alles implementieren zu können, da die Rechenleistung nicht ausreicht. Auf superkomplexes Hardware-Design möchte mit >2-Layer-Platinenlayout muss ich natürlich während der Masterarbeit verzichten. Hersteller professioneller DSP-Systeme die meinen oben genannten Anforderungen genügen schaffens aber auch ohne, dass deren Platinen nach Raketentechnik aussehen, das gibt mir Hoffnung :-)
Am einfachsten wird sein, du beschaffst dir ein evaluation Board. Da gibts ja einige im Audio-Bereich. Schau dir doch mal z.B. so einen DSP von Behringer an, hat 3 Ins, 6 Out so wie du es brauchst. http://s130.photobucket.com/user/dropped99silverado/media/Avalanche/SAM_0353.png.html Schau dir mal die Platine in der Mitte an, was ich da schonmal sehe ist ein minimum 144 Pin Sharc-DSP, wenn nicht wahrscheinlich eher noch mehr Pins und externe Ram-Bausteine und extern AD und DA Wandler. Die Platine wird minimum mal 4 Layer haben. Die Beschaffung der Bauteile sollte jetzt nicht so schwer werden. Aber bis das alles sauber läuft ist das normalerweise ein Projekt wo gerne mal 2-3 erfahrene ING's ein Jahr lang beschäftigt werden können.
Egal schrieb: > Am einfachsten wird sein, du beschaffst dir ein evaluation Board. > Da gibts ja einige im Audio-Bereich. Sehe ich auch so. Hardware und Software von Grund auf zu erstellen und alles sauber zu dokumentieren - dafür wird die Zeit vermutlich nicht reichen.
huh, 4-6 Entwicklungsjahre Vollzeit um eine Platine für einen DSP mit DACs und ADCs zu entwickeln und eine Frequenzweiche zu implementieren? Ist das nicht etwas viel? :-O Sobald man sich die Komponenten zusammengesucht und die Platine designt hat kann man ja schon beginnen, einen simplen Allpass zu implementieren, soll heißen den Eingang direkt auf den Ausgang routen. Die restlichen Features können dann so nach und nach implementiert werden. Wie gesagt reicht für die Masterarbeit ein Minimum Signalverarbeitungstechnischem Umfang, also ein paar einfache IIR-Filter völlig aus. Ziel der Sache ist ja nur, im Rahmen der Arbeit ein nachhaltiges System zum hobbymäßigen weiterentwickeln zu schaffen. Insofern wäre mir die Entwicklung einer Platine schon ganz recht. Mit einem Devboard allerdings könnte ich natürlich schnell erst mal lauffähige Ergebnisse produzieren, mich völlig auf die Software konzentrieren, Features implementieren und dann später, außerhalb der Thesis mich an die Entwicklung einer eigenen Platine machen. Lieber wär's mir aber umgekehrt. Zugegeben habe ich nur wenig Erfahrung darin, was (neben Thesis schreiben) zur Entwicklung einer Lauffähigen Platine und einer minimalimplementierung eines IIR-Algorithmus alles an Arbeitsschritten erforderlich ist. Vor allem die Einarbeitung in den DSP wird dauern. Meine bisherige Erfahrung beläuft sich auf das Design einfacher Platinen und die Programmierung von Atmel 8-Bit Mikrocontrollern.
Etit-Student schrieb: > Kostenloser C-Compiler ohne Codegrößen-, > Laufzeit- oder Codeoptimierungsbeschränkung ist sicher pflicht. Wenn Du einen findest, dann sag Bescheid ;-) Etit-Student schrieb: > huh, 4-6 Entwicklungsjahre Vollzeit um eine Platine für einen DSP mit > DACs und ADCs zu entwickeln und eine Frequenzweiche zu implementieren? > Ist das nicht etwas viel? :-O Nein, ist es nicht. DSP ist "etwas" komplexer als ein Arduino. Aber das haben die Anderen Dir auch schon geschrieben. Grüße Andreas
Etit-Student schrieb: > huh, 4-6 Entwicklungsjahre Vollzeit um eine Platine für einen DSP > mit > DACs und ADCs zu entwickeln und eine Frequenzweiche zu implementieren? > Ist das nicht etwas viel? :-O Unterschätze die Komplexität nicht. Ein Produkt, wofür jemand Geld bezahlen soll, ist was anderes als eine schnell zusammengehackte Bastelplatine. Du hast Lieferzeiten von Bauteilen und PCBs, u.U. Bauteilabkündigungen, womöglich noch Bugs im Layout, musst vielleicht noch CE-/EMV-Prüfungen machen. Den selben Spaß hast du dann nochmal bei der Software - mal passt was in der Buildumgebung nicht, mal kämpfst du mit Prozessor-spezifischen Eigenarten, dann stellst du womöglich fest, dass deine Software zwar funktioniert und Grundanforderungen erfüllt - aber mehr auch nicht. So kann deine Appliance bei dir funktionieren, beim Kunden aber womöglich dessen Anforderungen überhaupt nicht erfüllen. Alleine die Planung, welche Anforderungen du erfüllen willst und auch welche du nicht erfüllen willst, kostet Zeit. Der Lebenszyklus eines richtigen Produkts - egal ob Hardware oder Software - ist halt mehr als nur mal fix 'ne Schaltung zusammengeklickt und schnell noch drei, vier Funktionen zusammengeschrieben.
Tach, wo ist das Problem? Die üblichen Verdächtigen können das schon lange. Ein gutes altes Blackfin BF533 EZKIT hat entsprechende HW gleich schon drauf. Da gehen Stereo in und 6 Kanal out. Da du aber noch die Platine machen willst: mit unter 4 Lagen ist da nix. Du könntest höchstens die Ansprüche etwas herunterskalieren (würde ich mal so raten) und eine kleinere Variante, die noch gut lötbar ist, einsetzen, z.B. den BF592. Und zum Thema Compiler: GCC ist immer noch kostenlos und nicht beschränkt in der Codegrösse. Damit fällt die Auswahl schon mal leichter :-) Nur bei den Debug-Tools gibt's halt deutliche Preisunterschiede und ADI war in den letzten 10 Jahren gut darin, eine Menge Konfusion mit unterschiedlichen, zueinander nicht kompatiblen Tools zu schaffen. Ist aber beim anderen Platzhirsch TI nicht besser.
Sag mal an welcher Uni kann man denn eine Masterarbeit (!) einfach nach eigenen Hobbyprojekten anmelden, die so gut wie keinen wissenschaftlichen Anspruch haben? Und das soll dann gleichwertig mit einem Masterabschluss sein, der tatsächlich aktuelle Forschungsthemen in der Arbeit zum Thema hatte und wo der Masterand etwas zwar einfaches, aber neues macht?
Etit-Student schrieb: > Das System soll über zwei unbalanced > Eingänge und vier oder sechs unbalanced Ausgänge verfügen Mit der Festlegung schießt Du Dein Audio-System schon in die B-Liga.
Horst schrieb: > Sag mal an welcher Uni kann man denn eine Masterarbeit (!) einfach nach > eigenen Hobbyprojekten anmelden, die so gut wie keinen > wissenschaftlichen Anspruch haben? Längst nicht jede Diplomarbeit hatte früher einen hoch wissenschaftlichen Anspruch. Die Masterarbeiten heute werden da auch nicht viel anders sein. Dafür gibt es einfach zu viele "Masteranden" und zu wenige Forschungsfelder, auf denen jemand mit Anfang/Mitte 20 wirklich neue Erkenntnisse zu liefern vermag. Abgesehen davon: Es muss natürlich immer einen Professor geben, der die Arbeit betreut. Wenn der mit dem Thema einverstanden ist, dann kann es auch so durchgeführt werden. Wissenschaftlicher Anspruch hin oder her.
:
Bearbeitet durch User
Mark B. schrieb: > Längst nicht jede Diplomarbeit hatte früher einen hoch > wissenschaftlichen Anspruch. Sehe ich auch so. Schließlich geht es um den Eintritt in das Ingenieurleben und was da gemacht wird, ist auch meistens nicht wissenschaftlich, sondern es geht um die Nutzung wissenschaftlicher Erkenntnisse und Realisation. Die Frage ist, ob man dann nicht auch mal was bauen sollte, was modern ist, also sozusagen on top. Was ist momentan in der Audiotechnik hipp? Du studierst in Darmstadt am "Etit"? Schau Dir mal an, was an den einschlägigen Hochschulen im Bereich Audio bzw am ETI in Detmold und der UDK Berlin diesbezüglich gerade gemacht wird. Was Du vorhast, ist alles schon 1000mal da. Bis vielleicht auf den "Sub harmonic Synthesizer" dessen Funktion mir in einem Audioprozessor nicht ganz einleuchtend ist.
Halt wo ist denn die Rede davon dass er in Darmstadt studiert?? Wenn das der Fall ist und er ist an der TU, dann melde dich mal bei Prof. Henning, der Audiosignalverarbeitung macht. So Sachen wie Noice-Cancelation mit Wiener Filter und so ist interessant und ein Thema was relativ aktuell ist oder gerichtetes Hören bei Hörgeräten. Den ersten Audio DSP den ich hatte war ein Dynacord dsp224. Baujahr 94. Das Thema ist echt durch.
Google liefert unter ETIT ein Elektrotechnik-Institut in Darmstadt. Ich hatte es zudem als Frage formuliert. Liege ich richtig?
Danke für die Beiträge. Ja, es handelt sich um die TU-Darmstadt ;-) Ob der zukünftige Betreuer meinen Projektvorschlag so hinnimmt werde ich natürlich sehen müssen. Eventuell soll ich mich doch eher mit aktuellen Themen beschäftigen. Alles bringt mir am Ende Erfahrung ein, sei es nun ein Projekt aus dem aktuellen Forschungsgebiet oder etwas, das seit 20 Jahren schon tausende Male gemacht wurde. Deswegen ist der Anspruch für mich persönlich ja nicht geringer. Ich verstehe nur eure Aussagen zur Machbarkeit noch nicht ganz. Ich wüsste nun wirklich nicht was ich mehrere Jahre bräuchte um einem lauffähigen Prototypen eines DSP-Systems mit einfacher digitaler Filteranwendung zu erschaffen. Mit einem TI F28069 Piccolo controlSTICK habe ich innerhalb von 2 Wochen auch schon mal eine Frequenzbeschränkung realisiert. Hier belief sich die Arbeit zugegeben nur auf Einarbeitung in den Prozessor, ein bisschen Copy&Paste, was den Code angeht, und die Infrastruktur, sprich Platine usw. war auch schon vorhanden. Aber angenommen ich fange mit einem Demoboard an und beschränke mich während der Masterarbeit erst mal auf die Programmierung und implementiere so viel, wie ich schaffe (kann man ja sicher mit dem Betreuer noch absprechen). Hinterher kann ich immer noch eine eigene Platine etnwickeln. Ich will ja kein professionelles vermarktungsfähiges Gerät komplett fertigentwickeln sondern etwas in der DSP-Technik lernen und mich damit beschäftigen. Ich denke da über meine Masterarbeit hinaus, ich will nachhaltig einarbeiten. OK, ich sehe es ein, ich schraube meine Ansprüche runter! Für den Anfang muss es natürlich kein komplizierterer Prozessor sein als für die Berechnung von einigen Filtern mit ein wenig Rechenreserve für ein paar weitere DSP-Effekte tatsächlich notwendig ist. 4-Kanal Out reicht ja auch. Natürlich wäre es schön, wenn man gleich ein System nimmt bei dem die Rechenkapazität quasi unbeschränkt ist, aber nur unter der Voraussetzung, dass man sich damit nicht unnötig das doppelte an Aufwand aufhalst. Mal aus Interesse: Wie viel Rechenleistung kann ich von einem STM32F4 erwarten? Reicht der für 24bit/96kHz Signalverarbeitung oder wird der von der Leistung schon arg dünn? Wie kann ich lernen, so was abzuschätzen?
Hey melde dich mal bei mir!!! Ich mache auch grad meinen Master an der TUD und bin ein Audio-Nerd. Habe aktuell hobbymäßig Projekte in der Richtung am Laufen. Vlt können wir uns ja mal morgen Nachmittag an der Rennbahn treffen
Moin, Etit-Student schrieb: > sondern etwas in der DSP-Technik lernen und > mich damit beschäftigen. Ich denke da über meine Masterarbeit hinaus, > ich will nachhaltig einarbeiten. Keine gute Idee, find' ich. Das sind 2 voellig verschiedene Baustellen. Mach als Masterarbeit irgendwas eher "simpleres", irgendwas wo das Ergebnis fuer dich besser berechenbarer/einschaetzbarer ist als irgendwas ganz neues. Die Note der Masterarbeit wirst du - wenns irgendwie gehakt hat - in jeder Bewerbung nach dem Studium erklaeren duerfen. Also sollte da nix haken. "Daheim" kannste dann immernoch vorneweg, neben- und hinterher deinen DSP-Kram machen. Etit-Student schrieb: > Mal aus Interesse: Wie viel Rechenleistung kann ich von einem STM32F4 > erwarten? Reicht der für 24bit/96kHz Signalverarbeitung oder wird der > von der Leistung schon arg dünn? Wie kann ich lernen, so was > abzuschätzen? Kommt halt immer drauf an, was du machen willst. 24bit/96 kHz, das heisst dann aufm ARM: 32bit Datenbreite. Wenn deine CPU mit 100MHz laeuft und pro Clockcycle eine Instruktion abarbeitet und es keine Waitstates beim Zugriff auf den Speicher gibt, dann hast du also fuer deine Verarbeitung eines Samples rund 1000 Takte = 1000 Assemblerinstruktionen "Zeit". ICh denk' mal - fuer eine popelige Frequenzweiche wirds locker reichen. Bei irgendwas mit Korrelationen ueber X Samples berechnen, Gleichungssysteme aufloesen um Filterkoeffizienten rauszukriegen, mit denen man dann filtern will - da koennt's schon enger werden. Dann ist auch noch interessant, was an Peripherie (I2S Interfaces, McBSP, oder wie's auch immer heisst) bei dem Baustein dabei ist - ob die das auch unterstuetzt, was du haben willst. Gruss WK
Mit einem DSP schafft man normal FIR-Addition mit wenigstens einem Viertel der Taktfrequenz. Also reicht es für 4 Filter mit z.B. 512 TAPs. Das geht bei Audio.
Etit-Student schrieb: > OK, ich sehe es ein, ich schraube meine Ansprüche runter Warum solltest du, die waren eh gering. Stereo rein und 6 Ausgänge raus ist ein dBx driverack. Dort natürlich professionell mit XLR. Das Ding tut das alles "Im DSP sollen dann 2- oder 3-Wege Stereo-Frequenzweiche, Parametrische Equalizer, Kompressor, Limiter und Subharmonic synthesizer implementiert werden" aber noch viel mehr: Es schützt die Lautsprecher vor Überlastung in dem es die Belastung mitrechnet und mit Grenzwerten je nach Lautsprecher vergleicht. Es misst die Anlage und den Raum in dem sie steht mit einem Messmikro aus und passt Frequenzweiche und Filter an die Kennwerte der verwendeten Lautsprecher automatisch an. Genau wie du "vergessen" hast eine Laufzeitkorrektur einzuplanen, hat auch das kleine Modell keine Laufzeitkorrektor, aber das grosse. http://www.pfleid.de/ Etit-Student schrieb: > Dementsprechend muss der DSP natürlich genug Leistungsreserven haben um > bei 24bit/96khz all diese Verarbeitungsalgorithmen auf 4 Kanälen > bereitstellen zu können. Zum gegenwärtigen Zeitpunkt habe ich noch > überhaupt keine Vorstellung, wie viel Rechenleistung dafür in der Praxis > tatsächlich notwendig ist. Es tun die "erstzunehmenden" DSP von TI oder AD. Das Strubi schrieb: > gutes altes Blackfin BF533 EZKIT wäre eine gute Basis (da dir Chinch reicht). Ich würde mich auf die Software beschränken, das fertige Board nehmen. Richtige VU-Meter sind übrigens auch nicht ganz simpel: http://www.sengpielaudio.com/VU-MeterEinmessen.pdf http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.30.2
Auf der Webseite finde ich dazu nichts. Ist das board im Vld vom user zu programmieren?
Also falls es wen interessiert, ich bin gerade dabei einen Audio-DSP mit 4*in und 4*out zu machen. Das wird ein Stm32F407 und zwei SGTL5000 Codecs die Full-Duplex an den zwei I2S Ports betrieben werden. Kann ja dann mal berichten, bin gerade am Routen der Platine... So wie es aussieht kommte ich sogar mit zwei Layern aus
Hallo, kurzes Update: Ich habe heute mal ein STM32F4 Discovery-Board genommen (mit dem f407vgt6 drauf) und habe daran das audio-shield des teensy 3.x dran gemacht (da ist ja ein SGTL5000) drauf. Habe dann den Startup-Code von der Teensy-Lib genommen und für den STM umgeschrieben. Habe es immerhin jetzt schon soweit dass ein einfaches Audio-Loopback funktioniert (durch den STM32 hindurch). Wie ich das dann hinbekomme dass ich die zwei Hardware-I2S Synchron bekomme wenn dann mal zwei von den SGTL5000 im Spiel sind... Mhhh mal schauen... Werde jetzt die kommende Woche hoffentlich mal dazu kommen das Board zu machen.
Wenn das aber mal alles hinhaut auf jeden Fall eine interessante LowCost-DIY DSP Plattform mit sehr ordentlicher Audioqualität für ca 20 Euro Bauteilkosten..
Robert schrieb: > Wie ich das dann hinbekomme dass ich die zwei Hardware-I2S Synchron > bekomme wenn dann mal zwei von den SGTL5000 im Spiel sind Das ist hardwareseitig kein Problem, einfach den zweiten als Slave konfigurieren, und BCLK und LRCLK mit dem ersten verbinden.
Ja das mit der sclk und der lrclk habe ich so gemacht. Ich meinte eher weil ich die zwei i2s Blöcke ja nicht direkt parallel anschalten kann und sich die buffer intern dann leicht zeitlich verzögert füllen. Das läuft ja via DMA und löst immer nach halb voll und komplett voll jeweils ein Interrupt aus und die sind dann nicht synchron. Die Platine ist gemacht und bei elecrow gerade in der mache. Die Bauteile sind alle da.
Robert schrieb: > Die Platine ist gemacht und bei elecrow gerade in der mache. Die > Bauteile sind alle da. Und was wird das System können?
Jürgen S. schrieb: > Robert schrieb: > >> Die Platine ist gemacht und bei elecrow gerade in der mache. Die >> Bauteile sind alle da. > > Und was wird das System können? Wollte hauptsächlich Audio-Routing und paar IIR Filter für jeden Kanal und ein Limiter am Ende. Steuerbar über Uart von außen So zumindest mein Plan. Vermutlich wird es wegen Faulheit bei mir auf hardcoding rauslaufen.
Mal kurzes Update: Platine von Elecrow immer noch nicht da, habe mir aber mit der cmsis-dsp library schon was sehr gut funktionierendes zusammengebastelt (allerdings nur für zwei kanal in und out). Habe jetzt schon mehrere hintereinander geschaltete Biquads auf Basis von 1.31 Bit FixedPoint Arithmetik am laufen und funzt super bisher.
Ja, das Mini-DSP oder auch Hypex. Für semiprofessionelle Anwendungen sehr gut geeignet. Die Profis vermissen da ein paar Dinge.
Es gibt auch noch den freeDSP. http://www.freedsp.cc/ Benutzt die gleiche Technik wie der MiniDSP aber ist offener. Den werde ich wohl für meine Audioprojekte in Zukunft nutzen. Leider geht damit nur blockschaltbildartiges Zusammenklicken der DSP-Funktionen, lässt sich aber per SPI/I2C auch gewissermaßen fernsteuern. Wer die volle Kontrolle über den Datenstrom haben möchte, für den ist das aber eher nix.
:
Bearbeitet durch User
Ja die ADAU Serie hatte ich auch schon ins Auge gefasst bevor ich anfing, aber ich fande das System dort sehr komisch wie man Paramter von außen zur Laufzeit ändern kann / muss , weil er z.B. IIR-Paramter mehr oder wenig zufällig auf irgendwelche Speicherstellen mappt und da auch keinen direkten Zugriff auf den Audiostream hat. Aber ich wollte, auch wegen dem Lerneffekt, es einfach mal klassisch aufbauen.
Hallo Leute, ich bin es mal wieder: Platine von Elecrow ist inzwischen gekommen, habe ich natürlich sofort bestückt. Die gute Nachricht: Der STM ist via STLink erreichbar und lässt sich debuggen. Auch der I2C Bus zu den Audio-Codecs scheint zu funktioniert, zumindest läuft die Routine sauber durch ohne Fehler. Leider hat der Code den ich für das Evaluation-Board gemacht habe, nicht auf Anhieb funktioniert. Ich hatte jetzt heute Abend nicht mehr viel Zeit. Ich werde aber morgen die Platine mal mit dem Oszi unter die Lupe nehmen. Falls sich jemand fragt wegen dem Namen auf der Platine: Ich heiße nicht wirklich "Robert (Gast)" ;-) Grüße
Ich bins wieder und habe leider ein Problem bei dem ich nicht weiter weiß: Ich hatte das Board vorgestern soweit komplett laufen. Hatte einen Audio-Playthrough geschrieben dass alles was an Input X reinkommt an Output X rauskommt. Hat mit allen vier Kanälen einwandfrei funktioniert. Hatte sogar schon meine Lötausrüstung weggeräumt und dann ist folgendes passiert. Ich hatte die Spannungsversorgung kurz weggenommen und wieder dran gemacht und wollte das Debugging starten -> kein Ton. Über das Oszi stellte sich dann heraus, dass die I2C Kommunikation von den SGTL5000 blockiert wird und der STM32 dann nach dem Timeout eben aufhört. Spannungsversorgungen (analog 3v3, digital 3v3 und digital 1v8 passt alles habe ich nachgemessen) Also gut, zwei neue SGTL5000 aufgelötet. I2C Kommunikation läuft wieder, aber immer noch kein Ton raus. I2S Kommunikation passte auch laut Oszi. Aber es kam beim Kopfhörer nix raus. Bei den 220uF Kondensatoren habe ich auf Seite der AudioCodecs immer so ca 1.5 V Offset gemessen. Die waren nun nicht mehr da. Was da los ist wieso da nix mehr ging... Keine Ahnung. Also die zwei Stück auch wieder runtergelötet (einen hatte ich ja noch da) I2C und I2S Kommunikation passte auch wieder, Ton war ganz leicht hörbar im Kopfhörer. Wenn ich im debugging Pause klickte, hörte man ganz lautes surren (wie es am Anfang auch war wie es noch funktionierte). Nun bin ich aktuell ziemlich deprimiert weil ich 5 von den Audio ICs habe die Augenscheinlich kaputt sind und jeder weitere den ich drauf löte wahrscheinlich auch nicht geht. Vielleicht hat einer von euch Tipps wie ich weiter machen soll. Nochmal komplett neuen Prototypen aufbauen? Danke!
Wie hast du denn AGND und DGND verbunden ?
Vor allem frage ich mich wie es dazu kommen konnte dass die Platine einen Schaden nur dadurch abbekam dass ich nur die Spannungsversorgung mal trennte und wieder dran machte (der ST-Link und Audio In-Out war zu dem Zeitpunkt aktiv als ich die Versorgung wegnahm). Ich dachte das Netzteil produziert evtl. Überschwinger beim ein und ausstecken oder so, aber der anstieg auf 5V und von 5v runter waren eigentlich sehr sauber (habe ich auch mit Oszi nachgemessen). Vielleicht hat ja der STM irgendwie einen Schaden. Komisch aber dass das Debugging, der I2C und I2S läuft also denke ich eher der ist es nicht.
AGND und DGND habe ich über einen 0805 Ferrite Bead verbunden.
Paul H. schrieb: > Den werde ich wohl für meine Audioprojekte in Zukunft nutzen. > Leider geht damit nur blockschaltbildartiges Zusammenklicken der > DSP-Funktionen, lässt sich aber per SPI/I2C auch gewissermaßen > fernsteuern. Wie macht man das real?
Hallo, ich wollte mal kurz wieder eine Rückmeldung zu meinem STM32-Audio DSP geben. Habe die letzten Tage wieder viel Zeit reingesteckt. Mit der Firmware bin ich jetzt fast fertig. Es können intern zwei Summen gebildet werden, freies Routing, über den SGTL5000 kann der Gain Analog an den Eingängen und Ausgängen geregelt werden (digitaler Gain geht natürlich auch), pro Kanal bis zu 10 Biquads, Signal Invertieren und Delay sind möglich. Gesteuert wird der DSP über einfache Befehle die man per Uart reinsendet z.B. "Filter#EQ#0#100#5#0.7" für einen EQ auf Kanal 0 bei 100 Hz mit 5 dB Gain und Q von 0.7 Außerdem kann man sich über Uart die aktuelle CPU Auslastung zurückgeben lassen und sich live die Pegel auf den Kanälen In1-4, SumA, SumB und Out1-4 zurück geben lassen. Einstellungen speichert der STM intern in dem er sie in seinen Flash schreibt. Gebaut habe ich das alles auf Fixed-Point Basis unter Zuhilfenahme der CMSIS-DSP Library. Überrascht bin ich doch etwas über die Rechenpower die der STM doch hat nach ein paar Optimierungen jetzt. Im Leerlauf (also einfach nur Playthrough) ca 2%. Mit jedem weiteren Biquad ca +1%. Also es lassen sich schon recht komplexe Audioverarbeitungen realisieren drauf. Was ich jetzt noch machen will ist einen Audiolimiter zu implementieren und danach noch eine PC-Software um das ganze "angenehm" zu konfigurieren. Danach will ich evtl. nochmal die Hardware nochmal neu machen mal schauen.
Robert schrieb: > Überrascht bin ich doch etwas über die Rechenpower die der STM doch hat > nach ein paar Optimierungen jetzt. > Im Leerlauf (also einfach nur Playthrough) ca 2%. > Mit jedem weiteren Biquad ca +1%. > Also es lassen sich schon recht komplexe Audioverarbeitungen realisieren > drauf. In der Tat. Dagegen klingen alle bisherigen Meldungen über die Performance des STM32 geradezu fürchterlich Pessimistisch. Hast du vor dein Projekt zu veröffentlichen? :)
Eine kleine Dokumentation würde mich auch interessieren, da ich ein ähnliches Projekt im Visier habe ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.