Forum: Mikrocontroller und Digitale Elektronik ARM Einstieg


von Fire Eagle (Gast)


Lesenswert?

Hallo!

Ich würde mich gerne mal an ARMs versuchen. Jetzt stehe ich vor der 
Wahl: STM32F103 oder LPC1114 (möchte einen modernen Corex verwenden, 
also nicht ARM7).

Hab mir beide schon angesehen und würde zu dem LPC tendieren, der ist 
wahrscheinlich überschaubarer für den Anfang. Der STM32 kann zwar mehr, 
aber da muss man sich auch erst in die Peripheral Libraries einarbeiten.

Als IDE hätte ich entweder IAR Kickstart oder besser (weil keine 
Begrenzung) LPCXpresso gewählt.
Verwendet der LPCX den GCC?
Wie sieht es mit den Libraries der beiden aus? Wo finde ich da Infos, 
wie ich z.B. mit Interrupts umgehe bzw. eine Doku der gesamten Library? 
Bei AVRs gibts ja die sehr gute Doku zur avr-libc, wo auch gcc-Themen 
behandelt werden. (BTW: Ist die Interruptbehandlung Compilersache oder 
Aufgabe der Library? Mir sind die Abgrenzungen da nicht so klar)

Muss ich bei den beiden Umgebungen mit Startup und Linker beschäftigen 
oder geht das automatisch wie beim AVR?

Danke euch!

von Eumel (Gast)


Lesenswert?

Wenn du noch 29 Tage warten kannst: Das neue Launchpad von TI :)

von Fire Eagle (Gast)


Lesenswert?

Hallo!

Bräuchte bitte noch Hilfe bei den Libraries (siehe 1.Post)

von Roland H. (batchman)


Lesenswert?

> Ich würde mich gerne mal an ARMs versuchen. Jetzt stehe ich vor der
> Wahl: STM32F103 oder LPC1114 (möchte einen modernen Corex verwenden,

Was verstehst Du unter "modern"?

Der stm32f103 kann nicht gleichzeitig CAN und USB, der lpc1114 ist ein 
Cortex-M0. Manche würden sagen, dass das nicht unbedingt modern ist.

> Der STM32 kann zwar mehr,
> aber da muss man sich auch erst in die Peripheral Libraries einarbeiten.

Diese "libraries" gibt es auch für den/die LPCs. Das wäre kein 
Unterschied.

Fire Eagle schrieb:
> Als IDE hätte ich entweder IAR Kickstart oder besser (weil keine
> Begrenzung) LPCXpresso gewählt.

LPCXpresso hat auch eine Begrenzung, m. W. liegt diese bei max. 128kb 
Flash zum Debuggen. Bei dem genannten lpc wohl kein Problem.
Beides ist keine "freie" SW - somit würde ich sagen, dass beide begrenzt 
sind. make und Editor funktionieren tadellos als IDE.

> Wo finde ich da Infos,
> wie ich z.B. mit Interrupts umgehe bzw. eine Doku der gesamten Library?

Es gibt genügende Beispiele zusammen mit den libraries.

> Ist die Interruptbehandlung Compilersache oder
> Aufgabe der Library

Es ist eher Deine Sache ...

> Muss ich bei den beiden Umgebungen mit Startup und Linker beschäftigen
> oder geht das automatisch wie beim AVR?

Vermutlich liefern die das mit. Wer sich freier bewegt, wird um dieses 
Thema nicht herumkommen. Ich verstehe allerdings nicht, was daran so 
schlimm sein soll. Wer mit AVR GCC PROGMEM zurecht kommt, wird das auch 
überstehen :-) Im Gegensatz zu PROGMEM ist das relativ allgemeines 
Wissen, was einem auch auf anderen Architekturen wie msp430, PIC32, 
Renesas RX sehr hilfreich sein kann - in diesen Fällen habe ich von der 
Erfahrung rund um Startup-Code und Linker-Skripten sehr profitiert.

von gerhard (Gast)


Lesenswert?

hallo,
atmel wäre auch eine option.
die sam3/4 familie hat interessante peripherals und das atmel sudio 
wirst du vielleicht von den avr's schon kennen.

gruss
gerhard

von Felix L. (flex)


Lesenswert?

Eumel schrieb:
> Wenn du noch 29 Tage warten kannst: Das neue Launchpad von TI :)

Wo kann ich das nachlesen? Hoffentlich wird das so günstig wie das MSP 
:D

von Eumel (Gast)


Lesenswert?

Beitrag "ARM Cortex M4 Launchpad"

69 Dollar Cent mehr, das wirst du verkraften können ;)

von Felix L. (flex)


Lesenswert?

Danke,
das sieht ja mal wirklich super aus.
Bin ich mal gespannt :D

von Joachim .. (joachim_01)


Lesenswert?

>Jetzt stehe ich vor der Wahl: STM32F103 oder LPC1114 (möchte einen modernen 
>Corex verwenden, also nicht ARM7).
Hat der M3 nicht einen ARM7-Kern? Oder bin ich falsch informiert?

von Frank K. (fchk)


Lesenswert?

Joachim ... schrieb:
>>Jetzt stehe ich vor der Wahl: STM32F103 oder LPC1114 (möchte einen modernen
>>Corex verwenden, also nicht ARM7).
> Hat der M3 nicht einen ARM7-Kern? Oder bin ich falsch informiert?

Du verwechselst die Architektur (ARMv7M) mit der Implementation 
(ARM7TDMI).

fchk

von Fire Eagle (Gast)


Lesenswert?

Könnte man den LPC114 auch von Grund auf (ohne Libraries für 
adc,spi,...) programmieren, ohne dass man sich um Linker und Startup 
kümmeren muss?
Also so, wie das mit WinAvr üblich ist?

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Ich würde mit dem STM32F407-Discovery beginnen.
Gibt es für 15 Euro z.B. bei RS.

Gegenüber dem Stellaris hat es deutliche Vorteile:
- mehr als doppelt so hohe Taktung
- 4x mehr Flash
- 6x mehr RAM
- wesentlich mehr I/O-Pins

Doku und Libraries sind sehr brauchbar.

Chris D.

von Fire Eagle (Gast)


Lesenswert?

Bin gerade dabei, mich weiter "durchzuforsten".
Stimmt es, dass ich CMSIS brauche, um überhaupt mit interrupts arbeiten 
zu können?

von Fire Eagle (Gast)


Lesenswert?

bzw. wie funktioniert das genau mit den Interrupts beim 1114?
Muss man da jeden einzelnen aktivieren und auch global?
Irgenwie finde ich da im Datasheet nichts.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Fire Eagle schrieb:
> Bin gerade dabei, mich weiter "durchzuforsten".
> Stimmt es, dass ich CMSIS brauche, um überhaupt mit interrupts arbeiten
> zu können?

Vielleicht noch eingeschoben: Wir kommen auch von der AVR-Schiene und 
beschäftigen uns jetzt knapp drei Monate nebenher mit dem STM32F4, sind 
also auch noch Einsteiger.

Du kannst, musst die Bibliotheken aber nicht benutzen.

Grundsätzlich kannst Du wie bei den AVRs auch direkt in die Register 
z.B. der UART-Schnittstellen schreiben. Die entsprechenden 
Registerdefinitionen gibt es auch. Wenn es später richtig schnell sein 
muss, dann macht man das auch so und umgeht die teuren Funktionsaufrufe.

Zu der Peripheral Library von ST gibt es ganz unterschiedliche 
Meinungen. Die einen verdammen sie in Grund und Boden, andere finden sie 
zumindest zum Einstieg hilfreich (dafür sind sie laut ST auch 
hauptsächlich gedacht).

Ich persönlich finde sie ganz hilfreich. Ohne die Structs verliert man 
mMn sehr schnell den Überblick darüber, was man denn nun überhaupt in 
welches Register schreiben muss, um ein Hardwaremodul zu initialisieren.

Den Startup-Code kannst Du natürlich auch selbst schreiben, aber 
zumindest beim STM32F4 muss man erstmal die Taktversorgung etc. 
einrichten. Das ist doch etwas mehr Arbeit als beim AVR.
Der mitgelieferte Startup-Code ist schon nah am Optimum - und bei dem 
reichlichen Platzangebot (1MByte Flash beim STM32F407) interessiert das 
nicht mehr wirklich ;-)

Chris D.

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.