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)!
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.
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
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.
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. ;)
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.
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.
>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 :-)
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.
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
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
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