mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Cortex M3 Eval-Board


Autor: Rotax (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Robert Teufel (robertteufel)
Datum:

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

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

also ich benutze in der Firma (wegen STM32F10x) dieses hier:
http://www.iar.com/website1/1.0.1.0/658/1/?item=pr...
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-L...
(da kommt noch 19% EUSt drauf)
JTAG Interface (J-Link) für den privaten Gebrauch gibt es z.B. von 
Segger für 130,-€

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. W. (wiwil)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: P.F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DMA Mem2Mem:

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

Autor: A. K. (prx)
Datum:

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

Autor: doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DMA_Channel1->CCR = 0x00007AC0; //configure for mem2mem transfer
DMA_Channel1->CPAR = (unsigned int)src_arry; //set source and destination
DMA_Channel1->CMAR = (unsigned int)arry_dest;
DMA_Channel1->CNDTR = 0x000A; //set size of transfer
TIM2->CR1 = 0x00000001; //start a timer
DMA_Channel1->CCR |= 0x00000001; //start the DMA transfer
while(!(DMA->ISR & 0x0000001)) //wait till the transfer ends
{;}T
IM2->CR1 = 0; //halt the Timer
TIM2->CNT = 0; //Clear the count
TIM2->CR1 = 1; //restart timer
for(index = 0;index <0xA;index++) //repeat the operation using the CPU
{a
rry_dest[index] = arry_src[index];
}T
IM2->CR1 = 0; //halt the timer
}

>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 :-)

Autor: doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, da ist beim reinkopieren die Formatierung zerschossen. Bitte um 
Entschuldigung.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 (?).

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rotax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das scheint wirklich interessant zu sein:
http://www.steitec.net/ARM/ARM-LPC1768-Cortex-M3-L...

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

Autor: Rotax (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Tom (Gast)
Datum:

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

Autor: Tom (Gast)
Datum:

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

Autor: Holger .. (aronadaal)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Cahya Wirawan (cahya)
Datum:

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

Autor: Holger .. (aronadaal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist aber z.Zt. ausverkauft.
Interssant ist es allemal!

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rotax
Wirf mal einen Blick hier drauf:

Ebay-Artikel Nr. 110481753810

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oben schon aufgeführt, ist bei Futurlec günstiger.

Autor: Loonix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Oliver Ju. (skriptkiddy)
Datum:

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

Sorry. Diesen Link hatte ich leider nicht aufgerufen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.