Forum: Mikrocontroller und Digitale Elektronik Cortex M3 Eval-Board


von Rotax (Gast)


Lesenswert?

Hallo,
ich wollte mit dem Cortex M3 mal einwenig Erfahrung sammeln und bin auf 
der Suche nach einem Board, das folgende Anforderungen erfüllen sollte:

- Preis unter 100€
- CAN und/oder Ethernet
- JTAG-Zugang

Ich würde gerne den gcc einsetzen und damit ein paar Programme 
schreiben. Ich habe hier im Forum schon einwenig nach Boards geschaut, 
aber so recht weiß ich einfach nicht was ich nehmen soll. Die einen 
schwören auf die STM32-Family, die anderen auf die Produkte Luminary 
Micro.

Wäre schön, wenn mir jemand bei der Entscheidung helfen könnte!
Besten Dank
Rotax

von Robert T. (robertteufel)


Lesenswert?

Fast derselbe Thread ist gerade in der Diskussion
Beitrag "ARM Starter Kit"
Cortex-M3 ist auch ein ARM core
Robert

von Arne (Gast)


Lesenswert?

Moin,

also ich benutze in der Firma (wegen STM32F10x) dieses hier:
http://www.iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/225&group=prod_prod_grp-s1/33
hat uns ~150,-€ netto gekostet - inkl J-Link.
Die STM32 sind aber ein wenig strange zu programmieren, wenn es um ADC 
oder Timer geht (meine Meinung).
Privat werde ich mir aber so eins hier besorgen:
http://www.steitec.net/ARM/ARM-LPC1768-Cortex-M3-LCD-Board.html
(da kommt noch 19% EUSt drauf)
JTAG Interface (J-Link) für den privaten Gebrauch gibt es z.B. von 
Segger für 130,-€

von Tom (Gast)


Lesenswert?

Wie ist aktuell der "Errata"-Stand beim NXP, speziell beim LPC 1768 ;-) 
Vor gut einem Jahr, hat man ja überwiegend au die STM32 empfohlen?

Und welche Entwicklungsumgebung ist besonders zu empfehlen IAR, GCC (?), 
Reddingsbums?

von Herbert (Gast)


Lesenswert?

Hi

Also ich verwendet folgendes Demoboard: www.olimex.com. Abschnitt ARM - 
Cortex M3. Die Platinen sind sehr billig : ~50€. Als Chip kommt der 
STM32 von ST zum Einsatz. ST Datenblatt ist super!. Firmware für alle 
Funktionen des Chips verfügbar.
Ein JTAG Interface ist auch zu finden (~40€). Programmieren kannst du 
das Ganze mit dem TrueStudio von Atollic (da sind alle Firmwarelibraries 
schon dabei und werden beim Erstellen eines Projekts automtisch 
hinzugefügt).

Lg

von (prx) A. K. (prx)


Lesenswert?

Günstig: http://www.futurlec.com/STM32_Development_Board.shtml
JTAG ist zusätzlich notwendig, Entwicklungsumgebung ebenfalls.

Alternativ schau dich mal bei Hitex um, da sind JTAG und 
Entwicklungsumgebung bereits drin, aber eben deshalb auch nur in diesem 
Rahmen verwendbar:
http://www.ehitex.de/p_info.php?products_id=430

von A. W. (wiwil)


Lesenswert?

Hallo,

ich hatte letztes Jahr das MCB STM32-Board von Keil. Das wird mit mit 
dem ULINK-ME Programmieradapter geliefert und kostet um die 250€. Es hat 
USB und CAN.

Bin mit dem Board und dem STM32 super klargekommen, habe aber nach 2 
Monaten die Firma gewechselt und kann keine Langzeiterfahrungen 
berichten.

Gruß
Andreas

von Arne (Gast)


Lesenswert?

@Tom:

würde mir kein Board mit STM32 zulegen. Nur die Freescale Datenblätter 
zum Coldfire sind noch schlechter.
Ich nutze die IAR Umgebung, die ich auch wieder nehmen würde. GCC war 
mir auf dem Coldfire zu viel Frickelkram.... evtl. ist es ja auf dem ARM 
besser. Ausprobieren wollte ich es aber nicht. Wenn es günstig sein 
muss, dann vielleicht die Crossworks Umgebung, die zwar auch auf GCC 
basiert, aber da ist wohl viel hinter der IDE verborgen:
http://www.rowley.co.uk/arm/index.htm

von P.F. (Gast)


Lesenswert?

> JTAG Interface (J-Link) für den privaten Gebrauch gibt es z.B. von
> Segger für 130,-€

Ne, ist doch billiger geworden, kostet nur noch um die 60 Euro.

von doc (Gast)


Lesenswert?

Arne schrieb:
> würde mir kein Board mit STM32 zulegen. Nur die Freescale Datenblätter
> zum Coldfire sind noch schlechter.

Na so schlimm ist es nun auch wieder nicht.
Eine Einarbeitungsphase braucht es sowieso, und nach rel. kurzer Zeit 
hat man sich an die Doku gewöhnt und weiß, wo was wie steht.

von Michael K. (Gast)


Lesenswert?

Arne schrieb:
> würde mir kein Board mit STM32 zulegen. Nur die Freescale Datenblätter
> zum Coldfire sind noch schlechter.

Hattest du schonmal ein Infineon-Controller-Datenblatt (TriCore, XCxxxx) 
in der Hand?

von Arne (Gast)


Lesenswert?

> Ne, ist doch billiger geworden, kostet nur noch um die 60 Euro.
Hab vor zwei Wochen noch 130,- bezahlt :-/

> Na so schlimm ist es nun auch wieder nicht.
Ansichtssache... ich bin besseres gewöhnt. Die zum AVR oder von LM/TI 
zum Cortex z.B.
Das UM zum STM32 finde ich aber zum Abgewöhnen! Hab zwei Tage gebraucht, 
um vor einem Jahr den ADC in Gang zu bringen. DMA Mem2Mem funktioniert 
momentan immer noch nicht, da hierzu im UM einfach mal essentielle 
Erläuterungen weggelassen wurden :-(

von doc (Gast)


Lesenswert?

DMA Mem2Mem:

z.B. Hitex Insiders Guide, Seite 47. Sogar mit Beispiel-Quelltext.
http://www.st.com/mcu/files/mcu/1221142709.pdf

von (prx) A. K. (prx)


Lesenswert?

Welchen Sinn hat DMA Mem2Mem eigentlich? Schneller als die CPU ist das 
ja nicht, im Gegenteil.

von doc (Gast)


Lesenswert?

1
DMA_Channel1->CCR = 0x00007AC0; //configure for mem2mem transfer
2
DMA_Channel1->CPAR = (unsigned int)src_arry; //set source and destination
3
DMA_Channel1->CMAR = (unsigned int)arry_dest;
4
DMA_Channel1->CNDTR = 0x000A; //set size of transfer
5
TIM2->CR1 = 0x00000001; //start a timer
6
DMA_Channel1->CCR |= 0x00000001; //start the DMA transfer
7
while(!(DMA->ISR & 0x0000001)) //wait till the transfer ends
8
{;}T
9
IM2->CR1 = 0; //halt the Timer
10
TIM2->CNT = 0; //Clear the count
11
TIM2->CR1 = 1; //restart timer
12
for(index = 0;index <0xA;index++) //repeat the operation using the CPU
13
{a
14
rry_dest[index] = arry_src[index];
15
}T
16
IM2->CR1 = 0; //halt the timer
17
}

>The above code transfers ten words of data between two arrays in SRAM first with 
the DMA and then using the
Cortex CPU. In both cases a timer is started at the beginning of the 
transfer and when the transfer ends. In this
example the DMA unit takes 220 cycles and the CPU takes 536.

Ohne das jetzt verifiziert zu haben :-)

von doc (Gast)


Lesenswert?

Ups, da ist beim reinkopieren die Formatierung zerschossen. Bitte um 
Entschuldigung.

von (prx) A. K. (prx)


Lesenswert?

doc schrieb:

> example the DMA unit takes 220 cycles and the CPU takes 536.

Mit dem richtigen Code kopiert die CPU mit annähernd maximalem 
RAM-Durchsatz, d.h. etwas mehr als 2 Takte pro Wort bei passendem 
Alignment. DMA kann das nicht.

von doc (Gast)


Lesenswert?

Hm, wie sähe so ein Code aus ?

Man braucht ja eine Schleife, und irgendwie muss ja irgendwas 
hochgezählt werden, Zeiger z.b. Das benötigt ja auch alles Takte (?).

von (prx) A. K. (prx)


Lesenswert?

Ich habe die Syntax grad nicht exakt im Kopf, aber sinngemäss

loop:
  ldmia quelladresse!,reglist
  stmia zieladresse!,reglist
  ldmia quelladresse!,reglist
  stmia zieladresse!,reglist
  subs counter,#1
  bne loop

mit maximal möglicher reglist.

von doc (Gast)


Lesenswert?

Ich vermute mal memcpy macht das so (? kann erst heute Abend nachgucken)

Diese Whileschleife zum Warten auf das DMA-Transferende ist eh 
suboptimal. Dabei kann die CPU doch während des DMA-Transfers noch 
andere Aufgaben übernehmen. Dann relativiert sich das sicherlich.
Obwohl, so viele Anwendungsfälle, wo das zwingend notwendig wäre, gibt 
es nicht.

Anonsten hast Du natürlich Recht, deine Variante scheint tatsächlich 
schneller zu sein.

von Rotax (Gast)


Lesenswert?

Das scheint wirklich interessant zu sein:
http://www.steitec.net/ARM/ARM-LPC1768-Cortex-M3-LCD-Board.html

Nur die 2-3 Wochen Lieferzeit schrecken mich einwenig ab. Gibt's das 
nicht noch wo anders?

von Rotax (Gast)


Lesenswert?

Hab mich dann für Luminary entschieden. Da ist die Lieferzeit wesentlich 
schneller.... (1-2 Tage über Watterott)

http://www.luminarymicro.com/products/lm3s8962_can_ethernet_evaluation_kit.html

von Tom (Gast)


Lesenswert?

Rotax, mit welchem Compiler verwendest du dies und wo hast du es 
bestellt (US?)?

von Tom (Gast)


Lesenswert?

Ziehe den zweiten Teil der Frage zurück ;)
und ändere den ersten Teil in: "welchen Compiler/Entwicklungsumgebung" 
wirst du verwenden?".

von Holger .. (aronadaal)


Lesenswert?

so, hab meinen 'alten' Mikrocontroller-Account wieder ausgegraben... 
Also, Rotax hier ;)

Ich hatte vor mittels USBProg und modifzierter JTAG-Firmware damit zu 
arbeiten. Siehe hier: Beitrag "Neue OpenOCD-Firmware für USBProg (18x schneller)"

Das heißt also gcc und als Entwicklungsumgebung TextMate (Mac OS X) oder 
Code::Blocks. Vielleicht aber auch Eclipse, aber davor hege ich ein paar 
innerliche Abneigungen. ;)
Den Rest wollte ich von Hand machen. Da lernt man dann noch einwenig 
was. Ansonsten teste ich mal die Entwicklungsumgebungen an, die mit auf 
der CD sind. Mit den IAR-Tools kann man schon einwenig was machen:
"Features IAR Embedded Workbench KickStart with 32KB address limit."

Oder hat hier jemand einen besseren Vorschlag?

von Arne (Gast)


Lesenswert?

Das LM Board hab ich auch noch... bzw. schon seit einem dreiviertel 
Jahr. Nix mit gemacht :-/
Habe vor zwei Wochen noch 130,-€ für das Segger J-Link bezahlt. Da es 
das jetzt für ~60,-€ gibt, würde ich da nicht lange fackeln und 
zuschlagen. Ist ein Profitool, das wir in der Firma auch einsetzen.

Mit den IAR Tools (32kB Kickstart) hab ich in der Firma ein BSP für 
STM32 hochgezogen - nie Probleme gehabt, die der Support nicht lösen 
konnte. Seit letzter Woche haben wir die EWARM-CM (Cortex only) Lizenzen 
im Einsatz.
Das LPC1768 Board werde ich mir aber auf alle Fälle mal ansehen.

von Cahya W. (cahya)


Lesenswert?

Wie wäre es mit Maple: http://leaflabs.com/Maple
Es sieht auch ziemlich interessant aus, Arduino mit Cortex M3.

von Holger .. (aronadaal)


Lesenswert?

ist aber z.Zt. ausverkauft.
Interssant ist es allemal!

von Oliver J. (skriptkiddy)


Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

Oben schon aufgeführt, ist bei Futurlec günstiger.

von Loonix (Gast)


Lesenswert?

@Herbert
>Als Chip kommt der STM32 von ST zum Einsatz. ST Datenblatt ist super!

Hast du überhaupt schon mal ein anderes Datenblatt in der Hand gehabt? 
Ich fand die Anfang 09 wirklich bescheiden, ist da was besser geworden?

von Oliver J. (skriptkiddy)


Lesenswert?

A. K. schrieb:
> Oben schon aufgeführt, ist bei Futurlec günstiger.

Sorry. Diesen Link hatte ich leider nicht aufgerufen.

von (prx) A. K. (prx)


Lesenswert?

> Hast du überhaupt schon mal ein anderes Datenblatt in der Hand gehabt?
> Ich fand die Anfang 09 wirklich bescheiden, ist da was besser geworden?

Man sollte natürlich rauskriegen, dass es neben dem Datasheet auch ein 
Reference Manual zur Familie gibt und dass einige Details zum Core in 
der Core-Reference von ARM stehen. Das ist aber bei vielen ARMs so.

Ebenso fallen die Beschreibungen deutlich knapper aus als die eines AVR 
Datasheets. Einerseits weil Anfänger nicht zum angenommenen Kundenkreis 
gehören, andererseits weil's sonst zu dick wird (lies: zuviel Arbeit, 
irgendeine arme Sau muss das ja alles schreiben).

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

A. K. schrieb:
> Ich habe die Syntax grad nicht exakt im Kopf, aber sinngemäss

Nun stell Dein Licht mal nicht unter den Scheffel :-) Das war doch gut 
improvisiert. Allerdings müssen die zu kopierenden Blöcke natürlich 
entsprechend granuliert sein. Und word-aligned.

Der Sinn des Mem2Mem DMA ist es nicht, mit der Geschwindigkeit zu 
glänzen, sondern den Prozessor nicht mit solch niederen Aufgaben zu 
betrauen. Falls der nicht ohnehin auf die Daten warten muss, kann er 
viele andere Dinge tun während der DMA Controller ackert.

Gruß
Marcus

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.