Hallo! Ich bin kompletter MCU und DSP Anfänger und suche für meine Diplomarbeit einen DSP. Meine Kriterien sind: - geringe Einarbeitungszeit - viel RAM (min. 100 KB) - Leistung ist egal - möglichst geringe Kosten für Chip und Eval-Board. Meine bisherigen Recherchen haben ergeben, dass es in der unteren Preisklasse außer dem Blackfin nichts gibt, dass so viel RAM hat. Die Alternative wäre Freescale DSP568XX oder DSP56F8XXX oder dsPIC mit externem RAM (da müsste man natürlich noch ein Board für den Speicher basteln, aber da könnte ich Hilfe bekommen), wobei ich auch nicht weiß, wie leicht es ist, RAM an den dsPIC anzuschließen denn im Datenblatt steht davon nichts, während die beiden genannten Freescale Chips extra so beworben, dass man externen Speicher anschließen kann. Zumindest steht im Datenblatt „Up to 64K × 16-bit words each of external Program and Data memory“ bzw. „21 External Memory Address lines, 16 data lines“. Meine Frage an Euch: Wo könnte man sich am einfachsten einarbeiten: - Blackfin - dsPIC mit externem RAM - DSP568XX / DSP56F8XXX mit externem RAM Ich habe bis jetzt nur C++ und Java auf dem PC programmiert. Wie lange brauche ich, bis ich mich im Selbststudium (40h/Woche) in Chip+Eval-Board eingearbeitet habe und selbstständig Code schreiben kann? Kann ich das in 2 Monaten schaffen? Viele Fragen auf einmal. Ich hoffe ihr könnt mir helfen.
Julian wrote: > - Leistung ist egal Das bezweifle ich. Sonst würde ich einen AVR mit externem RAM empfehlen, der erfüllt deine Anforderungen am besten. Was willst du überhaupt machen?
> - Was willst du überhaupt machen?
Der Algorithmus soll erst einmal 50 Multiplikationen und 50 Additionen
von jeweils 4 Byte großen Werten berechnen. Dafür hat er 500 ms Zeit.
Also nicht gerade hohe Leistungsanforderungen. (Für alle die es
interessiert: Es geht um LDA=Lineare Diskriminanzanalyse).
Später soll der Chip dann auch noch eine Eigenwertberechnung auf einer
ca. 30 kByte großen Matrix machen (daher auch meine hohen
RAM-Anforderungen, ich hab mal 100 kB geschrieben, damit ich noch Luft
habe.) Diese Berechnung muss allerdings nicht in Echtzeit passieren, es
kann auch ruhig ne halbe Stunde dauern.
Ich vermute, das würde auch ein Mikrocontroller packen. Warum trotzdem
ein DSP? Weil's so in der Aufgabenstellung steht und weil ein DSP auf
MAC-Operationen spezialisiert ist, die recht häufig in dem Algorithmus
vorkommen.
Das einzige Argument, doch einen normalen MCU zu benutzen, wäre
geringerer Lernaufwand.
Ist es wesentlich einfacher einen MCU zu programmieren (müsste dann aber
einer von Freescale sein, da Software schon vorhanden) als einen DSP?
Ähm, es geht hier um ganze 100(!!!!) Multiplikationen pro Sekunde. Dabei schläft ja selbst der langsamste Microkontroller mit Hardwaremultiplizierer ein. Den fast wichtigsten Punkt hast du übrigens immer noch unterschlagen: Von was für Datentypen reden wir? 8Bit Integer? 64Bit Floating-Point? Ich glaube du solltest den Fokus auf was anderes legen, wie einfache Programmierbarkeit, einfacher Platinenaufbau.
> Ist es wesentlich einfacher einen MCU zu programmieren (müsste dann aber > einer von Freescale sein, da Software schon vorhanden) als einen DSP? Das haengt von deiner Entwicklungsumgebung ab. Man kann auch DSPs in C programmieren und dann sind die Unterschiede eigentlich gering zu einem normalen Microcontroller. Allerdings musst du erstmal einen Compiler fuer deinen DSP haben. Die kosten da naemlich normalerweise ordentlich. Du kannst den DSP natuerlich auch in Assembler programmieren, aber ich glaube das willst du dir nicht antun, schon garnicht bei so einem banalen Problem. Loesbar ist das Problem sicher auch mit einem normalen Controller. Allerdings wuerde ich bei 32Bit Werten und vermutlich 64Bit Ergebnis nicht gerade einen AVR nehmen. Olaf
Ich rate dir auch zu einem Mikrocontroller. Die Atmel ARM Dinger haben doch auch DSP-Funktionen. Damit wirst du sicherlich auch die geringste Einarbeitungszeit haben. Die Dokumentation/Codebeispiele von Atmel/Foren sind wirklich gut. Oder einen von TI. Eine Alternative ist noch ein Infineon (z.B. XC164 Serie). Die haben auch DSP Funktionen drin. Da gabs damals so ein Evalboard für 99 Euro mit Wiggler. Da konnte man sämtliche Initialisierungsparameter eingeben und der hat dir schon mal einen StartUp Code erzeugt. Aber wirklich was über den µC gelernt hat man da nicht. DSP in Assembler zu programmieren ist wirklich kein Spaß...da wirste als Anfänger erstmal 3 Monate dran hängen bist du des Ding halbwegs verstanden und initialisiert hast.
Der dsPIC hat einen einfachen ASM, der ist sehr leistungsfaehig. Wenn denn ein DSP sein muss. Die Devtools sind auch guenstig.
Kann Dir nur raten die Finger von AnalogDevice DSPs zu lassen, die sind absoluter Mist, vom Manual ganz zu schweigen. Keine Ahnung was da für Amateure am Werk sind. Noch schlimmer sind nur die Evaluation Kits von Danville -> Kann nur jedem abraten so'n Scheiss zu benutzen. Die Texas Instruments sind sehr gute leistungsfähige DSPs mit gut strukturiertem Manual, vielen guten Erklärungen und super Beispielprogrammen, die im Gegensatz zu AD sogar laufen. Aber man wählt einen DSP nach dem Zweck, d.H. erstmal Pflichten-/Lastenheft aufsetzen und dann schauen welcher DSP am besten passt. Da es sich um eine Diplomarbeit handelt wirst Du wohl mit nem Evaluation Kit beginnen. Schau mal bei TI in der 6000 Reihe, da findet sich bestimmt was. Gruss, Martin
1 | ... raten die Finger von AnalogDevice DSPs zu lassen ... |
??? : wie kommst du auf eine solche aussage ? wir verwenden einige derivate von AD-DSP's und sind eigentlich ganz zufrieden !??! was konkret stört dich dabei ??? Neubi
nun Haggy hat die DSP's von Analog nicht geschnallt und da blieb nur der billige der NON PROFIT Variante von TI. Lasse am besten die Finger von allen DSP's.
tippe auch eher darauf, dass Haggy der englischen sprache nicht mächtig war und somit die datenblätter einfach nicht lesen konnte ...
Was macht ihr denn mit den ADs? Für richtige Arbeit sind die wohl kaum geeignet bei der miserablen Dokumentation?
@ senf & neubi Sind wie hier im Heise-Forum oder warum so beleidigend?
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.