Forum: Mikrocontroller und Digitale Elektronik Cortex M3 Development - Was brauche ich noch alles?


von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

ich liebäugle mit diesem Board von dem Verkäufer. Arm Cortex M3 CPU. Bin 
bisher ARM7 TDMI geschädigt und meine gelesen zu haben, dass das 
Programmiermodell der Cortex Mx einfacher ist, nur noch Thumb 
Befehlssatz, und sogar eine standardisierte HAL (Layer 1)existiert 
CMSIS, die die Peripherie auf C-Strukturen mapped, so dass das 
Programmieren der Hardware etwas einfacher wird.

http://www.ebay.de/itm/NEU-NXP-ARM-Cortex-M3-LPC1768-Development-Board-3-2-TFT-LCD-Module-64KB-SRAM-/320942666451?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4ab9ac72d3

Was brauche ich noch alles (nur Freeware!), um loslegen zu können? Ich 
habe noch einen Olimex Wiggler (USB) um die JTAG anzusprechen, den 
brauche ich also nicht, JTAG ist JTAG denke ich mal.

Wie siehts mit der Programmierumgebung aus und welchen Compiler muss ich 
in diese installieren? GCC? Meine Lizenz für Rowley Crossworks ist 
leider älter von 2004 und hat die Cortex Familie nicht drin. Aber 
Singlestep Debugging, schön mit Leuchtbalken und Watchfenstern etc 
sollte möglich sein.

von Juergen G. (jup)


Lesenswert?

Wenn Du mit den LPC's liebaeugelst, kauf Dir vorab einen mbed,
da ist alles dabei was Du brauchst und Du bekommst access zu einem 
online Compiler und den ganzen Lib's von NXP.

Danach kannst Du Dir dann das ebay board kaufen und den mbed als 
Programmer benutzen.

von Christian J. (elektroniker1968)


Lesenswert?

Ihhh..... der sieht ja aus wie  ein Arduino Nano :-( 56 Euro bei 
Watterod, Wucher! Nee, zu wenig Speck dran, kann man ja nichts mit 
machen ohne Targethardware. Sehe aber grad auf der mbed Seite, dass die 
das Sorglos Paket da zum Download anbieten.... aber "Online 
Compiler".... nee, ich möchte den GNU CC haben.

von Marc Rupprath (Gast)


Lesenswert?

Hallo;
zum Thema Programmierumgebung:siehe mal unter CooCox / CooIde:
http://www.coocox.org/index.html

von Harry L. (mysth)


Lesenswert?

Ich spiel auch mit dem Gedanken mir sowas zuzulegen.
GCC-Toolchain kannst du hiermit ganz einfach aus den Quellen selber 
bauen:
http://crosstool-ng.org/
Ich hab gerade damit eine für den Raspberry Pi gebaut.
Funktioniert sehr komfortabel.

von Dr. Sommer (Gast)


Lesenswert?

Noch komfortabler ist es eine Toolchain fertig downzuloaden:
https://launchpad.net/gcc-arm-embedded

Schau im Wiki unter STM32: GCC und STM32: Programmierung, das ist 
zwar für die STM32 Controller aber das Software-Setup ist das selbe, da 
auch Cortex-M3/4F.

von arc net (Gast)


Lesenswert?

Wenn's auch was anderes sein darf...
Silicon Labs hat eine sehr gute, kostenlose Entwicklungsumgebung für 
ihre Cortex-M3 (leider noch nicht für die von Energy Micro übernommenen)
http://www.silabs.com/products/mcu/Pages/32-bit-mcu-software.aspx#suite

Cypress für die PSoCs ebenso
http://www.cypress.com/?id=2494

von Christian J. (elektroniker1968)


Lesenswert?

Danke für die ganze Tipps und Links !!!!! Super!  Glaube Coocox wäre was 
für mich...

von K2R (Gast)


Lesenswert?

Gugg mal da : http://www.emide.org/
Läuft prima zusammen mit dem Segger JLink Edu

von Juergen G. (jup)


Lesenswert?

Dann muss ich doch etwas weiter ausholen.

Christian J. schrieb:
> Ihhh..... der sieht ja aus wie  ein Arduino Nano

So ist er auch zu verstehen.
USB Kabel anstoepseln und loslegen, nichts weiter erforderlich.
Keine Compiler zu bauen oder IDE's anpassen.
Keine Datenblaetter lesen.
Der ideale Einstieg.

>:-( 56 Euro bei
> Watterod, Wucher! Nee, zu wenig Speck dran


Der Preis beim mbed kommt nicht von der Hardware, sondern vom Zugriff 
auf den online compiler und die Community dahinter.
Das was da zum Download steht, ist nur die mbed lib, nicht die Libs der 
Community.
Mit den Libs der Community, einem mbed, dem online compiler und einem 
MagJack hast Du in 3 min einen Webserver am laufen.
Das gilt nicht nur fuer einen Webserver sondern fuer alles erdenkliche 
was man mit einem uC machen kann.
Im Klartext soll das heissen, die Infos an die man durch den mbed kommt 
wiegen den ++Preis tausend mal auf.

In der mbed community hab ich auch geschrieben wie man eclipse mit dem 
gcc und den mbed libs auf einem PC zum laufen bekommt ohne den online 
compiler zu benutzen.

Wenn Du Dich dann mit dem mbed in die Materie eingearbeitet hast, kannst 
Du Dir ein richtiges DevBoard mit viel Speck kaufen oder bauen und der 
mbed dient Dir immer noch als Programmer/Debugger.

Am Ende sei noch erwaehnt, dass ich inzwischen von den LPC's ein wenig 
abgekommen bin und mehr mit den STM32's mache.
Spezielle Gruende dafuer sind das es mir leichter faellt die STM RM's zu 
lesen und zu verstehen als die von NXP und das es mehr allgemeine 
Informationen zu den STM32's im Netz gibt als zu den LPC's.


Der mbed bleibt aber als "rapid prototyping plattform" ungeschlagen.

von W.S. (Gast)


Lesenswert?

Juergen G. schrieb:
> So ist er auch zu verstehen.
...
> Keine Datenblaetter lesen.
> Der ideale Einstieg.

Ah ja. Da hat einer den Eingang zum Schlaraffenland entdeckt.

Nur Preis.
Kein Fleiß.

Na denne.

W.S.

von Juergen G. (jup)


Lesenswert?

W.S. schrieb:
> Ah ja. Da hat einer den Eingang zum Schlaraffenland entdeckt.
>
> Nur Preis.
> Kein Fleiß.

Nicht "einer", tausende naemlich alle die die mit Arduino anfangen.

NXP nennt es nur anders, da heisst es "rapid prototyping"

von Maxwell (Gast)


Lesenswert?

Oder ein Tiva Board für 12$ bei Texas Instruments
bestellen. IDE ist dann Eclipse basierend zum Download.
Spricht aber nichts gegen einen Umstieg auf einen GCC Compiler.
Die low Level Treiber findet man bei TI unter TivaWare

von Christian J. (Gast)


Angehängte Dateien:

Lesenswert?

Juergen G. schrieb:
> Dann muss ich doch etwas weiter ausholen.

Danke Dir erstmal für deine ausführlichen Ausführungen. Klar, die Infos 
sind wichtig, wüsste heute gar nicht mehr wie ich ohne Internet 
entwickeln sollte aber in den 90igern ging das auch, man ging eben in 
eine Bücherei oder Buchladen.

Derzeit bin ich noch Arduino verseucht, werde das erstmal auf Eclipse 
umdoktorn, da die einfache Shell bereits ausgereizt ist und ich 
"richtig" programmieren möchte. Da das Physical computing spannender ist 
als zb das was  man mit einem Rasbperry machen kann will ich das auch 
mit dem Cortex weiter verfolgen, also Hobbyanwendungen (echte habe ich 
nicht), die was machen, tun, sich bewegen, messen usw.

Und ich hoffe das schaut dann genauso schick aus wie mein Ardunio 
Testbrett :-)

Gruss,
Christian

von Juergen G. (jup)


Lesenswert?

whao, so aufgeraeumt siehts auf meinen Steckbrettern nie aus.

@Christian J.
meld Dich mal an, dass ich Dir eine PN senden kann

Ju

von Joachim .. (joachim_01)


Angehängte Dateien:

Lesenswert?

You call this a Steckbrett? That's not a Steckbrett.

This is a Steckbrett!


Ich hab hier u.a. zwei DUE um damit am CAN-Bus rumzuspielen. Die Dinger 
sind eigentlich nicht ganz billig aber ich habe die paar Euro mehr im 
Vergleich zu STM ooder NXP nicht bereut, denn die auf Visual Studio 
basierende IDE ist Gold gegen alles was ich bisher so sah. Intellisense, 
Codevervollständigung und eingebautes Terminal funktionieren fehlerfrei. 
Ehrlich, dagegen ist das Netbeans-Zeug von Microchip die reinste Seuche.

von Juergen G. (jup)


Lesenswert?

Yeah, that comes very closed to how it looks on my desk while developing 
a system.


Das mit der IDE ist Geschmackssache.

von Kindergärtner (Gast)


Lesenswert?

Joachim ... schrieb:
> denn die auf Visual Studio
> basierende IDE ist Gold gegen alles was ich bisher so sah. Intellisense,
> Codevervollständigung und eingebautes Terminal funktionieren fehlerfrei.
Witzig, viele andere fluchen genau darüber...
Glücklicherweise hängt Intellisense etc. nicht von der Ziel-Plattform 
ab, das kann man auch für die STM32 etc. zweckentfremden. Oder eclipse 
nehmen, das kann das nämlich auch alles ganz wunderbar. Die STM32 
Dev-Boards sind nicht nur billiger, sondern auch leistungsfähiger...

von Juergen G. (jup)


Lesenswert?

@Kindergärtner

Pssstttt, damit trittst Du eine Lawine los.

Nichts von Goethes Zauberlehrling gelernt?

von Christian J. (elektroniker1968)


Lesenswert?

Joachim ... schrieb:
> This is a Steckbrett!

Jo, damit kannste dich bei "Fingers elektzrische Welt bewerben" aber
mehr auch nicht. Perfektion ist angesagt und Dokumentation damit ich den 
Ramsch auch 3 jahre später noch verstehe.

Gilt natürlich auch im Code.... ;-)
1
////////////////////////////////////////////////////////////////////////////////////
2
/*
3
    Funktion:   CalcSonnenAufgang()
4
    Modul   :   rtc_user.c
5
    --------------------------------------------------------------------------------
6
    Beschreibung            : Berechnet den Sonnenaufgang und Untergang
7
8
    Zeitgleichung:          WOZ - MOZ = -0.171*sin(0.0337 * T + 0.465) - 0.1299*sin(0.01787 * T - 0.168)
9
                            Deklination = 0.4095*sin(0.016906*(T-80.086))
10
                            Zeitdifferenz = 12*arccos((sin(h) - sin(B)*sin(Deklination)) / (cos(B)*cos(Deklination)))/pi;
11
                            Sonnenaufgang h=-50 Bogenminuten = -0.0145
12
13
                            Aufgang Ortszeit = 12 - Zeitdifferenz - Zeitgleichung
14
                            Untergang Ortszeit = 12 + Zeitdifferenz - Zeitgleichung
15
16
                            Aufgang = Aufgang Ortszeit - geographische Länge /15 + Zeitzone
17
                            Untergang = Untergang Ortszeit - geographische Länge /15 + Zeitzone
18
19
    aufgerufene Funktionen  :
20
    Eingabeparameter        : ptr           (Zeiger auf aktuelle Zeit für Sommerzeit)
21
                              sonne         (Zeiger auf Ergebnisstruktur
22
                              T             (Tag des Jahres)
23
    Rückgabe                : -
24
    veränderte Globals      : SAG_Std,SAG_Min, SUG_Std,SUG_Min
25
    öffentlich/private      : öffentlich
26
27
    Autor:  Christian J.
28
    letzte Änderung: 20.2.2005
29
*/
30
////////////////////////////////////////////////////////////////////////////////////
31
32
33
uint8_t CalcSonnenAufgang(zeit_t *ptr, struct sonnenstand *sonne, uint16_t T)
34
{
35
    #define hoehe   -0.0145     // Sonnenhöhe in RAD
36
    #define PI      3.141592654
37
38
    float   B,
39
            Deklination,        // Deklination der Sonne
40
            Zeitdiff,           // Zeitdifferenz
41
            DIFF_WOZ_MOZ,
42
            Aufgang_MOZ,        // Aufgang mittlere Ortzeit
43
            Untergang_MOZ,      // Aufgang mittlere Ortszeit
44
            Aufgang_WOZ,        // Aufgang wahre Ortszeit
45
            Untergang_WOZ;      // Untergang wahre Ortszeit
46
47
    static  uint16_t oldvalue = 0;
48
49
50
    // Prüfen, ob Berechnungen für aktuellen Tag bereits vorliegen
51
52
    if (oldvalue == T)
53
        return 1;
54
55
    oldvalue = T;
56
57
    // Berechnungen
58
    B = PI *N_BREITE / 180;
59
    Deklination = 0.4095*sin(0.016906*(T-80.086));
60
    Zeitdiff = 12*acos((sin(hoehe) - sin(B)*sin(Deklination)) / (cos(B)*cos(Deklination)))/PI;
61
    DIFF_WOZ_MOZ = -0.171*sin(0.0337*T+0.465) - 0.1299*sin(0.01787*T-0.168);    // WOZ-MOZ
62
63
    Aufgang_MOZ   = 12 - Zeitdiff - DIFF_WOZ_MOZ;
64
    Untergang_MOZ = 12 + Zeitdiff - DIFF_WOZ_MOZ;
65
66
    Aufgang_WOZ   = Aufgang_MOZ + (15 - O_LAENGE)*(float)4/60;
67
    Untergang_WOZ = Untergang_MOZ + (15 - O_LAENGE)*(float)4/60;
68
69
70
    // Sommerzeit berücksichtigen
71
    if (IsSommerzeit(ptr)) {
72
        Aufgang_WOZ = Aufgang_WOZ + 1;
73
        Untergang_WOZ = Untergang_WOZ + 1;
74
    }
75
76
    // globale Float Werte setzen
77
    sonne->f_SAG = Aufgang_WOZ;
78
    sonne->f_SUG = Untergang_WOZ;
79
    sonne->f_Tagdauer = sonne->f_SUG - sonne->f_SAG;
80
81
    // Umrechnung in Stunden/Minuten
82
83
    sonne->SAG_Std = floor(Aufgang_WOZ);                    // Sonnenaufgang
84
    sonne->SAG_Min = (Aufgang_WOZ - (float)sonne->SAG_Std) * 60;
85
86
    sonne->SUG_Std = ceil(Untergang_WOZ)-1;             // Sonnenuntergang
87
    sonne->SUG_Min = (Untergang_WOZ - (float)sonne->SUG_Std) * 60;
88
89
    return 1;
90
}

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Das Steckbrett erinnert mich an das .... MP3 Decoder mit UKW 
Sendereinheit für den privaten Rundfunk auf nem "Finger" Treffen. Der 
blaue Kondensator koppelt wohl das Audiosignal des DAC auf de Modulation 
der HF Stufe....

von ./. (Gast)


Lesenswert?

Preisgünstiger geht es hier zu:
http://www.ebay.com/sch/haoyu_electronics/m.html?rt=nc

Ein Webserver in 10 min ging damit:
http://www.ebay.com/itm/NXP-ARM-Cortex-M3-LPC1768-Mini-DK2-Development-board-2-8-SPI-Interface-TFT-LCD-/181045429910?pt=LH_DefaultDomain_0&hash=item2a27260696
auch.

Lieferzeit ca. 7 Tage

Beim LCD kann man zwischen SPI und 16 Bit-Parallelinterface wählen.

von W.S. (Gast)


Lesenswert?

Juergen G. schrieb:
> Nicht "einer", tausende naemlich alle die die mit Arduino anfangen.

Oh ja. Das werden dann die Chefentwickler von morgen.
(Grund: ab einer gewissen Position baucht man nur noch einen Finger...)

W.S.

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.