Forum: Mikrocontroller und Digitale Elektronik ARM - Fragen


von T. M. (tobma)


Lesenswert?

Guten Morgen,

in der Uni beginnen wir mit der Programmierung von Mikrorechnern - 
gleichzeitig beginnt in einem weiteren Fach die Programmierung in C++
Zu diesen Themen habe ich ein paar Fragen zu denen ich z.T. keine klaren 
Antworten finden konnte:

1: ARM Prozessoren werden in C Programmiert! Ist C++ ebenfalls möglich?

2: Da in der Uni ein ARM Mikrorechner eingesetzt wird, möchte ich mir 
ebenfalls einen für daheimzulegen. Dabei hatte ich bereits an den 
"EKI-LM3S3748" (http://www.watterott.com/de/EKI-LM3S3748) gedacht, da er 
bereits über ein display etc. verfügt. Was haltet Ihr von diesem Bord?

3: Ist es möglich bekannte Arduino Shields ebenfalls auf dem in Punkt 2 
genannten Board, bzw. generell mit ARM Prozessoren zu betreiben (auch 
für anfänger gedacht?) ?

4: Können ebenfalls z.B. Motoren und GPS Module mit ARM verwendet 
werden?



Da ich schon viel im Internet gesucht habe und der Vorlesungsstoff erst 
begonnen hat bin ich noch blutiger Anfänger in diesem Fachgebiet - auch 
wenn die ein oder andere Frage trivial für Kenner erscheint, nehmt es 
mir bitte nicht übel ;)


Gruß
tobma

von No Ing but old (Gast)


Lesenswert?

T. M. schrieb:
> 1: ARM Prozessoren werden in C Programmiert! Ist C++ ebenfalls möglich?
Ja, aber u.U. ineffizient.

> 2: Da in der Uni ein ARM Mikrorechner eingesetzt wird, möchte ich mir
> ebenfalls einen für daheimzulegen. Dabei hatte ich bereits an den
> "EKI-LM3S3748" (http://www.watterott.com/de/EKI-LM3S3748) gedacht, da er
> bereits über ein display etc. verfügt. Was haltet Ihr von diesem Bord?
Wenn ARM, dann ok. Evtl. Infos über gemeinsam genutzte Peripherie 
einholen.

> 3: Ist es möglich bekannte Arduino Shields ebenfalls auf dem in Punkt 2
> genannten Board, bzw. generell mit ARM Prozessoren zu betreiben (auch
> für anfänger gedacht?) ?
1. anfänger schreibt man am anfang gross -> Anfänger
2. ARM- uC sind aufwärtskompatible zu AVR-uC, wenn man sie 
ausschließlich in C programmiert - C ist unabhängig zur verwandten 
Hardware.
-ARM bedeutet keineswegs, dass er nur für ARMe Studenten geeignet ist, 
sondern ein Advanced Risk Microcontroller ist :-)

> 4: Können ebenfalls z.B. Motoren und GPS Module mit ARM verwendet
> werden?
Ja, so sie über die von diversen ARM uC verfügbaren Schnittstellen 
verfügen.

von Sebastian H. (sh______)


Lesenswert?

T. M. schrieb:
> 1: ARM Prozessoren werden in C Programmiert! Ist C++ ebenfalls möglich?


Das ist in etwa wie die Frage: "Fahren Autos über 100km/h?" Es gibt so 
eine große Auswahl an verschiedenen Prozessoren dass es eigentlich nicht 
möglich ist eine allgemeingültige Aussage zu treffen ohne das weiter 
einzugrenzen.


> 2: Da in der Uni ein ARM Mikrorechner eingesetzt wird, möchte ich mir
> ebenfalls einen für daheimzulegen. Dabei hatte ich bereits an den
> "EKI-LM3S3748" (http://www.watterott.com/de/EKI-LM3S3748) gedacht, da er
> bereits über ein display etc. verfügt. Was haltet Ihr von diesem Bord?

Ich hab ein LM3S6965 Board von TI und das läuft super und die Qualität 
ist auch sehr hochwertig. Dank StellarisWare gibt es für die TI Boards 
auch reichlich Demo-Code direkt vom Hersteller!

> Da ich schon viel im Internet gesucht habe und der Vorlesungsstoff erst
> begonnen hat bin ich noch blutiger Anfänger in diesem Fachgebiet - auch
> wenn die ein oder andere Frage trivial für Kenner erscheint, nehmt es
> mir bitte nicht übel ;)

Ein guter Einstieg in die µC Welt ist das Tutorial hier auf der Seite. 
Auch wenn es für 8Bit AVR gedacht ist, ist doch vieles auch für z.B. nen 
ARM CortexM1/3 o.ä. passend und dort sind die Datenblätter auch noch 
übersichtlicher für einen Einsteiger.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Mit den Shields ist es so, dass die normalerweise mit 5V Betriebs- und 
IO-Spannung laufen. ARM-CPUs laufen mit 1,8V/3,3V. Es gibt jedeoch 
welche, die an ihren IO-Pins 5V Signale vertragen ("5V tolerant").

Da das jedoch kein schöner weg ist, würde ich drauf achten, dass sich 
das jeweilige Shield, was du verwenden willst, komplett mit 3,3V 
betreiben lässt, dann kannst du es direkt n das ARM-Board packen.

von Volker (Gast)


Lesenswert?

http://www.olimex.com/dev/index.html
LPC-1766STK
76€

Gehört zu einer sehr verbreiteten Familie von NXP.
Zur LPC1xxx - Reihe findest Du hier auch einen Artikel
http://www.mikrocontroller.net/articles/LPC1xxx

Viel Spaß dabei ;-)

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

die LPC24xx können gleich auch noch Linux, aber ist doch einiges 
aufwendiger und auch nicht gerade billig ;)

Aber, jeder will hier einen anderen Empfehlen, schau dich lieber erst 
mal selbst um, such dir zwei-drei Boards raus, die dir gefallen und frag 
direkt zu diesen.

von Roland H. (batchman)


Lesenswert?

>> 1: ARM Prozessoren werden in C Programmiert! Ist C++ ebenfalls möglich?
> Ja, aber u.U. ineffizient.

Ich sehe keinen Grund, C++ nicht von Anfang an einzusetzen. Schon wenn 
man "nur" in C schreibt, werden dank C++ enums typsicher. Das ist 
effizienter (bessere Prüfungen des Compilers, z. B. geringere Codegröße 
bei Verwendung von const enums mit switch/case).

Ob man auf einem µC C mit der kompletten C stdlib verwendet, oder 
exzessiv C++ templates spielt keine Rolle. In beiden Fällen wird man 
nicht besonders glücklich.

Die Frage ist eigentlich nur, wo steht der Startblock. Der von C steht 
weiter hinten :-)

von JojoS (Gast)


Lesenswert?

Wenn das Board Uni kompatibel sein soll solltest du erstmal klären 
welche ARM Architektur verwendet wird:  TDMI, Cortex M0/3, ARM9.

von T. M. (tobma)


Lesenswert?

Hallo,

ich bin begeistert - mit so vielen Antworten hätte ich nicht gerechnet. 
Danke!
Ich werde mich gleich zu diesen Rückfragen äußern.

Gruß
tobma

von T. M. (tobma)


Lesenswert?

Volker schrieb:
> http://www.olimex.com/dev/index.html
> LPC-1766STK
> 76€

Das Board sieht auf den ersten Blick auch sehr gut aus, allerdings 
besitzt es nicht so viele I/O - Pins, oder?
Wie könnte ich an ein solches Board z.B. eine Cam oder ein GPS Modul 
anschließen ?

Gruß

von T. M. (tobma)


Lesenswert?

JojoS schrieb:
> Wenn das Board Uni kompatibel sein soll solltest du erstmal klären
> welche ARM Architektur verwendet wird:  TDMI, Cortex M0/3, ARM9.


Sorry habe ich in meiner ersten Frage vergessen mit einzubringen.
In der Uni wird ein Board eingesetzt welches einen ARM-basierten Cortex 
M3-Prozessor verfügt.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Und welcher Cortex-M3? Für die Programmierung mit der Peripherie ist es 
(imho) sinnvoll, da einfach gleich den richtigen zu nehmen. Eventuell 
sogar einfach auch das selbe Evalboard?

Gruß
Lasse

von T. M. (tobma)


Lesenswert?

Sebastian H. schrieb:
> Ich hab ein LM3S6965 Board von TI und das läuft super und die Qualität
> ist auch sehr hochwertig. Dank StellarisWare gibt es für die TI Boards
> auch reichlich Demo-Code direkt vom Hersteller!

Wenn ich mir das LM3S6965 was Sie besitzen anschaue ähnelt es ja sehr 
dem von mir (vorab) gewähltem Board: EKI-LM3S3748

Gibt es eine gute Seite mit Zusatzmodulen zu "unseren" Boards?

Gruß
tobma

von T. M. (tobma)


Angehängte Dateien:

Lesenswert?

Lasse S. schrieb:
> Und welcher Cortex-M3?

Genaues kann ich ihnen noch nicht sagen. Auf einem bild aus unserem 
Skript ist folgendes Board abgebildet (siehe Anhang)

Glaub auf dem Prozessor steht: STM32FJOD

Gruß

von (prx) A. K. (prx)


Lesenswert?

T. M. schrieb:

> Glaub auf dem Prozessor steht: STM32FJOD

STM32F103

Dann wärs wohl besser, ebensolche STM32 zu verwenden, statt der LM3. 
Denn der Core ist zwar gleich, aber Peripherie wie Ports, Timer, 
serielle Schnittstellen etc sind zwischen den diversen Familien wie 
LPC1xxx, STM32 und LM3 völlig verschieden, innerhalb aber meist gleich 
oder ähnlich. Forensuche und Artikel helfen weiter.

von T. M. (tobma)


Lesenswert?

A. K. schrieb:
> T. M. schrieb:
>
>> Glaub auf dem Prozessor steht: STM32FJOD
>
> STM32F103
>
> Dann wärs wohl besser, ebensolche STM32 zu verwenden, statt der LM3.
> Denn der Core ist zwar gleich, aber Peripherie wie Ports, Timer,
> serielle Schnittstellen etc sind zwischen den diversen Familien wie
> LPC1xxx, STM32 und LM3 völlig verschieden, innerhalb aber meist gleich
> oder ähnlich. Forensuche und Artikel helfen weiter.

OK wieder was dazugelernt. Nach einer kurzen Suche habe ich z.B. 
folgende zwei Boards ausfindig gemacht:

Nummer 1: http://www.futurlec.com/STM32_Development_Board.shtml

Nummer 2: http://www.quickembed.com/Tools/Shop/ARM/201001/64.html
          (STM32F103VCT6 LQFP100 Kit board, Price 99USD)

Da im laufe des Semesters ein LCD Display miteingebunden wird gefällt 
mir Nummer 2 relativ gut.
Kenne Sie spezielle Boards die so empfehlen würden?

Gruß
tobma

von (prx) A. K. (prx)


Lesenswert?

Obacht, Text- und Grafikdisplay sind zwei sehr verschiedene Paar Schuhe.

Wenn mit Display ein Grafikdisplay gemeint ist, käme auch das in Frage:
http://www.steitec.net/ARM-Boards/ARM-STM32F103-Cortex-M3-Board-Plus.html
http://www.steitec.net/ARM-Boards/ARM-STM32F-Cortex-M3-LCD-Board.html
aber Grafikdisplays sind nicht standardisiert, da funktioniert jedes 
anders.

Bei Textdisplay ist das HD44780-Interface sehr verbreitet. Dann evtl. 
Propox-Modul plus Eval-Board und Display:
http://www.propox.com/products/t_174.html?lang=en

NB: Hier ist Duzen üblich, Siezen ungebräuchlich.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Tipp: Warte einfach ein paar Tage und frag den Prof, welches Board das 
ist. Dann kannst du dir genau das richtige kaufen, oder eventuell sogar 
von der Uni ausleihen.

von T. M. (tobma)


Lesenswert?

Hallo du ;)

Hab dieverse Skripte und Seite der Uni gerade noch mal durchsucht.
Also im laufe der Zeit müssen wir ein zeichenbasiertes LCD (16 Zeichen) 
ansteuern sowie folgende Hardware: Avago HDSP-C5E3 (7 Segment-Zähler)

Es ist aber auch möglich bei den beiden Boards mit Grafik-Display 
zusätzlich über die GPIO 8 Kanal Schnittstelle oder die Steckpunkten ein 
Textdisplay anzuschliessen oder ?


Natürlich werde ich mich mit dem Professor noch mal beraten, allerdings 
möchte ich bereits eine kleine Vorauswahl treffen.

von (prx) A. K. (prx)


Lesenswert?

T. M. schrieb:

> Es ist aber auch möglich bei den beiden Boards mit Grafik-Display
> zusätzlich über die GPIO 8 Kanal Schnittstelle oder die Steckpunkten ein
> Textdisplay anzuschliessen oder ?

Ja. Grafikdisplays gibt es mit eingebauten Display-Controller oder ohne. 
Mit Controller sind sie relativ umgänglich. Obacht bei der 
Anschlusstechnik, Folienkabel sind eine haarige Sache. In grösseren 
Formaten sind diese Displays recht teuer. Displays ohne Controller sind 
nichts für Anfänger.

Eine flexible Lösung wäre die Propox-Variante. Da gibts beides, ein 
Textdisplay und ein Grafikdisplay 128x64 mit Controller

An Entwicklungsumgebung (IDE, Compiler) und Debugger-Probe denken. 
Meistens wird ein separater JTAG- oder SWD-Debugger vorausgesetzt, 
kostet extra. Der dann wiederum zum Entwicklungssystem passen muss und 
das sollte zu dem entsprechenden System der Uni passen. Auffällig bei 
dem Foto oben ist nämlich das Fehlen des sonst verbreiteten 20-Pin 
Anschlusses für einen Debugger. Die Probe könnte aber integriert sein, 
als Bestandteil des USB-Anschlusses wenn mit FT2232.

von Verwirrter Anfänger (Gast)


Lesenswert?

Der form factor des Boards aus dem Skript ist ja standard arduino. Das 
Ganze sieht dem Maple ( http://leaflabs.com/devices/ )  oder dem Cortino 
(http://www.bugblat.com/products/cor.html) recht ähnlich, aber genau 
passen die nicht.

von T. M. (tobma)


Lesenswert?

Verwirrter Anfänger schrieb:
> Der form factor des Boards aus dem Skript ist ja standard arduino.

Da könntest du recht haben.

Es wird halt in der Uni so sein, dass wir an das kleine Borad je nach 
Versuch diverse Module anstecken.
Zum Lernen und diverse Freitzeitprojekte würde ich halt gerne direkt ein 
Board kaufen, dass generell die Standarts hat und ebenfalls schon 
mögliche Extras, sodass ich nicht direkt bei zwei Zusatzmodulen alle 
Stecker belegt habe.

Gruß

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

T. M. schrieb:
> sodass ich nicht direkt bei zwei Zusatzmodulen alle
> Stecker belegt habe.

Das wird schwer. So "Standards" wie z.B. PCI beim PC wirst du auf keinem 
Controllerboard finden.

Und auf die Arduiono kann man nur ein Modul stecken. Wenn das nach oben 
hin die Pins weitergibt auf eine Steckerleiste, dann ergibt das halt 
"Sandwich-Boards". Allerdings kann man ja Pins in den seltensten Fällen 
mehrfach belegen.

Mit einem Satz Flachbandkabel auf Stiftleisten und einem kleinen 
Steckbrett bist du wohl am flexibelsten. So steckst du das ARM Board am 
Steckbrett an, die Erweiterungsplatine auch und mit Klingeldraht 
verbindest du was du verbunden haben willst.

von Verwirrter Anfänger (Gast)


Lesenswert?

Nils S. schrieb:
> Mit einem Satz Flachbandkabel auf Stiftleisten und einem kleinen
> Steckbrett bist du wohl am flexibelsten. So steckst du das ARM Board am
> Steckbrett an, die Erweiterungsplatine auch und mit Klingeldraht
> verbindest du was du verbunden haben willst.

Da kann ich nur zustimmen, ich benutz zwar auch ganz gerne den Arduino 
und daraus kann man auch ganz gut "Türme" bauen, aber zum selber basteln 
ist der nicht ideal.

Der <zensiert /> Abstand zwischen den Pins auf der oberen Leiste hat zur 
Folge, dass man keine einfachen Lochrasterplatinen nutzen kann, sondern 
sich jedesmal eine Platine ätzen und bohren muss. Wenn man nur fertige 
Module benutzt mag das ja gehen, aber das wird auf die Dauer doch recht 
teuer.

Ich würde ein Board empfehlen, dass schmall genug ist, um es direkt auf 
ein Steckbrett zu stecken. Beim Arduino wären das z.B.
http://www.watterott.com/de/Arduino-Mini
http://www.watterott.com/de/Arduino-Nano

Bei ARM könnten das
http://www.watterott.com/de/ARM-mbed-NXP-LPC1768-Development-Board
http://www.watterott.com/de/LPC1769-LPCXpresso

sein.
Grundsätzlich würde ich aber nehmen, was der Prof empfiehlt.

von T. M. (tobma)


Lesenswert?

Nachdem ich 3/4 des Tages auf der Suche im I-Net war habe ich einige 
Boards gefunden. Nur eine kleine Top 4 der Borads:

1. 
http://www.micro4you.com/store/dev-tools/arm/arm-stm32f107-development-board.html

2. http://www.steitec.net/ARM-Boards/ARM-STM32F-Cortex-M3-LCD-Board.html

3. 
http://www.micro4you.com/store/dev-tools/arm/stm32f103-development-board.html

4. 
http://www.steitec.net/ARM-Boards/ARM-STM32F103-Cortex-M3-Board-Plus.html

Also ich habe vor mit folgenden Boards den Prof zu besuchen.
Wie bereits erwähnt suche ich ein Board mit möglichst vielen 
Schnittstellen (auch z.B. Display) und auf Basis von STM32F103.

Mein Top 1 Board heißt STM32F107, meint Ihr das stellt ein großes 
Problem dar?
Desweiteren gibts 'DEN' Shop für diese Borads, da manche Seiten nicht 
immer soo vertrauenserweckend aussehen.

Und meine letzte Frage: Gibts es eine Seite für diverse Zusatzmodule?
z.B. eine übersicht für Module die GPIO (8 Kanal) Stecker verwenden.



Auch möchte ich noch mal DANKE für die vielen Bemühungen sagen!

LG
tobma

von (prx) A. K. (prx)


Lesenswert?

T. M. schrieb:

> Mein Top 1 Board heißt STM32F107, meint Ihr das stellt ein großes
> Problem dar?

Nein. Hat anderes USB und zusätzlich Ethernet, Rest gleich.

> Desweiteren gibts 'DEN' Shop für diese Borads, da manche Seiten nicht
> immer soo vertrauenserweckend aussehen.

Bei Steitec hätte ich keine Bedenken. Das Micro4you Board gibt es auch 
bei http://www.futurlec.com/STM32_Development_Board.shtml und die sind 
schon länger dabei und ok, auch der Versand ist nicht teurer als 
hierzulande, nur dauerts länger.

> Und meine letzte Frage: Gibts es eine Seite für diverse Zusatzmodule?
> z.B. eine übersicht für Module die GPIO (8 Kanal) Stecker verwenden.

Es gibt keinen Standard für solche Verbindungen, so sind beispielsweise 
bei Atmels STK500 und bei dem erwähnten STM32-Board VCC/GND vertauscht. 
Direkt passende Zusatzboards gibts gelegentlich für die Produkte eines 
Boardherstellers. Wie beispielsweise Mikroelektronika, aber die haben 
m.W. kein STM32. Oder eben wie das Arduino-System.

I/O-Module wie die von Futurlec und Mikroelektronika sind deshalb nicht 
unnütz, nur muss man die Verbindungen dann u.U. etwas zurechtpfriemeln.

Via ebay hatte ich mal ein Bündel 1-poliger Verbindungskabel mit 
beidseitig Steckern für die Stiftleisten solcher Pfostenverbinder 
besorgt. Damit kriegt man das auch ohne Löten von Zwischenpatches 
zustande.

von (prx) A. K. (prx)


Lesenswert?


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.