Hi Leute, ich hab gestern von nem Bekannten einen Tray ADSP-BF532 geschenkt bekommen. Die Teile sind relativ neu, und waren noch original verpackt. Jaaa, und nun hatte ich natürlich die glorreiche Idee, mal was damit anzustellen. Rein vom elektronischen her sollte der Blackfin kein allzu grosses Problem darstellen; ich habe schon grössere Prozessoren eingesetzt. Das sollte also gehen. Die Frage ist nur, wie man das Teil Programmiert? Wie ich sehe, hat er einen JTAG-Anschluss. Kann man damit was machen? Oder gibt es noch einen besseren Weg? Was ich grundsätzlich mal machen möchte: ein kleines Board, möglichst einfach, und nur mit dem nötigsten drauf, damit ich mal damit ein bisschen spielen kann. Die 40 Stk Blackfin-Prozessoren wegzuschmeissen wäre mir dann doch zu schade ;)
Hi Werner, JTAG ist eigentlich beim Blackfin der 'normale' Weg, leider kann der BF523 noch nicht von UART booten. Beim Boarddesign muss man allerdings sehr akribisch drauf achten, dass die Impedanz fuer Flankensteilheiten <= 6ns ausreicht, der Blackfin hat einen furchtbar schnellen Core und die IOs reagieren entsprechend. Wenn Du paar von den Dingern (nehme an, LQFP?) loswerden willst, findest Du hier bestimmt ein paar Interessenten (inkl. mich :-) ) Guck sonst mal nach dem STAMP BF533 Schaltplan via Google, das ist ein ganz ordentliches Referenzdesign mit uClinux-Support. Wuerde allerdings inzwischen eher ein SPI-Flash anstatt wie dort ein paralleles nehmen. Gruesse, - Strubi
@Strubi danke erstmal. Gibt es für den Blackfin-JTAG auch so einen selbstbau-Adapter wie z.B. für ARM? und wie schaut es mit der Software aus? Sovie ich weiss, benötigt man VisualDSP. Kann das Programm mit einem selebr gebauten JTAG-Adapter arbeiten? Oder wie erstellt man denn sonst Programme für den Blackfin? Viele Grüsse
Hier gibt es einen "Selbstbauadapter", m.W. Open Source: http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice Nachteil ist wohl die vglw. langsame Verbindung. ICEbear ist eine weitere 3rd-Party-Methode. Das Teil hab ich mir zugelegt, funktioniert recht zuverlässig. http://www.section5.ch/icebear Diese Adapter funktionieren aber nicht mit VDSP++. Hier benötigt man entweder ein EZ-Kit für den entsprechenden Prozessor (JTAG On-Board) oder man investiert ein nettes Sümmchen in einen externen JTAG-Adapter von ADI. Applikationen kann man für den Blackfin mittels VDSP++ erstellen oder man geht mit http://blackfin.uclinux.org/ auf Open Source. Hier hat man die Wahl zwischen uClinux oder "bare metal" Applikationen. Cheers! Edit: Wenn du Überschuss hast dann würde ich dir ebenfalls den einen oder anderen 532er abnehmen. :^)
@Pumpkin ich melde mich dann, bezüglich der 532er, die du gerne hättest :) erst baue ich ein kleines Board. Wenn ich mit einem Compiler mein Programm erstelle, nehme ich an, habe ich ein hex-File. Strubi hat empfohlen, doch besser ein serielles Flash einzusetzen. Kann der Blackfin per JTAG ein Solches programmieren? oder wäre es klüger, einen kleinen Mikrocontroller auf dem Board vorzusehen, der das Flash programmiert?
Hallo! der BF532 läßt sich auch über SPI booten. Müsste man dann halt noch einen kleinen MC dazuschalten. Hab auch Interesse! Grüße Gebhard
Hmm, wenn das Booten per SPI möglich ist, dann könnte man ja anstatt eines externen SPI-Flash wirklich einen MC dazuschalten. Das DSP-Programm wird dann auf den MC runtergeladen, und der lädt es dann in den Blackfin. Somit kann man ein spezielles Downloadkabel einsparen. Debuggen geht mit dieser Kombination natürlich nicht, aber das ist mir persönlich nicht so wichtig. Bisher habe ich mit ARM-Controllern experimentiert; und bis vor nem halben Jahr hatte ich gar keinen Debugger. Da habe ich alles nach dem System "Try and Error" gemacht, was zwar mühsam war, aber doch funktioniert hat.....
Hallo Werner! Ich hab da noch eine boot Anleitung bei mir gefunden. Ich hab mir vor 2 Jahren mal ein BF532 stamp Board gekauft, das war mit einem Linux Betriebssystem. Das Zeugs war aber ein ziemlich wüstes Chaos, mir gelang es nicht eimal nach 5 Tagen irgend eine Applikation zu compilieren. Hab dann entnervt das Zeug einem Studenten gegeben. Der hat dann wohl so 2 Wochen damit heftigst gekämpft (falsches Betriebssystem war original im Flash) und dann konnten wir mal wenigstens einen Timer ansprechen und in Betrieb nehmen. Der Zugriff auf Blackfin-Register war aber sehr mühsam, und wie das dann mit eigenen Interrupts ginge war trotz ausufernder Recherchen nicht abzusehen. Ich hab dann mein Projekt mit einem ARM Controller und 2 stk. ADSP2184 gemacht, das läuft auch super. Dennoch reizt mich dieser Blackfin sehr, ist einfach ein verdammt schnelles Teil. Dennoch: mit einem "normalen" MC hat der nicht viel zu tun. Der Blackfin stellt hohe Anforderungen an die Programmierung und Hardwaredesign. liebe Grüße Gebhard
Hi geb, danke für das PDF, sieht gut aus. Ich hab mir das ganze jetzt so gedacht, dass ich einen normalen Mikrocontroller nehme, der kann dann über USB oder RS232 Daten entgegen nehmen und in einem Dataflash oder auf SD-Karte speichern. Und beim Booten lädt er dann das entsprechende File aus dem Flash (oder ebe von der Karte), und spielt das über den "SPI Slave Mode" in den Blackfin über; das sollte ja gehen, und ich kann mir ein extra Programmiergerät sparen. Du sagst, der Blackfin sei wirklich sehr schnell, und würde hohe Anforderungen stellen. Kann ich denn nicht fürs erste mal den als normalen MC benutzen? ich muss ja die möglichen 400 MHz nicht gleich ausreizen. Was ich aber gerne mal ausprobieren möchte, wäre, ADC und DAC anzuschliessen, und mich dann z.B. in digitale Filter einarbeiten (was ich sowieso schon lange will). Ich hab auch kein Problem damit, gleich eine 4 Layer Platine herzustellen, von daher... das sollte schon machbar sein, oder? Gruss
Hallo Werner! Ja, das Booten wird jetzt kein unüberwindliches Problem sein. Als "normalen" MC kann man das Ding natürlich auch verwenden,aber mit welchen Tools willst du denn die Programme schreiben? Ich hab die ADSP218x immer in Assembler programmiert, das ging recht gut und der Code war auch nach Jahren noch lesbar. Der Blackfin geht aber auch gut in C zu programmieren, da gibt's aber glaub ich nur Visual DSP von AD und das kostet richtig Geld. Ja und die Platine ist, glaub ich ,nur dann kritisch wenn man das Bus-System benutzt. 8 Kanal A/D karten mit 16Bit/32kHz/Kanal hätte ich, die man wahrscheinlich so wie sie ist einfach an die SPORT's anschließen kann(läuft momentan an 2 ADSP2184). Trotzdem, ganz einfach schätze ich die Programmiererei nicht ein.Bevor man mit dem Ganzen anfängt, sollte man einen (möglichst kostenlosen)Compiler finden. Ich schick mal das Manual mit. Grüße
>Diese Adapter funktionieren aber nicht mit VDSP++. Hier benötigt man >entweder ein EZ-Kit für den entsprechenden Prozessor (JTAG On-Board) >oder man investiert ein nettes Sümmchen in einen externen JTAG-Adapter >von ADI. Dazu habe ich auch grad noch ne Frage. Ich habe ein BF533 EZ-Kit. Das programmiere ich per USB mit VDSP++. Zusätzlich habe ich noch ein eigenes Board mit einem BF533 drauf und entsprechender JTAG-Schnittstelle. Kann ich die beiden Schnittstellen 1:1 verbinden und dann mit VDSP mein eigenes Board "debuggen", oder geht das nicht, weil dann zwei DSPs angeschlossen sind?
Hi geb, na von Visual DSP gibts ja ne Testversion. Die will ich mir zuerst mal besorgen. Danach mal schauen, irgendwie wird das sicher zu schaffen sein! Was ich mich noch frage: Kann man in Visual DSP seinen C-Code programmieren, und kriegt nachher ein Hex-File, das man so eins zu eins auf den Blackfin runterladen kann? Oder was kommt als Kompilat da heraus? Aber du siehst das auch so, oder? mit meinem Verfahren, da noch einen zusätzlichen Controller einzusetzen, könnte das doch ganz gut klappen. Warum meinst du, dass es beim Einsatz des Businterface zu Problemen kommen könnte? Selbst bei einem 4lagigen Board?
>Kann man in Visual DSP seinen C-Code programmieren, und kriegt nachher >ein Hex-File, das man so eins zu eins auf den Blackfin runterladen kann? >Oder was kommt als Kompilat da heraus? Normalerweise macht der ein Loader-File (ldr), dass Du dann ganz einfach auf den Blackfin, also auf einen externen Flash, laden kannst. Schau Dir doch mal das Schema zu einem EZ-Kit an. Da kannst Du bestimmt einiges übernehmen.
@Werner Die Signale am Bus sind extrem schnell, die eingesetzten Speicher sollten es auch sein, sonst hast du einen Ferrari mit Traktorreifen. Die Folge ist: Übersprechprobleme zwischen Leitungen. Ein weiteres Ungemach droht bei unterschiedlich langen Busleitungen. Bevor man sich da dran macht ist's glaub ich gut, ein Referenzdesign zu studieren. zu Visual DSP: ja, hat ich auch einmal, mit meiner Version konnte man auch länger arbeiten, wenn man das Datum zurückgestellt hat. Ob das noch immer so ist, weiß ich nicht. Ich hab heute den GNU für Blackfin runtergeladen, bin mir aber nicht 100% sicher, ob der nur mit Linux funktioniert. Noch eine Frage: haben deine BF's LQFP oder BGA Gehäuse? Grüße Gebhard
Werner: Per JTAG kannst du das SPI-Flash locker programmieren. Der ICEbear unterstuetzt zumindest fuer BF5[2,3]7 ST-kompatible SPI-Flashes (m25p80, etc), fuer den BF532 muesste man den Source vom Flashloader (frei verfuegbar) etwas anpassen. Obwohl ich 'biased' bin, wuerde ich diesen Chip ohne JTAG nicht anfassen - er ist einfach zu komplex, mit printf-Debugging ist da nix, schon gar nicht bei eigener Hardware. Man muss ja nicht gleich 2000 USD fuer ein HP-ICE ausgeben, aber bei potentiell tagelangem Im-Dunkeln-Stochern lohnt sich das Sparen hier absolut nicht, zumindest ein gnICE sollte drinliegen. Noch ein paar Bemerkungen: - 4 Lagen-Board reicht fuer einen Blackfin, solang man alles schoen eng routet, und die SDRAM-Leitungen nicht ueber Schlitze fuehrt, kurz, auf Impedanz achtet. - Die GNU-Toolchain gibts als blackfin-elf und als blackfin-uclinux. Mit der elf-Variante kann man prima 'bare metal'-Applikationen machen. Stellt inzwischen VDSP von der Effizienz her laengst in den Schatten, aber es ist halt GNU, jeder soll selber abwaegen, was ihn weniger kostet (steile Lernkurve und billige Toolkosten vs. klickbar und teuer). Gibt dazu hier im Forum schon einige threads.. An Patrick: Du kannst prinzipiell ein zweites Geraet in die JTAG-Chain am EZKIT einschleifen. Also: TDI -> TDI_a TDO_a -> TDI_b TDO_b -> TDO und TMS, TCK und TRST direkt miteinander verbinden. a und b stehn fuer die beiden Boards. Habe das aber nur mit dem ICEbear getestet, vermutlich wird VDSP genau solche Tricks 'verbieten' und keine 2 Devices unterstuetzen. Muesstest Du also an den Leiterbahnen rumcuttern :-) Gruss, - Strubi
> und TMS, TCK und TRST direkt miteinander verbinden. a und b stehn fuer
Da fehlt das Wort 'jeweils'.
Also TMS -> TMS_a -> TMS_b, usw.
Nicht dass es dann raucht und ich zahlen muss :-)
- Strubi
@Strubi > solang man alles schoen eng routet, Hmm, was heisst hier eng? alle Leiterbahnen möglichst nahe beieinander, und die Bauteile auch? oder wie? Danke für den Tipp mit der GNU-Toolchain. Ich werd mir die auf jeden Fall ansehen. Also, um nochmals darauf zurück zu kommen: wirkliche High-End Boards will ich nicht bauen. Es geht nur um den Lerneffekt, und darum, mal mit einem richtigen DSP zu arbeiten. Das höchste der Gefühle, was ich mir momentan vorstelle: SPI-ADC und -DAC dran knallen, vielleicht noch ein SDRAM. Und dann bisschen digitale Filter basteln, oder mal versuchen, Audio-Sachen zu machen (z.B. ein Wave- oder MP3-File oder was weiss ich, was im SDRAM liegt, abzuspielen). Damit langweilt sich der Blackfin wohl nur, aber wenn ich schon einige zum 'verbraten' habe.... ;) @geb Es sind alles ADSP-BF532ARTZ-400 im LQFP167.
>An Patrick: Du kannst prinzipiell ein zweites Geraet in die JTAG-Chain >am EZKIT einschleifen. Also: >TDI -> TDI_a >TDO_a -> TDI_b >TDO_b -> TDO >und TMS, TCK und TRST direkt miteinander verbinden. a und b stehn fuer >die beiden Boards. >Habe das aber nur mit dem ICEbear getestet, vermutlich wird VDSP genau >solche Tricks 'verbieten' und keine 2 Devices unterstuetzen. Muesstest >Du also an den Leiterbahnen rumcuttern :-) Genau das ist das Problem. Der DSP auf dem Board ist fest an die JTAG-Schnittstelle angeschlossen. Ich müsste ja theoretisch die TDI oder TDO-Leitung auftrennen und dann mein Board dazwischen henken. Und das geht ohne "rumcuttern" leider nicht. Ausserdem können diese Signale irgendwo auf den 10 Lagen des Prints versteckt sein.
Hi Werner, > >> solang man alles schoen eng routet, > > Hmm, was heisst hier eng? alle Leiterbahnen möglichst nahe beieinander, > und die Bauteile auch? oder wie? Nee, die Leiterbahnen moeglichst nich, wegen Crosstalk. Aber die Bauteile gerne so nah wie moeglich. Google mal nach den Application Notes, z.b. spraar7.pdf von TI zu USB 2.0, da sind so ein paar Designregeln beschrieben. Je kuerzer die Leitungen, desto besser die Signale. > > Danke für den Tipp mit der GNU-Toolchain. Ich werd mir die auf jeden > Fall ansehen. > > Also, um nochmals darauf zurück zu kommen: wirkliche High-End Boards > will ich nicht bauen. > Es geht nur um den Lerneffekt, und darum, mal mit einem richtigen DSP zu > arbeiten. Das höchste der Gefühle, was ich mir momentan vorstelle: > Das Problem ist: Weil der Chip sackschnell ist und sich an den Eingaengen keine extra Buffer befinden, gilt: Auch wenn Du 'low speed' faehrst, muessen die Flanken immer noch sehr steil sein. Also musst Du schon ein bisschen in 'High end'-Kategorien denken , sonst hast Du ev. Frust mit einem instabilen Board. Habe schon einige Designs 'begleitet', da lief nicht immer alles beim ersten Mal stabil (SDRAM is immer kritisch). > SPI-ADC und -DAC dran knallen, vielleicht noch ein SDRAM. Und dann > bisschen digitale Filter basteln, oder mal versuchen, Audio-Sachen zu > machen (z.B. ein Wave- oder MP3-File oder was weiss ich, was im SDRAM > liegt, abzuspielen). Damit langweilt sich der Blackfin wohl nur, aber > wenn ich schon einige zum 'verbraten' habe.... ;) > Irgendwo gab's/gibt's ein 'BlackStamp' design mit nem LQFP-BF532. Ich weiss nicht, wie stabil das laeuft, und das Design ist etwas...ich sag's mal so: "akademisch", aber Du kannst Dir da sicher was abgucken. Wenn Du deine Design-Gerberdaten hier postest, guckt sicher mal jemand drueber und gibt dir Feedback. Gruesse, - Strubi
Ich hab erst grad eine Schaltung mit einem BF533 erstellt. Die funktioniert einwandfrei. Da Layout habe ich mal angehängt. Man sieht darauf zwar nicht sehr viel, aber es handelt sich dabei um einen 8-Lagen Multilayer mit 2 GND-Lagen und einem Versorgungslayer.
Und hier noch der fertig bestückte Print. Die Schaltung selbst habe ich fast 1:1 vom BF533 EZ-Kit übernommen. Nur als Flash musste ich einen anderen Baustein nehmen, weil der auf dem EZ-Kit nicht mit dem auf dem Board integrierten gnICE (oben links) kompatibel ist. Die Programme dazu schreibe ich in VDSP++. Das erstellt mir ein ldr-file, das ich dann mit urjtag über den gnICE in den Flash laden kann. VDSP++ gibt es in einer 90 Tagen Testversion. Durch Rücksetzen des Datums auf Deinem Rechner, ist sie auch etwas länger gültig ;-)
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.