Hi, bei meinem Thema gehts um die Erweiterung meiner bisherigen Arbeit in der Uni zur Signalauswertung von Daten eines Fotodiodenarrays (TAOS). Bisher lief der Aufbau mit einem Atmega32 was allerdings den Nachteil hat, dass meine Messungen aufgrund der extrem langsamen Berechnung der Kreuzkorrelation halt nur stichprobenartig sind und nichts mit Echtzeit zu tun haben. In der Erweiterung soll auch die FFT benutzt werden (deshalb DSP). Nun soll die ganze Anordnung um einen DSP erweitert werden und da das Thema DSP für mich neu ist, hätte ich ein paar Fakten zur Wahl: - Möglichkeit der Entwicklung unter Linux (bzw. wine/ extremfall virtualisierung von windows 2000 im virtualbox) mit C - ein sehr schneller AD Wandler, 8...10bit Genauigkeit egal, hauptsache Geschwindigkeit was geht in seiner Klasse - wünschenswert ein Datenspeicher von mind. 2kByte und Programmspeicher von ca. 32kByte ... sprich die Klasse Atmega32 - usb und rs232 - sowie 2x 8Bit IO Ports mehr benötige ich nicht. Die Frage stellt sich nun bei welcher Marke ich anfangen soll. Ich hatte bisher auch schon mit dem TI MSP430 zu tun und war sehr angetan von den Tools und Dokumentationen welche TI bereitgestellt hat. Da gibts dann z.B. den C2000, speziell den TMS320LF2403A. Aber ich seh halt den Controller etwas als overkill im 64pin Package. Gibts es für meinen zwek was kleineres, leichteres, was auch das Design herum erleichtert? Ich habe eine ganz spezifische Aufgabe und benötige den Rest so gut wie nicht. Zudem wären fertige Developmentboards hilfreich? Also ich würde ich sehr über alternative Vorschläge freuen! Grüße Franz
Die wichtigste Information fehlt: was genau soll wie schnell berechnet werden? Wie schnell muss der AD-Wandler sein? Dann kann man sich überlegen ob man einen AVR, ARM, dsPIC, C2000 oder sonst was nimmt. FFT kann der AVR und jeder andere Controller auch, das alleine ist kein Grund einen DSP zu verwenden.
Also wie gesagt ich berechne aus jeweils 2 Datensätzen je 128Byte kommend von dem Fotodiodenarray die Verschiebung über die Kreuzkorrelation beider Signale. Das mache ich derzeit über die Berechnung der Faltungssumme ohne FFT auf einem Atmega32. Dabei ist der Zeitaufwand der Berechnung zur Messwerterfassung etwa 1:20 (hab jetzt keine genauen Zahlen im Kopf). Das heißt, ich bekomme einen Großteil der Geschehnisse vor dem Array nicht mit. Aktuell erfasse ich die Daten mit einer Samplezeit von ca. 3µs (Der Atmega AD Wandler läuft dabei mit nem Teilungsfaktor von 4 und damit mit 4MHz). Das ist eigentlich hinreichend, könnte schneller gehen, muss aber nicht für meine Anwendung. Also viel wesentlicher ist die Bearbeitungsgeschwindigkeit der Korrelationsberechnung! Daher hab ich das als wesentlicher gesehen! Dafür ist leider der 8bit Atmega nicht wirklich geeignet, zumal ich auch auf 16bit Integer zurückgreifen muss. Daher meine Wahl für einen Signalprozessor - es geht um reine Verarbeitung. Danke schonmal für die Hilfe!
Du lässt den armen ADC im AVR wirklich mit 4 MHz laufen? Dass das weit abseits jeder Spezifikation ist weißt du? So schnelle ADCs findet man normalerweise nicht in Controllern integriert, dsPIC hat z.B. nur Wandler bis 1 MSPS. Wie schnell muss denn nun konkret die Korrelation berechnet werden?
Ja ich weiß, dass das außerhalb der Spezifikation ist. Genauigkeit spielt keine so große Rolle - es geht um reine Objekterkennung in Kanälen. Der Aufbau ist auch eher experimentell um zu sehen was machbar ist. Wenn der AD Wandler langsamer sein sollte, kann ich auch auf einen externen ausweichen. Ich hätte die Korrelation schon gerne weit unter 1ms berechnet. Ich weiß aber auch gar nicht wie schnell das mittels DSP i.Allg. möglich ist. Daher habe ich mich auch an dieses Forum gewandt, da dass ja sehr praxisbezogen ist. Ich sag mal so, optimal ist das bestmögliche, was ein Controller her gibt, der obige Bedingungen erfüllt.
Hi, schau Dir doch mal die "Stamp" Boards für die Analog Devices Blackfin DSP an - das ist die "open source"-Variante der Evaluation Boards für die Blackfin DSPs. Analog unterstützt den Einsatz von uClinux und einer gcc-Toolchain. Du bekommst für ca. 160 EUR ein Evaluation Board mit einem 500 MHz-DSP, der bis zu 1000 MIPS auf 16 Bit Operationen schafft, und auf dem ein embedded linux-System läuft. Du kannst deine Applikation dann ganz einfach in C programmieren und unter Linux auf dem DSP laufen lassen. Für optimale Performance müsstes Du natürlich einiges an Optimierungsarbeit einplanen (Portierung der rechenintensiven Operationen nach ASM), aber wenn Dein Algorithmus bisher auf einem 8-bit Microcontroller läuft, sollte es möglich sein, das ganze ohne großen Optimierungsaufwand komfortabel und mit der gewünschten Performance auf einem solchen Prozessor laufen zu lassen. Du müßtest natürlich noch einen externen A/D-Wandler anschließen - ohne jeden Hardware-Entwicklungsaufwand könntest Du ein "Daughter-Board" mit dem AD7476A hinzukaufen (ca. 25 EUR), welches direkt auf das Eval-Board gesteckt wird und 1 Mega-Sample/s bei 12 Bit Auflösung liefert. Nähere Infos zur Entwicklungsumgebung findest Du unter http://blackfin.uclinux.org, die Boards kannst Du bei http://www.digikey.de beziehen (einfach nach "STAMP" suchen). Natürlich ist das ganze finanziell deutlich teuerer als ein 8-bit-uC, den man auch auf eine Lochrasterplatine löten kann - wenn es aber nicht darum geht, ein serienreifes Produkt zu entwickeln, sondern Du möglichst schnell zu ansehnlichen Ergebnissen kommen möchtest, könnte sich dieser finanzielle Aufwand durchaus lohnen. Gruß Frank
Hi, danke für den Tipp. Habs mir mal angesehen (BF533). Das ist aber immer noch das gleiche Problem. Extrem überladen mit Funktionen, die ich nicht brauche. Ich muss meinen Betreuer ja überzeugen, einen geeignete Anschaffung zu tätigen. Mir fehlt irgendwo die schlanke Alternative. Würde mich noch über weiteres Tipps freuen! Grüße Franz
So bins nochmal. Hab mir mal privat das LPC2103 Board hier aus dem Shop zum Basteln bestellt. Wenn mir das zusagt, dann denk ich mal ist so ein kleiner ARM7 die Wahl. Trotzdem freue ich mich über weitere Tipps!
Blackfin ist extremst Overkill! Der AVR schafft die FFT ja schon in < 10 ms, um da noch einen Faktor 10 draufzulegen wird ein kleiner ARM locker reichen. Ansonsten würde ich mich mal in Richtung dsPIC oder C2000 umschauen.
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.