Forum: Mikrocontroller und Digitale Elektronik Experimentieren mit Microcontrollern, welche geeignet?


von Herr Bert (Gast)


Lesenswert?

Hallo Leute,

kann mir jemand ein paar hilfreiche Tipps geben?

Ich bin Neuling auf dem Gebiet der Microcontroller und würde gerne 
Erfahrungen damit sammeln.

Bisher habe ich bei meinen Elektronikprojekten, die eine ausgefeiltere 
Steuerung benötigten immer auf den PC zurückgegriffen und mittels Basic 
über den Parallelport gesteuert.
Deshalb eine Frage gleich vorweg: gibt es Basic-Tools für die 
Programmierung/Programmerstellung von Microcontrollern?
Ich kann zwar auch in gewissem Rahmen Assembler programmieren, aber für 
kompliziertere Schaltanwendungen oder gar kleinere bis mittlere 
Rechenoperationen wird sicher nur eine höhere Programmiersprache 
weiterhelfen.

Und dann stellt sich natürlich noch die Frage der hardwaremäßigen 
Programmierung. Super wäre natürlich ein Controller, der sich per 
serieller Schnittstelle quasi auf seinem Board programmieren ließe, ist 
aber kein Muß.
Ansonsten wäre es sicher auch kein Problem, ein Programmierboard 
zusammenzulöten.

Hier mal eine Aufzählung, was mir so vorschwebt:

-uC mit mindestens 16 (besser 24 oder 32) frei programmierbaren 
I/O-Ein/Ausgängen und ausreichend Speicher on Board für etwas längere 
Programme (ca.128kb?!)

-passendes Basic-Tool zur Programmerstellung

-Programmiersoftware plus Board für Win98 oder höher (am besten 
Freeware) und einen passenden Schaltplan fürs Programmierboard

Was haltet Ihr z.B. von uCs aus der 8051er-Familie?

Viele Grüsse und einen schönen Nach-Feiertag für die, die gestern frei 
hatten ;O)!

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hi,

aaallsooo ...

1. empfehle ich dir, lerne C. Das ist gar nicht so schwirig, ich komme 
auch von BASIC (vor 10J, weils mir zu lahm wurde auf dem PC).
C ist einfach viel flexibler, und sehr hardwarenah und schnell. 
Ausserdem weisst du mehr, was passiert, als mit Tokens um Dich zu 
werfen.

Microcontroller:
----------------

- Ein sehr guter Einsteigercontroller ist z.B. der AT Mega8 in DIL.
Den bekommste auf nem Steckbrett in 5mins zum laufen, ist sehr einfach 
zu programmieren, und hat - wie die ganze AVR Familie - ein super 
Datenblatt/Programmiermanual.

Programmieren kann man die über die parallele Schnittstelle und Ponyprog 
mit ein paar Widerständen, oder ein bischen Hardware und der seriellen.
Hier gibtz auch nen USB progger zu kaufen im Shop dieser Seite.

Grosser Vorteil ist weiter, dass man den sehr günstig bei Reichelt und 
ebay bekommen kann, und er Steckbrett-tauglich bzw. für den Hobbybereich 
lötbar ist.

- Möchtest Du richtung 32Bitter etwas machen, so empfehle ich dir 
entweder den ARM7 von NXP (Philips) LPC2148, als DEV Kit MCB2140 von 
Keil (www.keil.com),
oder den ARM Cortex-M3 von ST Microelectronics STM32, als Dev Board 
MCBSTM32, ebenfalls von Keil.

Diese Controller sind sehr performant, bringen ebenfalls einiges an 
Peripherie mit sich, und haben auch viel Speicher.
Allein die 32Bit bringen schon viel Rechenpower mit, dazu kommen die 
höheren Taktfrequenzen um 50MHz.

Auf diesen kann man auch nen Bootloader laden, und dann lässt sich der 
proz per serieller proggen.


Mit den o.g. Controllern habe ich selbst viel Erfahrung sammeln können, 
und es hat spass gemacht, damit zu arbeiten.


---
Auch zu empfehlen ist der AT91SAM7X von Atmel. Mit dem habe ich aber 
gerade erst angefangen so dass ich dazu noch nciht viel sagen kann.
Das schöne an dem ist, der hat Netzwerk mit drauf!

Suchst du einen 16Bitter, dann kannste den M16C nehmen. Die 16Bitter 
könnten aber wegen dem Cortex-M3 (z.B. von STM) auf dem absterbenden Ast 
sein.


---
Fazit:
Einstieg super-einfach mit AVR (AT Mega8 z.B.)
Wenn mehr Power: ARM Cortex-M3 (STM32)


Anmerkung:
Wenn du dein BASIC vergisst und mit C arbeitest brauchste auch viel 
weniger Speicher. Dies ist ein wichtiger Kostenpunkt bei µCs!



VG,
/r.

von Peter D. (peda)


Lesenswert?

Herr Bert wrote:

> Deshalb eine Frage gleich vorweg: gibt es Basic-Tools für die
> Programmierung/Programmerstellung von Microcontrollern?

Für AVR/8051 gibt es Bascom.

Allerdings ist C-Programmierung wesentlich verbreiteter.
Für AVR gibt es nen guten freien C-Compiler


> Ich kann zwar auch in gewissem Rahmen Assembler programmieren

Assembler ist am Aussterben. Außerdem ist Assembler für jede CPU 
verschieden, mit PC-Assembler kannst Du auf nem AVR garnichts anfangen.


> -uC mit mindestens 16 (besser 24 oder 32) frei programmierbaren
> I/O-Ein/Ausgängen und ausreichend Speicher on Board für etwas längere
> Programme (ca.128kb?!)

PC und MC unterscheiden sich grundsätzlich im Speicherbedarf.
Für nen MC sind 8kB schon ein sehr großer Wert, mit dem man viel 
programmieren kann.
Es sei denn, man will Spaghetticode aus Copy&Paste Monstern ohne jede 
Struktur und Unterfunktionen machen. Dann sieht man aber sehr schnell 
selber nicht mehr durch.


> Was haltet Ihr z.B. von uCs aus der 8051er-Familie?

Da ist z.B. der AT89C51CC03 sehr nett. Und der hat auch nen Bootloader 
mit dem man völlig ohne Programmiergerät sofort losmachen kann.


Bei den AVRs ist der ATMega168 zum Einstieg ideal.
Ein Bootloader ist ab Werk aber nicht drauf, den muß man erst 
einprogrammieren.


Peter

von Gunni H. (gunni)


Lesenswert?

Hallo.

Ich würde dir nen Atmega empfehlen.
Kannst mit nem kleinen Atmega16 oder Atmega32 anfangen, und wenn du 
merkst der speicher wird knapp kannste auch nen Atmega128 nehmen.

Die Avr können in Bascom programmiert werden. (Ist Basic, aber leider 
kein Freeware, jedoch als bis zu einer gewissen code größe kostenlos 
nutzbar)

Mit einem Bootloader lassen sich diese auch Seriel oder per usb 
Programmieren, allerding muss der Bootloader auch erstmal auf den chip.

viel erfolg.

von Sebastian (Gast)


Lesenswert?

Wenn man sowieso in Hochsprache programmiert, ist die darunterliegende 
Controllerarchitektur zweitrangig. Wenn Geschwindigkeit keine Rolle 
spielt, kann man auch Controller benutzen, die Basic über Firmware 
interpretieren (Basic-Stamp, C-Control Basic). Früher gab es auch 
8052AH-Basic. Hier im Forum hat jemand einen Atmel AVR-basierten 
Mikrorechner mit Bildschirmausgabe (Video) und Tastaturinterface 
entwickelt bzw. vorgestellt. BASIC-Compiler gibt es für AVR 
(BASCOM-AVR), aber genauso für PIC (viele Varianten) oder 8051.

Tip: Basic-Anwender werden von der hiesigen Assembler- und C-Fraktion 
bisweilen belächelt, also nicht provozieren lassen. ;)

von marvin m. (Gast)


Lesenswert?

Offenbar hält sich immer noch das Gerücht, Basic sei grundsätzlich ein 
Interpreter... Ist schon seit min. 25 Jahren nicht immer so.

Wenn Du bereits Basic kannst, spricht nichts dagegen, sich den Einstieg 
leicht zu machen und zusammen mit einem AVR (z.B. Mega-16, unter 4 Euro) 
den Bascom-Compiler zu benutzen. Man kommt damit sehr schnell zu einem 
Ergebnis und es gibt eine kostenlose Trial-Version, mit der man schon 
einiges anstellen kann. Bascom ist auch für 8051er verfügbar.

Wenn man dann mehr will, kann man immer noch C lernen - allerdings 
vorzugsweise erstmal auf dem PC...

Die 8051er sind altgedient, man bekommt sicherlich die größte 
Unterstützung für diese Controller, aber die Atmel-AVR sind im 
Bastler-Bereich neben den PIC (und anderen) auch stark vertreten. Im 
Endeffekt ist es Geschmackssache, welchen Controller man hernimmt - oder 
man hat ein konkretes Projekt, in dem die eine oder andere 
Funktionalität wichtig ist.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Sebastian wrote:
> Tip: Basic-Anwender werden von der hiesigen Assembler- und C-Fraktion
> bisweilen belächelt, also nicht provozieren lassen. ;)

Nun ja, dazu fällt mir nur aus nem anderen Forum (Showlaser, bin dort 
als Mod aktiv) der Kommentar von einem BASIC programmierer ein.

Und zwar habe ich mal ein eigenes printf (thprintf) geschrieben, welches 
kompatibel zum normalen printf ist, aber nur eine hand voll wichtiger 
Sachen kann. Dafür brauchts dann nur ~200Byte programmcode.

Was sagte der Basic-progger dazu?
"Wenn ich eine int-zahl ausgeben will brauche ich dazu nur 1 Token, also 
1 Byte, und keine 200"

--- no comment ---


BASIC ist halt ne schöne Einsteigersprache (hab damals den C64 damit 
gequält), aber wenn man ernsthaft was mit µCs machen will, sollte man C 
lernen.

Genauso, wie man sich unter Linux von Anfang an den vi als Editor nehmen 
sollte. Gibtz einfach überall und läuft überall :-)


> Wenn man dann mehr will, kann man immer noch C lernen - allerdings
> vorzugsweise erstmal auf dem PC...
Warum? Kann man auf dem µC genau so einfach lernen ... Besonders auf dem 
AVR!



VG,
/th.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Assembler ist am Aussterben.

Peter, und das von Dir? Nee, ne? Wenn man sich an eine Controllerfamilie 
hält, kann man in ASM durchaus noch ´was reißen :-)

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Travel Rec. wrote:
>>Assembler ist am Aussterben.
>
> Peter, und das von Dir? Nee, ne? Wenn man sich an eine Controllerfamilie
> hält, kann man in ASM durchaus noch ´was reißen :-)

g Wird aber insbesondere bei armcc nicht einfach. Hab mal armcc und 
gcc verglichen und ist echt hammer der unterschied. Hab so 1/3 weniger 
code beim armcc im Hinterkopf.

Schaut man sich den asm code an ist da wirklich nicht mehr viel drin, 
als dass sich der aufwand lohnt. Es sei denn, man mischt BASIC mit ASM 
**LOOL**



VG,
/th.

von Martin .. (xeox) Benutzerseite


Lesenswert?

hallo.

ich befasse mich auch erst 1/2 jahr mit microcontrolern. eingestiegen 
bin ich mit asm weil ich das vom pc konnte. wenn man die grundlagen 
kennt ist es auch kein problem mit anderen mnemonics klarzukommen. basic 
halte ich persönlich für eine vergewaltigung des ucs (obwohl ich am pc 
sehr gerne damit arbeite xD). c ist für den controler schnell gelernt 
und schon nach n paar stunden können sich die ergebnisse sehen lassen.

zum einstieg ist der atmega8 sehr zu empfehlen. besonders weils sehr 
viel soft- und hardwareausstattung dafür gibt. gut zu gebrauchen ist am 
anfang das entwicklungsboard von myavr 
(http://myavr.de/shop/article.php?artDataID=2). ist billig und leicht zu 
bedienen. als software solltest du jedoch gleich das avrstudio und sp12 
(finde ich persönlich einfacher zu bedienen als ponyprog) benutzen und 
nicht die teure software von denen die - außer zum setzen von fuses - 
meines erachtens eh nix taugt.. ;)

lg
xeox

von Carlos (Gast)


Lesenswert?

Hallo Herr Bert,
schau Dir mal den Mikrocontroller-Fernlehrgang vom Elektor-Verlag an:
Dort bekommst Du alles, was Du für den Einstieg braucht:

 - ein funktionsfähiges, fertig aufgebautes Board mit einem 8051, dem AT 
89C51CC03

 - eine umfassende Einführung in die Programmierung unter ´C´, für 
Anfänger !!

 - eine Einführung in den Hardware-Aufbau eines µC-Systems.

 - reichlich viele praktische Beispiele.

 - ein eLearning Angebot im Netz

 - ein 1-Tages-Workshop passend dazu.

Meiner Meinung nach gibt es für den ersten Einsteig wenig 
Vergleichbares, aber hierüber läßt sich sicherlich diskutieren.


Gruß

Carlos

von Peter D. (peda)


Lesenswert?

Random ... wrote:
> Travel Rec. wrote:
>>>Assembler ist am Aussterben.
>>
>> Peter, und das von Dir?

Ja natürlich.

Hast Du in den letzten 10 Jahren Code von mir in Assembler >1kB gesehen?
Ich nicht.

Da die ATtiny12/15 durch den ATtiny13/25 mit SRAM ersetzt worden sind, 
ist Assembler bei den AVRs nicht mehr nötig.

Ich schaue natürlich gerne mal in das Assembler-Listing, um zu 
verstehen, was der Compiler da gemacht hat. Insbesondere ein vergessenes 
volatile fällt da schnell auf.


Peter

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.