Forum: Digitale Signalverarbeitung / DSP / Machine Learning TI OMAP-L137 Programmer


von Ano N. (oorim)


Lesenswert?

Servus

Ich überlege ja im Moment an einem "kranken Projekt". Da es noch 
jemandem mit Interesse an einem Dual Core ARM/DSP Board gibt dacht ich 
mir: Strick ich eins. Oder versuchs wenigstens ;)

Ich bin dann recht schnell auf den OMAP-L137 gestoßen. 17$ für den 
Prozessor (bei einer Abnahme von 1000stk, dürfte also bei 25-30€ 
(Farnell 28 und 40€) pro Stk liegen). 4Lagige Platine ist ein Muss, ich 
würde auch das ein oder andere vom EVM Board abkupfern. Ziel wäre ein 
"autarkes SODIMM-Modul". Also 5V dran und bootet.

Nun mehrere Fragen:
a) Mit was zum Teufel programmier ich das über JTAG? Ich hab nur einen 
programmer für 1500$ gefunden, das wär dann doch zu teuer ... Ich hab 
aber ein bisschen die Hoffnung aufgegeben da was für 100$ zu finden. 
Weiß jemand was?
b) MUSS ein Linux auf dem DSP laufen? Oder gibts auch ein anderes RTOS? 
FreeRTOS ist mir bekannt und wie man damit Programme baut, Autosar ist 
auch ein Begriff. Aber mit Linux hab ich noch nie was gemacht, schon gar 
nicht auf einem ARM-Prozessor und noch weniger in Kommunikation mit 
einem zweiten Prozessorkern.

Für Hilfestellung bin ich dankbar :)

Grüße

von Ano N. (oorim)


Lesenswert?

Niemand?

von BöserFisch (Gast)


Lesenswert?

Google mal nach ICEbear und OpenOCD. Läuft bei mir prima auf den 
Cortex-Kisten (Linux/GCC). Für kostengünstige/effektive DSP-Entwicklung 
würde ich allerdings eher zum Blackfin raten (dafür haben wir den 
ICEbear ansich auch).

von Ano N. (oorim)


Lesenswert?

Ging aber um einen DSP/ARM Dual Core - was der Blackfin afaik nicht ist.

Ich schau mir die beiden mal an, danke. Ich bin vorhin auch über 
Flyns... irgendwie sowas gestoßen.  Bekannt?

Edit: Und wie programmiert man die Blackfin? Nur über VisualDSP was sau 
teuer ist?

von Strubi (Gast)


Lesenswert?

Hi,

Wenn du Dual-Core-Power brauchst: BF561. Fragt sich halt, was genau du 
machen willst. Billig wird der Spass eh nicht...
VDSP ist nicht noetig (und IMHO fuer komplexe Sachen nicht geeignet), 
man kann mit den GNU-Tools (gcc, gdb, icebear-gdbproxy) mindestens so 
effizienten Code generieren. Mit eclipse hat man auch eine huebsche IDE.
Zum OS: es gibt auch einen Port von eCos, RTEMS, etc. Inzwischen kann 
man aber uClinux als Echtzeit-OS benutzen (RT_PREEMPT, oder die aelteren 
Xenomai-Implementationen). Das OS braucht man ja ansich bei diesen 
DSP-Hybriden v.a. fuer die Kommunikations-Stacks, fuer reine effiziente 
DSP-Aufgaben lassen wir so einiges auch "standalone" laufen, also 
eigenes kleines OS a la uC.
Sag halt mal, was du genau machen willst, welche Rechengenauigkeit du 
brauchst, usw.

Gruss,

- Strubi

von Ano N. (oorim)


Lesenswert?

Dem zweiten interessenten geht es um irgendwas Rechenintensives im 
Zusammenhang mit Mikrocoptern. Ich hab interesse an einem 9DOF IMU wobei 
mir da die Formeln noch Kopfweh bereiten.

Der Blackfin ist aber ein reiner DSP oder?

von Frank K. (fchk)


Lesenswert?

Ano Nym schrieb:

> Nun mehrere Fragen:
> a) Mit was zum Teufel programmier ich das über JTAG? Ich hab nur einen
> programmer für 1500$ gefunden, das wär dann doch zu teuer ... Ich hab
> aber ein bisschen die Hoffnung aufgegeben da was für 100$ zu finden.
> Weiß jemand was?

Du nimmst den XDS100v2 von TI/Spectrum Digital und den Code Composer v4 
von TI. Der XDS100v2 ist sozusagen Dein Dongle für eine kostenlose 
vollwertige node-locked Lizenz für den Code Composer, mit dem Du 
entwickeln wirst.

NICHT auf irgendwelche China-Nachbauten reinfallen! Die haben nämlich 
nur den XDS100v1 nachgebaut, und der funktioniert damit nicht komplett.

Farnell #1831927, 105.38€, vorrätig.

Den Code Composer und das passende DSP/BIOS ziehst Du Dir von der 
TI-Webseite, die Lizenz für den Code Composer gibts dort auch.

> b) MUSS ein Linux auf dem DSP laufen? Oder gibts auch ein anderes RTOS?
> FreeRTOS ist mir bekannt und wie man damit Programme baut, Autosar ist
> auch ein Begriff. Aber mit Linux hab ich noch nie was gemacht, schon gar
> nicht auf einem ARM-Prozessor und noch weniger in Kommunikation mit
> einem zweiten Prozessorkern.

Rein technisch spricht nichts gegen etwas anderes. Es ist ja eigentlich 
nur ein hundsgewöhnlicher ARM9 drin. Die Bibliotheken für die Peripherie 
und die Coprozessorkommunikation musst Du aber selber portieren - oder 
Deinen FAE fragen, ob er andere Kunden hat, die was anderes nehmen.

fchk

von Ano N. (oorim)


Lesenswert?

Der XDS100 tuts aber nur für den ARM oder? Laut dem Diagramm von 
Spectrum sollte man den XDS560R USB nehmen, der liegt aberb ei 2500€.

Der Code Composer war doch eigntl nur eine bestimmte Zeit kostenlos 
benutzbar? Single Lizenz liegt auch hier bei irgendwie 2500€ ...

Kunden gibts nicht wirklich, bin Privat ;) Ansonsten, wie läuft das mit 
dem Linux? Wie mit RTOS? Also das ich einfach in meine main() dem Task 
Manager sag "den den un den Task gibts, die laufen so so und so" und 
dann mein Task hat dann irgenwdie die form TASK_foo() ?

von Strubi (Gast)


Lesenswert?

Ano Nym schrieb:
> Dem zweiten interessenten geht es um irgendwas Rechenintensives im
> Zusammenhang mit Mikrocoptern. Ich hab interesse an einem 9DOF IMU wobei
> mir da die Formeln noch Kopfweh bereiten.
>
> Der Blackfin ist aber ein reiner DSP oder?

Nee, ich wuerde mal sagen, ein Hybrid. Deswegen hat er auch Cache, 
SDRAM-Interface und kann ergo uClinux, mit Betonung auf uC, da er zwar 
ne MMU hat, aber keinen Support fuer virtual Memory.
Wenn du ohne float, mit lookup-Tables (sin/cos, usw) und mit 100 Hz 
Kalman auskommst, reicht 1 Core voellig aus. Womoeglich tut's sogar ein 
kleiner ARM Cortex M0, auf nem Mikrokopter willst du ja auch Strom 
sparen. Der bfin ist dafuer ev. schon ne Nummer zu gross, geschweige 
denn gleich Dual Core - oder brauchst du gleich 1000Hz? (Ich wuerde ja 
prinzipiell mal klein anfangen).
Am besten prototypst du den Kram aufm PC, rechnest dir ungefaehr die 
Zyklen aus, machst die Paranoia-Multiplikation mit Faktor 2, und 
portierst das dann aufn Evalkit deiner Wahl.

Gruss,

- Strubi

von Frank K. (fchk)


Lesenswert?

Ano Nym schrieb:
> Der XDS100 tuts aber nur für den ARM oder? Laut dem Diagramm von
> Spectrum sollte man den XDS560R USB nehmen, der liegt aberb ei 2500€.

Nein. Beide Cores hängen am gleichen JTAG, und der XDS100v2 (vergiss das 
v2 nicht!!!) geht für beide.

> Der Code Composer war doch eigntl nur eine bestimmte Zeit kostenlos
> benutzbar? Single Lizenz liegt auch hier bei irgendwie 2500€ ...

Wenn Du einen XDS100v2 hast, kannst Du Dir eine kostenlose, dauerhafte 
Lizenz holen. Der XDS100v2 funktioniert in diesem Fall als Dongle.

> Kunden gibts nicht wirklich, bin Privat ;) Ansonsten, wie läuft das mit
> dem Linux? Wie mit RTOS? Also das ich einfach in meine main() dem Task
> Manager sag "den den un den Task gibts, die laufen so so und so" und
> dann mein Task hat dann irgenwdie die form TASK_foo() ?

Auf dem TI-Server gibts genügend Dokumentation zu diesem Thema. Lies 
DIch da durch. Du musst wissen, dass zuerst der ARM startet und der dann 
den C67xx dann loslaufen lässt.

fchk

von Strubi (Gast)


Lesenswert?

Noch ne Anmerkung: uClinux oder andere RTOS wuerde ich wirklich nur dann 
einsetzen, wenn du Netzwerk-Kommunikation oder Filesysteme brauchst. 
Wenn das Ding nur IMU sein muss und Servos nachregeln / datenloggen 
muss, bist du mit "standalone", also einem kleinen eigenen Framework ev. 
besser beraten. Unter Linux usw. musst du sonst noch artig Kerneltreiber 
schreiben, das sprengt die Komplexitaet schnell. Hat sich hier bewaehrt, 
das Zeug quasi doppelt zu entwickeln: erst standalone auf den Sensoren 
austesten, dann portieren, wenn TCP/IP oder SDCARD I/O noetig.

von Ano N. (oorim)


Lesenswert?

Strubi schrieb:
> Ano Nym schrieb:
>> Dem zweiten interessenten geht es um irgendwas Rechenintensives im
>> Zusammenhang mit Mikrocoptern. Ich hab interesse an einem 9DOF IMU wobei
>> mir da die Formeln noch Kopfweh bereiten.
>>
>> Der Blackfin ist aber ein reiner DSP oder?
>
> Nee, ich wuerde mal sagen, ein Hybrid. Deswegen hat er auch Cache,
> SDRAM-Interface und kann ergo uClinux, mit Betonung auf uC, da er zwar
> ne MMU hat, aber keinen Support fuer virtual Memory.
> Wenn du ohne float, mit lookup-Tables (sin/cos, usw) und mit 100 Hz
> Kalman auskommst, reicht 1 Core voellig aus. Womoeglich tut's sogar ein
> kleiner ARM Cortex M0, auf nem Mikrokopter willst du ja auch Strom
> sparen. Der bfin ist dafuer ev. schon ne Nummer zu gross, geschweige
> denn gleich Dual Core - oder brauchst du gleich 1000Hz? (Ich wuerde ja
> prinzipiell mal klein anfangen).
> Am besten prototypst du den Kram aufm PC, rechnest dir ungefaehr die
> Zyklen aus, machst die Paranoia-Multiplikation mit Faktor 2, und
> portierst das dann aufn Evalkit deiner Wahl.
>
> Gruss,
>
> - Strubi


Klar fang ich klein an. Aber: Ich hab lust was mehrlagiges zu Layouten 
und da bietet sich der Ansatz mit dem Projekt an. Ob oder ob nicht ist 
ne andere Frage. Ferner: Ich hab noch jemanden der Interesse an einem 
Board mit Dual Core (ARM/DSP) Prozessor hat. Im moment mehr noch ein 
Gedankenmodell, weil die Komplexität für Privat doch schon immens hoch 
ist.

Bei der Frage ob der XDS100v2 auch für den DSP tut hab ich beim lesen 
unterschlagen das das ja nur ein ARM9 und C67x DSP in einem Gehäuse ist. 
Damit "eigentlich kein OMAP".

Ich denke ich überleg mir mal einfach zu Layouten und das eval Board als 
Referenz Design heranzuziehen (gerade die Stromversorgung ist da 
interessant, die Jungs haben da einige Bauteile eingebaut an die ich 
kaum gedacht habe). Ich frag mich nur ob das ganze Brimborium effektiv 
gebraucht wird das die benutzen ...

Danke für die Hilfe bis jetzt :)

von Sebastian (Gast)


Lesenswert?

Nur um mal eine Alternative in den Raum zu werfen: Atmel's AT91SAM9G45 
ist zwar kein DSP, aber immerhin ein 400 MHz ARM9, und genauso 
anspruchsvoll in Layout und Bestückung. Liegt auch im gleichen 
Preissegment. Wenn es also nur darum geht, zur Übung ein anspruchsvolles 
System auf einem 4-lagigen Board zu entwerfen, wäre auch dies eine 
brauchbare Lösung, da weit verbreitet und gut geeignet für Linux oder 
Android.

von Ano N. (oorim)


Lesenswert?

Klar, gibt auch andere Prozessoren die man da nehmen könnte. Nur hat der 
zweite Interessent eben interesse an ARM/DSP Dual Core ;) Da sollte man 
auch da bleiben :)

Schaltplan-technisch sollte es ja auch soo schwer nicht sein. Das meiste 
wird nach ausen geführt, Speicher ist an EMIF recht straight forward 
angebunden. Nur so sachen wie bootmode, die ganzen Multiplexer und JTAG 
machen mir, wenn ich mir das EVM Board als Referenz heranzieh, sorgen.

Und das Layout, klar.

von Frank K. (fchk)


Lesenswert?

Du könntest Dir auch noch den etwas besser verfügbaren L138 anschauen.

Und zum Layout: Du weißt, was Du da tust bei einem 256'er bzw 361'er 
BGA. Ob Du mit 4 Lagen hinkommst ... keine Ahnung.

fchk

von Ano N. (oorim)


Lesenswert?

Den 138 schau ich mir mal an. 4 Lagen sind afaik vorgesehen für den 
L137. Glaub die erste innere für die Versorgung und eine weitere innere 
für die Masse, rest für Signale. Hab da noch sowas im Kopf, müsste 
daheim das Dokument raussuchen.

Ich wills einfach mal probieren, wenns keiner will is auch recht. Hab 
nix zu tun im Moment ^^

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Um den Code in den Speicher zu laden, kann man auch den ROM Bootloader 
verwenden:

http://www.ti.com/litv/pdf/sprab04f
http://www.ti.com/litv/zip/sprab04f

JTAG braucht man eigentlich nur zum Debuggen zwingend.

Grüße,

Peter

von Ano N. (oorim)


Lesenswert?

Und genau deshalb find ichs ja so interessant, zum Debuggen ;)

von Stefan (Gast)


Lesenswert?

Hi,

nur mal so ein Tip:
kauf dir ein OMAP-L138 Experimentier Kit von Spectrum Digital
(bei TI im OMAP-L138 Ordner unter Tools findes sich ein Link)

Der Spaß kostet ca. 150€ und es ist alles dabei, soweit ich weiß:
CCS-Lizenz, onboard JTAG (an PC per USB)....

Der eigentliche Prozessor ist dabei auf einer kleinen 10-Lagen Platine, 
ca. 2*3cm. Dann benötigt man nur noch ein eigenes Baseboard für die 
eigene Anwendung und gut ist.

Linux gibt es als download, Anleitungen dazu (wie das zu kompilieren ist 
etc. als WIKI im Web, erste infos: 
http://processors.wiki.ti.com/index.php/Category:C6-Integra )

du must natürlich kein Linux nehmen...

Stefan

von Klonkrieger (Gast)


Lesenswert?

Stefan schrieb:
> Der eigentliche Prozessor ist dabei auf einer kleinen 10-Lagen Platine,
> ca. 2*3cm. Dann benötigt man nur noch ein eigenes Baseboard für die
> eigene Anwendung und gut ist.
@OP:
Diese kleine Platine ist Alientechnologie. Buried Vias und Bohrlöcher <= 
0.1mm. Der Prozessor ist in einem fine-pitch BGA Gehäuse = eine 
Leiterbahn zwischen Balls. Mit 4 Lagen wirst Du niemals auskommen, wenn 
Du da nennenswert Peripherie anschließen möchtest.
Auf der kleinen Platine ist auch bereits ein DDR-RAM und ein 
Spannungsregler.
Für Deine Stückzahl wird ein Eigenbau definitiv erheblich teurer als der 
Kauf dieser Miniplatine (gibt es auch einzeln, ohne das schrottige 
Baseboard). Die Entwicklungsunterlagen/Schaltpläne kannst Du bei 
Spectrum Digital übrigens (nach Anmeldung) einsehen. Alternativ gibt es 
auch das Hawkboard als Basis. Leider scheint es da mit der derzeitigen 
Revision Stabilitätsprobleme zu geben.

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
Noch kein Account? Hier anmelden.