Pimpino

09.08.2009, 12:00 (editiert von Pimpino am 09.08.2009 um 12:01) |
Programmierung eines Mikrocontrollers (Elektronik) |
Hallo zusammen,
ich würde mich gerne praktisch mit dem Thema Mikrocontroller befassen.
In der Schule hatten wir vor einiger Zeit ein fertiges Board mit einem 80C552, welches in C programmiert wurde. Die eigentliche Programmierung war für mich kein Problem (Vorkenntnisse in Java und PHP).
Doch nun möchte ich selbst die ersten LEDs über einen Mikrocontroller blinken lassen. Als Controller hatte ich den ATmega16 favorisiert. Programmieren würde ich ihn gerne über die USB-Schnittstelle, da mein Laptop kein RS232 mehr hat. Somit müsste ISP am meisten Sinn machen.
Als Programmierumgebung würde ich das AVRStudio vorschlagen; damit soll laut Wikipedia auch C-Programmierung möglich sein.
Als erstes benötige ich daher einen USB -> ISP Adapter. Bei Amazon hatte ich einen für etwa 17€ gefunden; auf einigen Bastlerseiten werden auch vereinzelt Schaltpläne dafür veröffentlicht.
Meine erste Frage also:
Würde sich der Selbstbau lohnen? Wenn ja, hat schon jemand so einen Adapter gebaut? Welchen?
Wichtig wäre dabei auch die Kompatibilität mit dem AVR-Studio.
Für Alternativen bin ich jederzeit offen; ich äußere nur meine Grundgedanken. 
PS: Falls dieses Projekt erfolgreich sein sollte, würde ich ein Skript davon für das Elektronik-Kompendium erstellen... |
x y
09.08.2009, 13:07
@ Pimpino
|
Programmierung eines Mikrocontrollers |
» ich würde mich gerne praktisch mit dem Thema Mikrocontroller befassen.
www.mikrocontroller.net kennst du?
» Als erstes benötige ich daher einen USB -> ISP Adapter.
www.olimex.com |
Gast
09.08.2009, 13:48
@ Pimpino
|
Programmierung eines Mikrocontrollers |
Baue dir keinen eigenen ISP Programmer
das lohnt sich gar nicht wirklich.
Entweder sehr langsam oder du wirst das nicht hinbekommen.
Kaufe dir am besten nen AVR ISP MK2 und sei froh
damit. Er kommt im Gehäuse funktioniert
super, ist im AVR Studio eingebunden, hat USB und ist
unkaputtbar.
Es ist ein hohes Frustpotenzial wenn der Programmer
nicht funktioniert und man an alles außer gerade
an das denkt.
P.S:
www.mikrocontroller.net kann ich nur empfehlen! |
Pimpino

09.08.2009, 13:49
@ x y
|
Programmierung eines Mikrocontrollers |
» www.mikrocontroller.net kennst du?
Ja, da hatte ich auch eine Suche in alten Threads durchgeführt. Die Frage nach einem Adapter wurde auch öfter gestellt; nur diese Threads liefen nie auf eine endgültige Lösung hinaus. So wollte ich es erst hier im ELKO versuchen...
» » Als erstes benötige ich daher einen USB -> ISP Adapter.
»
» www.olimex.com
Hm, eine Seite für sich.
Hat dort schon jemand bestellt? Ich habe beim ersten Ansehen keine Preise gefunden... |
Pimpino

09.08.2009, 13:59
@ Gast
|
Programmierung eines Mikrocontrollers |
» Baue dir keinen eigenen ISP Programmer
» das lohnt sich gar nicht wirklich.
» Entweder sehr langsam oder du wirst das nicht hinbekommen.
» Kaufe dir am besten nen AVR ISP MK2 und sei froh
» damit. Er kommt im Gehäuse funktioniert
» super, ist im AVR Studio eingebunden, hat USB und ist
» unkaputtbar.
... und kostet ca. 35€.
Gibt es jemanden der den AVR ISP MK2 bereits verwendet?
» Es ist ein hohes Frustpotenzial wenn der Programmer
» nicht funktioniert und man an alles außer gerade
» an das denkt.
Und da ich mit USB-Technik noch nicht sehr vertraut bin kann dies relativ schnell passieren.
OK, also ich halte dann mal fest:
KAUF eines USB->ISP - Adapters. Frage: Welcher?
» www.mikrocontroller.net kann ich nur empfehlen!
Dort gibt es auch eine "Anleitung" zum Einstieg in die Programmierung. Allerdings wird dort irgendwann ein gekauftes Board verwendet.
Ein Board würde bei mir eher nicht in Frage kommen, da ich den Controller (irgendwann) einmal verbauen möchte.
Eine technische Frage habe ich noch:
Viele Controller besitzen einen Flash- und EEPROM-Speicher. Wegen der schnelleren Verfügbarkeit wird das eigentliche Programm ja in den Flash geschrieben.
MUSS auch etwas im EEPROM hinterlegt werden? |
x y
09.08.2009, 14:21
@ Pimpino
|
Programmierung eines Mikrocontrollers |
» » www.olimex.com
»
» Hm, eine Seite für sich.
» Hat dort schon jemand bestellt?
Ja, prompte Lieferung, Qualität stimmt. Und seit Bulgarien in der EU ist gibts auch keinen Ärger mehr mit dem Zoll.
» Ich habe beim ersten Ansehen keine Preise
» gefunden...
man 'Price List' |
Fraenk
09.08.2009, 15:11
@ Pimpino
|
Programmierung eines Mikrocontrollers |
ich bin mit AVR's nicht so vertraut, eher mit PICmicros.
Wie die anderen schon sagten, kauf dir lieber einen fertigen ISP programmer, vor allem da in den ISP programmern, zumindest bei PIC's, selber noch ein Mikrocontroller mit USB Schnittstelle eingebaut ist, der auch erst einmal über ein Programmiergerät programmiert werden muss.
Wenn du mit der Technik noch nicht vertraut bist dann kauf dir am besten ein Prototyp Board, irgendeins das so Grunddinge schon on-board hat, wie LCD, LEDs, Taster, RS232.
Wenn du gut suchst findest du vielleicht ein komplettes Starterkit das einen, ganz wichtig, !externen! ISP programmer (dann musst du später nicht noch einen kaufen) und ein Prototyp board beinhaltet.
Damit kannst du dann vielleicht am besten kleine Projekte mit ausprobieren bevor du ein eigenes Board aufbaust, das dann nur für eine spezielle Schaltung funktioniert.
Im Flash wird das Programm geladeden auf den EEPROM hat man vom Programm aus Zugriff und kann somit Einstellungen speichern, die auch nach trennen der Netzverbindung noch erhalten bleiben sollen, wie bspw. Kalibrierungsdaten für Sensoren, Laufzeit, sonstige Einstellungen die man während dem Betrieb ändern will aber nicht jedes mal beim anschalten neu eingeben will.
Eine alternative zu AVR's sind PICmicros von Microchip. Große Vor- und Nachteile von beiden gibt es eigentlich nicht, ich bin sie eben gewohnt. Wenn du vorhast direkte USB Applikation zu bauen, nicht über den Umweg von einem RS2323 zu USB adapter, dann sind PICmicros die bessere Wahl, da es deutlich mehr mit USB Schnittstelle gibt. Wenn du sie mal genauer anschauen willst, dann vergiss die 16F Reihe, da das Auslaufmodelle sind. Der Nachfolger ist der 18F, wenn du mehr Leistung brauchst dann wirf einen Blick auf die 24F.
http://sprut.de/electronic/pic/index.htm |
Pimpino

09.08.2009, 15:51
@ Fraenk
|
Programmierung eines Mikrocontrollers |
Vielen Dank für diese ausführliche Antwort. Mit der Programmierung an sich bin ich aber schon vertraut.
» Wenn du gut suchst findest du vielleicht ein komplettes Starterkit das
» einen, ganz wichtig, !externen! ISP programmer (dann musst du später nicht
» noch einen kaufen) und ein Prototyp board beinhaltet.
Ui, das wäre super!
Heute Abend werde ich mal genau suchen.
» Im Flash wird das Programm geladeden auf den EEPROM hat man vom Programm
» aus Zugriff und kann somit Einstellungen speichern, die auch nach trennen
» der Netzverbindung noch erhalten bleiben sollen, wie bspw.
» Kalibrierungsdaten für Sensoren, Laufzeit, sonstige Einstellungen die man
» während dem Betrieb ändern will aber nicht jedes mal beim anschalten neu
» eingeben will.
Ah, ok ich verstehe. Aber das kommt dann später; ist wahrscheinlich nicht nur der Befehl save_settings_in_eeprom ...
» Eine alternative zu AVR's sind PICmicros von Microchip. Große Vor- und
» Nachteile von beiden gibt es eigentlich nicht, ich bin sie eben gewohnt.
» Wenn du vorhast direkte USB Applikation zu bauen, nicht über den Umweg von
» einem RS2323 zu USB adapter, dann sind PICmicros die bessere Wahl, da es
» deutlich mehr mit USB Schnittstelle gibt.
Direkte USB-Applikationen? Meinst du damit -ich klicke auf einen button und es geht eine LED an- ?
Wenn du sie mal genauer
» anschauen willst, dann vergiss die 16F Reihe, da das Auslaufmodelle sind.
» Der Nachfolger ist der 18F, wenn du mehr Leistung brauchst dann wirf einen
» Blick auf die 24F.
» http://sprut.de/electronic/pic/index.htm
Klingt auch sehr interessant; was ist denn genau der Unterschied zwischen PIC und µC ?
Die Anzahl der Befehle? |
x y
09.08.2009, 16:14
@ Pimpino
|
Programmierung eines Mikrocontrollers |
» Direkte USB-Applikationen?
Es gibt Mikrocontroller mit USB Interface, manche lassen sich sogar darüber programmieren, aber eigentlich ist es zum Bau von Geräten für die USB Schnittstelle von PCs gedacht.
» Klingt auch sehr interessant; was ist denn genau der Unterschied zwischen
» PIC und µC ?
» Die Anzahl der Befehle?
Nein. uC=Mikrocontroller, also sozusagen der Überbegriff. Und dann gibts da halt eine ganze Menge von Herstellern und deren Produktfamilien. Mit einem 8051-Derivat (da gibts sehr viel Auswahl von diversen Herstellern) hattest du ja schon Kontakt, mit Atmels AVR hast du geliebäugelt, und er hat die noch dir PIC von Microchip nahegelegt. Es gibt natürlich noch weitaus mehr, aber die drei sind unter Bastlern sehr beliebt, deshalb ist es kein Fehler in der Richtung anzufangen. |
Björn

Dortmund, 09.08.2009, 16:29
@ Pimpino
|
Programmierung eines Mikrocontrollers |
» Klingt auch sehr interessant; was ist denn genau der Unterschied zwischen
» PIC und µC ?
» Die Anzahl der Befehle?
Hallo,
auch ein PIC ist ein µC ebenso wie die AVR-Serie. Ob man nun einen AVR oder PIC verwendet ist oft Geschmackssache, von den Funktionen sind beide ähnlich.
Ich persönlich arbeite schon seit längerem mit AVRs und bin damit sehr zufrieden. Die Programmierung in Assembler ist mit dem kostenlosen AVR-Studio von Atmel sehr komfortabel, außerdem lässt sich WinAVR für die C-Programmierung nahtlos einbinden, so dass man mit einer Programmoberfläche Assembler und C programmieren kann.
Bei den PICs gibt es leider eine große Vielfalt von Controllern, so dass die Auswahl etwas schwer fallen könnte. Dafür hat man für jede Aufgabe ein gerade passendes Modell, was aber wohl eher im industriellen Bereich wichtig ist, um den letzten Cent einzusparen. Außerdem ist bei den älteren Modellen die Adressierung des RAMs etwas verzwickt, da er nicht linear angesprochen wird, sondern in Bänke aufgeteilt ist. Gerade bei Assemblerprogrammierung stelle ich mir das unnötig kompliziert vor.
Zum Lernen und Experimentieren würde ich gleich einen etwas größeren Controller verwenden, z.B. den ATmega16 oder 644. Damit hat man für die meisten Aufgaben genug Reserven, außerdem sind sie nur unwesentlich teurer als kleinere Typen.
Zum Programmieren verwende ich einen selbst gebauten Adapter von RS232 auf USB. Wenn Du nur USB am Rechner hast, verwende einen direkten Programmieradapter, der Umweg über einen USB-nach-RS232-Adapter ist oft unbrauchbar langsam.
Also dann viel Erfolg und schöne Grüße,
Björn |
Pimpino

09.08.2009, 21:53
@ Pimpino
|
Programmierung eines Mikrocontrollers - Zwischenstand |
Hallo zusammen,
erstmal vielen Dank für die ausführlichen Antworten.
Die Wahl zwischen PIC und µC ist nun intuitiv auf Mikrocontroller gefallen.
Um den Controller auch für komplexere Anwendungen einsetzen zu können, soll es erstmal der ATmega16 sein.
Die Programmierumgebung wird über AVR-Studio mit WinAVR zur C-Programmierung erfolgen.
Der Programmieradapter von USB auf ISP wird gekauft, folgende Modelle stehen zur Wahl:
AVR-ISP500 für 30€:
AVR-ISP500 is fast and reliable USB AVR programmer, working directly with AVR Studio. It si recognized as STK500 programmer and programs all AVRs. As it used USB CDC no need for drivers and works under Windows, Linux and MacOS. If you do not want to use AVRStudio you can use AVR-ISP500 with AVR Dude.
FEATURES
* connects to PC via USB 2.0 Full speed
* no need for external power supply as it takes the power supply from USB
* uses Atmel's 2x5 pin ICSP and 2x3 connector layout
http://www.olimex.com/dev/index.html
Wobei ich den Unterschied zwischen ICSP und ISP nicht kenne...
oder:
Atmel AVR ISP MKII (USB) für 36€
Der AVRISP mkII ist ein In-System Programmer von Atmel und dient dem Upgrade von AVR Flash-Mikrocontrollern. Alle 8-Bit AVR-Mikrocontroller, die ISP-fähig sind, können damit programmiert werden. Er verfügt über einen USB-Anschluß und ermöglicht eine Programmierung direkt aus dem AVR-Studio.
http://www.watterott.com/Atmel-AVR-ISP-MKII-USB |
Torsten

09.08.2009, 22:24
@ Pimpino
|
Programmierung eines Mikrocontrollers - Zwischenstand |
» Die Wahl zwischen PIC und µC ist nun intuitiv auf Mikrocontroller
» gefallen.
Bitte lies was xy und Björn schreiben.
PIC sind µC!
Gruß
Torsten |
Gast
10.08.2009, 09:43
@ Pimpino
|
Programmierung eines Mikrocontrollers |
ich benutze einen MK2  |
geralds

Wien, AT, 10.08.2009, 10:32
@ Gast
|
Programmierung eines Mikrocontrollers |
» ...........Kaufe dir am besten nen AVR ISP MK2 und sei froh
» ........hat USB und ist
» unkaputtbar.
Bist du dir da so sicher???? 
» Es ist ein hohes Frustpotenzial wenn der Programmer
» nicht funktioniert und man an alles außer gerade
» an das denkt.
-- also nochmals die obige Frage ---/ 
»
» P.S:
» www.mikrocontroller.net kann ich nur empfehlen!
beste Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
geralds

Wien, AT, 10.08.2009, 11:25 (editiert von geralds am 10.08.2009 um 13:19)
@ Pimpino
|
Programmierung eines Mikrocontrollers - Zwischenstand |
» Hallo zusammen,
»
» erstmal vielen Dank für die ausführlichen Antworten.
»
» Die Wahl zwischen PIC und µC ist nun intuitiv auf Mikrocontroller
» gefallen.
»
» Um den Controller auch für komplexere Anwendungen einsetzen zu können,
» soll es erstmal der ATmega16 sein.
» Die Programmierumgebung wird über AVR-Studio mit WinAVR zur
» C-Programmierung erfolgen.
»
» Der Programmieradapter von USB auf ISP wird gekauft, folgende Modelle
» stehen zur Wahl:
»
» AVR-ISP500 für 30€:
» AVR-ISP500 is fast and reliable USB AVR programmer, working directly with
» AVR Studio. It si recognized as STK500 programmer and programs all AVRs.
» As it used USB CDC no need for drivers and works under Windows, Linux and
» MacOS. If you do not want to use AVRStudio you can use AVR-ISP500 with AVR
» Dude.
»
» FEATURES
»
» * connects to PC via USB 2.0 Full speed
» * no need for external power supply as it takes the power supply from
» USB
» * uses Atmel's 2x5 pin ICSP and 2x3 connector layout
»
» http://www.olimex.com/dev/index.html
Ist interessant, wie sich eine bulgarische Fa. hocharbeitet!
»
» Wobei ich den Unterschied zwischen ICSP und ISP nicht kenne...
ICSP - soviel wie InCircuitSerialProgramming -
also überflogen: "in die ([Anwendungs-]Schaltung hinein seriell programmieren".
Die Bezeichnung ist die gleiche wie von Atmel, nur verwenden die aus "Sparmaßnahmen"
nicht C für Circuit dazu.
Da kann der Controller in der Anwendungsschaltung über die
eigene serielle Schnittstelle programmiert werden.
Damit muss der Controller nicht herausgenommen und in einem Programmiergerät programmiert werden.
Wobei da einige Haken und Ösen da sind, die zu beachten sind.
Similar - wäre zum Verständis:
ICS - InCircuitSimulation
(Simulation der Anwendungsschaltung - beim Prozessor
bzw. Controller die Software, die in den Chip gebrannt werden soll);
Meist Software mäßig simuliert - mittels Programm-Tool im Software-Studio.
ICE - InCircuitEmulation
(Emulation [Nachbildung des Prozessors bzw. Controllers].
Wird oft gleich mit, in, der Anwendungsschaltung gemacht.
ICD - InCircuitDebugging
(Fehler [Bug - Käfer] Befreiung in der Anwendungsschaltung, bzw. Software im Chip);
»
Lese auf alle Fälle beide Programmiervorschriften, von AVR und Microchip genau durch.
Beide sind ähnlich in der normalen Handhabung.
Aber:
zB:
M-Chip hat da einige Haken mit der Anschaltung -
die bei falscher Verwendung das Programmiergerät bzw. auch die Schaltung zerstören könnten.
zB:
AVR hat da was mit den Programmiermöglichkeiten -
mittels Chip-Programmer kann man den ganzen Controller programmieren.
Mit dem ISP jedoch nicht.
Die ISP - Kabelverbindung ist bei MC gekreuzt, bei AVR nicht,
dafür unterschiedlich in der Pin-Anzahl (manchmal).
Mit dem MC ICD3 (ein neuer I(C)SP Programmer/Debugger) ist ein Pinanschluss im
6poligen Stecker(Steckerpinzahl bleibt gleich) dazugekommen.
Also Achtung.
Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
geralds

Wien, AT, 10.08.2009, 11:35
@ x y
|
Programmierung eines Mikrocontrollers |
» » » www.olimex.com
» »
» » Hm, eine Seite für sich.
» » Hat dort schon jemand bestellt?
»
» Ja, prompte Lieferung, Qualität stimmt. Und seit Bulgarien in der EU ist
» gibts auch keinen Ärger mehr mit dem Zoll.
»
»
» » Ich habe beim ersten Ansehen keine Preise
» » gefunden...
»
» man 'Price List'
---
Hi,
ist mir auch schon ins Auge gestochen.
Wie gut gibt sich die Fa. wirklich?
Hast da schon konkretere (zb persönliche) Kontakte, außer mal was eingekauft?
Bulgarische Firmen wurden bis dato, meiner Aufschnapp-Info nach, eher "boykottiert".
Weil sie angeblich als "schlampig, kleptomanisch" nach gerufen wurden. ... werden?
Das ist doch hoffe ich, denke ich, sicher nicht so?
Nach der Webseite nach schließend, scheint diese FA. recht gut unterwegs zu sein.
Und die Preise sind soweit überschaubar, ok.
gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |