Forum: Mikrocontroller und Digitale Elektronik Arduino Hardware - ich bin etwas überfragt


von Andreas (Gast)


Lesenswert?

Hallo,

da ich nun schon seit einiger Zeit Microchip-Mikrocontroller 
programmiere, wollte ich auch einmal diese teilweise hochgelobte Objekt 
ATMEl von Arduino probieren - nun stellt sich mir aber gleich am Anfang 
eine entscheidende Frage: was benötige ich? Ja ich habe hier 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment) schon 
gelesen, was ich theoretisch benötigte, werde daraus aber nicht 
besonders schlau?

Bei Microchip sieht die Sache ja so aus:

1. Programmer/Debugger PICKit X
2. Demoboard PICDEM XXX
3. Mikrocontroller

Einstecken, anstecken, programmieren, rausholen, in eigene Schaltung 
integrieren.

Wie sieht das bei Arduino aus? Benötige ich einfach das UNO R3 Rev3 
Development Board? Oder auch einen Programmer, wie diesen hier: 
https://www.fasttech.com/products/1023000?

Mit welcher Kombination kann ich den µC programmieren, auf dem Board 
testen und anschließend ausbauen und in meine Schaltung integrieren?

Wäre über Antworten sehr dankbar!

LG
Andreas

von Dominik S. (dasd)


Lesenswert?

Andreas schrieb:
> ATMEl von Arduino

Oh man... was ist bloß mit der Welt passiert? o.O

von Andreas (Gast)


Lesenswert?

Is ja jetzt egal - Firma ATMEL mit deren µCs.

von Konrad S. (maybee)


Lesenswert?

Du benötigst:
- ein Arduino-Board (oder ein kompatibles)
- die Arduino Entwicklungsumgebung
- einen PC mit Java

Und der µC bleibt normalerweise auf seinem Board. Muss nicht, aber so 
ist es gedacht.

Dominik S. schrieb:
> Oh man... was ist bloß mit der Welt passiert? o.O

"Jo mei, so san's hoid, de junga Leid", wie der Bajuware zu sagen 
pflegt. ;-)

von Wolfgang (Gast)


Lesenswert?

Andreas schrieb:
> Wäre über Antworten sehr dankbar!
Die Seite "Getting Started w/ Arduino on Windows" kennst du?
Da ist alles genau beschrieben.
http://arduino.cc/en/Guide/Windows

von Andreas (Gast)


Lesenswert?

@ Konrad: danke für die Antwort! Genau das möchte ich aber eigentlich 
nicht, da ich mir ein Board selber bauen werde und nicht auf die 
Dimensionierung des Herstellers angewiesen sein möchte bzw. nicht alle 
Pins verwenden werde z.B. Bei Microchip funktioniert das wunderbar muss 
ich sagen!

Wofür gibt es dann Dev. Boards und explizit ausgewiesene 
Programmer/Debugger, wenn ich nur die 3 von dir angesprochenen Sachen 
benötige? Heißt das z.B. dass ich nur dieses Board benötige:
https://www.fasttech.com/products/1001700
auf dieses Teil verzichten kann:
https://www.fasttech.com/products/1023000
Dann meinen µC programmiere, abstecke und dann in meiner Schaltung ganz 
normal verwenden kann?

@ Wolfgang: Danke für den Link! Ich war zwar auf der Seite, aber nur im 
hardware-Bereich.

von Moritz A. (moritz_a)


Lesenswert?

Sieht für mich aus, als fehlt dir eine Information:

Arduino ist ein Projekt, die µC-Programmierung einfacher zu machen, mit 
all seinen Vor- und Nachteilen. Du lässt dich auf die vordefinierte 
Hardware ein, dafür bekommst du eine Entwicklungsumgebung mit einfacher 
Programmiermöglichkeit, seriellem Bootloader auf den Mikrocontrollern 
etc.

Du kannst natürlich genauso einen nackten Atmel nehmen, da per ISP 
(dafür der Programmer oben) deine Software reinschieben, die du 
traditionell mit dem Texteditor geschrieben und per Makefile kompiliert 
hast. Das hat dann mit Arduino aber nichts zu tun, auch wenn der 
Mikrocontroller dahinter evtl. das gleiche Produkt ist.

von .... (Gast)


Lesenswert?

Note: this is not the same as the ICSP connector used on AVR controllers 
that do not have a JTAG interface

von Andreas (Gast)


Lesenswert?

hm ok danke nochmal für die Infos - ich habe nur so viele Vor-und 
Nachteile Beiträge bezgl. Microchip und ATMEL gelesen, dass ich mir 
gedacht habe, es sei vielleicht gut zu wissen, wie der andere µC 
funktioniert. Aber komplett von der Hardware abhängig zu sein, ist ein 
zu großer Preis, den ich nicht zahlen will.

Im Grunde genommen müsste ich mir einfach das UNO Board kaufen und 
folgende Schaltung nachbilden:
http://arduino.cc/en/Tutorial/ArduinoISP

soweit ich das verstanden habe?

von Moritz A. (moritz_a)


Lesenswert?

Oder du schreibst einfach direkt Code für den Atmel, und lässt das ganze 
Arduino-Framework weg. Tut auch wunderbar, genau so wurde es von vielen 
Leuten all die Jahre gemacht.

von Till U. (tuhde)


Lesenswert?

Andreas schrieb:

> Aber komplett von der Hardware abhängig zu sein, ist ein
> zu großer Preis, den ich nicht zahlen will.

Bist Du nicht.

Eigentlich ist alles wie bei Microchip. Es gibt die Hersteller IDE:
MPLAB IDE -> Atmel Studio. Es gibt die verschiedenen Klassen von 
Mikrocontrollern: PIC12, PIC16 .. PIC32 -> ATtiny, AT(x)mega .. AT32.
Es gibt die Programmierer der Hersteller: ICD3, Pickit -> AVROne!, 
Dragon und die verschiedensten Clones davon.
Die Eval Boards der Hersteller: PicDemo -> STKxxx, sowie die der 
Fremdanbieter.

Und dann kommt Arduino. Arduino ist nur eine Abstraktionsebene für die 
Programmierung von Mikrocontrollern und setzt eben auf den Arduino 
Boards auf. Die meisten Bisherigen setzen dabei auf die Atmel AVR 
Controller. Das Due aber auf einen Atmel ARM.

Die Arduino Hard- und Software ist aber Open Source und wurde unter 
Anderem auch für PIC32 portiert. http://chipkit.net/

> Im Grunde genommen müsste ich mir einfach das UNO Board kaufen und
> folgende Schaltung nachbilden:
> http://arduino.cc/en/Tutorial/ArduinoISP

Da alle Schaltbilder offen liegen, kannst Du Dir auch ein Board 
nachbilden ohne eines zu kaufen. Das habe ich genau so gemacht, sowohl 
mit einem ATmega32U2 und als auch mit einem PIC32MX795F512L.

Und Du kannst auch einen Schritt weiter gehen und Dein vorhandenes Board 
so in die Konfiguration der Arduino IDE eintragen, daß Du mit den 
Standard-API's darauf zugreifen kannst. Das habe ich mit einer 
Eigenentwicklung auf Basis eines ATxmega128A1U gemacht.

von Harald W. (wilhelms)


Lesenswert?

Andreas schrieb:

> diese teilweise hochgelobte Objekt ATMEl von Arduino probieren

Ach, von wem wird das hochgelobt? om Hersteller der Platinen?
Gruss
Harald

von Uwe (de0508)


Lesenswert?

Hallo Andreas,

eine weitere Möglichkeit ist ein aTeVaL (Atmel Evaluationsboard) ein zu 
setzen [1,], [2].

Ein Atmel AVR-ISP MkII Programmer ist gleich mit drauf.

Du hättest dann die Möglichkeit verschiedene µC von Atmel [3] zu nutzen.

*Z.B.*
# 8 Pin: attiny13, attiny25, 45 und 85
# 20 Pin: attiny2313, attiny4313
# 28 Pin: atmega8, atmega48, atmega88, atmega168 und atmega328
# 40 Pin: atmega16, atmega32, atmega64, atmega324, atmega644 und 
atmega1284


Als Programmiersprache gibt es neben C als avr gcc mit dem Atmel Studio 
als IDE noch LunaAVR [4] als Entwicklungsumgebung.

_Link_:
[1] Shop 
http://www.ehajo.de/Neuheiten/aTeVaL?source=2&refertype=1&referid=15
[2] Handbuch http://www.ehajo.de/data/datenblatt_0000027_1.pdf
[3] Atmel µC http://www.ehajo.de/Bauelemente/Aktiv/Mikrocontroller
[4] LunaAVR http://avr.myluna.de/doku.php

von Thomas E. (thomase)


Lesenswert?

Andreas schrieb:
> da ich nun schon seit einiger Zeit Microchip-Mikrocontroller
> programmiere
Dann bleib dabei. Alles, was du mit einem AVR machen kannst, kannst du 
auch mit einem PIC machen. Wenn du schon die passenden Tools für PIC 
hast und dich in die Entwicklung eingearbeitet hast, gibt es keinen 
Grund das System zu wechseln. Schon gar nicht zu Arduino.

mfg.

von Andreas (Gast)


Lesenswert?

@ Moritz: Wie genau meinst du das? Wie kann ich den Code direkt auf den 
µC übertragen bzw. in welcher Sprache? Denn die PICs habe ich z.B. in 
Assembler oder C geschrieben.

@ Till: Danke für die ganzen Infos, aber das AVR One kostet zirka 600€ 
und das Dragon schaut nicht so aus, als ob ich jeden möglichen 
Controller anschließen und programmieren könnte, oder sehe ich das 
falsch?

Könntest Du mir vielleicht deine Entwicklung zukommen lassen? Bzw. eine, 
die mir das zur Verfügung stellt, was ich möchte? Nämlich ein einfaches, 
wie oben beschriebenes System: µC anstecken, Board an PC, mittels 
Software (?) programmieren, debuggen, abstecken, µC rausnehmen und 
verwenden.

@ Harald: Es gibt einige Leute im Internet, die darauf schwören - was 
ich nicht nachvollziehen kann, da scheinbar sowohl die PICs als auch die 
ATms ihre Vor- und Nachteile besitzen ...

@ Uwe: dein erster Link sieht vielversprechend aus! Dies ist aber dann 
ein Board, wie oben von mir beschrieben oder? Dann würde ich mir einfach 
dieses kaufen ... Wie würde ich es dann programmieren? Denn bei 
Microchip gibts ja eine extra Software dafür.

lg
Andreas

von Wolfgang (Gast)


Lesenswert?

Andreas schrieb:
> Nämlich ein einfaches,
> wie oben beschriebenes System: µC anstecken, Board an PC, mittels
> Software (?) programmieren, debuggen, abstecken, µC rausnehmen und
> verwenden.

Warum bist du eigentlich so wild drauf, deinen µC dauern hin und her zu 
stecken. Brenn dir doch einmal über ISP einen Bootloader in dein 
Zielsystem und dann kannst du munter über die Serielle Schnittstelle den 
Code einspielen.

von Joachim (Gast)


Lesenswert?

Du kannst mit nem 12 EUR Chinesen-Arduino schon ganz gut starten, mehr 
braucht's im Idealfall nicht. Die Hardware ist gut und die 
Chinesen-Hardware preiswert.

ABER:
Die Arduino IDE ist noch schwacher und hemdsärmliger als MPLAB, die 
unterstützt dich praktisch in nix. Kein gescheites Syntax-Highlighting, 
kein Intellisense, keine Codevervollständigung. Ab und zu kommt ein 
übler Fehler: STK-500 Error out of sync (Wortlaut hier nicht exakt). Der 
kann dich, falls du den 328P bzw den vorgeschalteten 16U2 nicht flashen 
kannst, zum Wahnsinn treiben. Scheinbar ist der Bootlader nicht 100% 
wasserdicht.

Arduino istn nettes Spielzeug wenn du eines der vielen Codebeispiele 
einladen und vielleicht noch ne handvoll Zeilen Code ändern willst. Aber 
zum ersthaften programmieren braucht's andere Werkzeuge, zB Atmel Studio 
(die ist mMn geradezu luxuriös).

Ach ja noch was: Die 8-bit ATMegas halten nur 10.000 Flashzyklen aus. 
Möglich ist sogar, daß das nur ein statistischer Mittelwert ist. Mir ist 
mal einer beim Flashen einfach so kaputt gegegangen. Die PICs halten 
länger - und die Gefahr des sich-selbst-Aussperrens hast du auch nicht.

von Till U. (tuhde)


Lesenswert?

Andreas schrieb:

> @ Till: Danke für die ganzen Infos, aber das AVR One kostet zirka 600€
> und das Dragon schaut nicht so aus, als ob ich jeden möglichen
> Controller anschließen und programmieren könnte, oder sehe ich das
> falsch?

Das sind nur zwei Beispiele, Atmel hat ( wie Microchip auch ) noch ein 
paar mehr Programmer im Angebot.

> Könntest Du mir vielleicht deine Entwicklung zukommen lassen? Bzw. eine,
> die mir das zur Verfügung stellt, was ich möchte? Nämlich ein einfaches,
> wie oben beschriebenes System: µC anstecken, Board an PC, mittels
> Software (?) programmieren, debuggen, abstecken, µC rausnehmen und
> verwenden.

Wenn Du unbedingt diese Variante möchtest, dann bleibt Dir nur das Uno.

Alle Anderen, auch meine genannten Boards, verwenden SMD. Wenn Du auch 
einen SMD Controller auf einem DIL-Board verwenden kannst, dann kommen 
auch die Arduino Mini, Micro, Nano oder z.B. der mattairtech MT-DB-U2 in 
Frage.

Das ist aber nicht Arduino pur!
Ein Arduino Board programmierst Du ohne Programmer, nur über die 
serielle Schnittstelle oder über USB, im System per Bootloader.
Die Original Boards sind für die Verwendung mit den Shields und nur 
geringe externe Beschaltung vorgesehen, die Mini, Micro und Nano zum 
einstecken in Breadboards oder eigene Platinen. Trotzdem verbleiben die 
Controller immer im Zielsystem.

Arduino ist keine IDE für jeden beliebigen Controller auf jedem Board. 
Wenn Du nicht Arduino Boards verwendest, mußt Du jeden Controller mit 
seiner Tool-Chain und seinem Board in der IDE konfigurieren.

Ich glaube, solange Du nicht Deinen Entwicklungsprozess umstellst, bist 
Du mit einem Eval Board und einem Programmer besser bedient.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

ich habe auch 10 Jahre PIC programmiert, jeden der Sorte bis 32 Bit und 
vor allem die 8 Bitter mit Vorliebe für industrielle und 
Hobbyanwendungen. Dann auf ARM7 uimgestiegen, nun auf Cortex.

Arduino seit 4 Wochen mit wachsender Begeisterung !!!

1. Arduino ist "Physical Computing", d.h. es gibt eine Unmenge Sensoren 
und Platinchen, die alles mögliche messen und steuern für jedes 
Platinchen hat irgendwer ne Library geschrieben, die dich davon 
entbildet manchmal saukomplzierten C++ Code zu schreiben, den nur noch 
der Experte versteht, der 10 Jahre Atmel gemacht hat und den GCC wie 
seine Westentasche kennt. (Arduino kann auch an einer Hauptschule 
eingesetzt werden ohne dass die damit intelektuell überfordert sind.)

2. Arduino ist durch die Kabelstecktechnik NICHT für gescheite 
Anwendungen gedacht, da du ewig Wackelkontakte hast. Da hilft FRITZING 
weiter, ein schönes grafisches Tool (ab Kindergarten aufwärts geeignet) 
welches aus deiner Strippentechnik für Shields ein Board machen kann was 
auf den Arduino gesteckt wird.

3. Arduino ist voll C++ kompatibel, d.h. wer mag kann auch RICHTIG 
programmieren, d.h. mit allen Features die der Atmel zu bieten hat. 
Richtige Lib einbinden und schon sind die internen Hardwarestrukturen 
der CPU erreichbar. Die sind nämlich alle im Arduino Verzeichnis ablegt. 
Dahinter werkelt der GCC Compiler. Die Italiener haben das schon ganz 
clever gemacht.

Ich habe längst die grüne Popel Oberfläche durch einen komfortablen 
externen Editor mit intelligenter Eingabe (Notepad++) ersetzt und nutze 
die JAVA nur noch um mit Ctrl-R oder Cntrl-U zu kompilieren und 
abzuloaden.

4. Den PIC kannste singestep debuggen in MPLAB, Luxus quasi - Arduino 
NICHT! Und nach ein paar tausend Flash Zyxklen kannste den Arduino 
wegwerfen was bei dem Preis aber egal ist, den Nano kriegste ab 8 Euro, 
den Uno ab 12 Euro und den Mega ab 15 Euro beim freundlichen Chinamann.

Ich sag dr auch gleich was nicht geht mit Arduino: Du bist weg von der 
Hardware der CPU, völlig egal was das für eine ist, ob ARM, PIC oder 
Atmel.   Du siehst nur die API der Libraries, befasst dich mit deinem 
Projekt. Timer Register mit Capture und Compare, Interrupts, Power Modi, 
zb nen Infrarot TSOP Sensor auslesen .... geht nicht (so einfach)! 
Allerdings wird weiter entwickelt, inzwischen gibt es Funktionen wie 
attachInterrupt.


Fazit: Arduino ist geil für schnelle Steuerungsaufgaben! Es gibt alles 
fix und fertig als niedliches Platinchen, grün, rot oder blau, kostet 
nicht mehr als 5 Euro das meiste. In eine Kiste einbauen, fertig! In 1 
Stunde zimmer ich dir ne Rolladensteuerung zusammen oder eine 
Blumenbewässerung für den Garten oder eine Steppermotoranwendung oder 
eine 7-Segment-Uhr oder eine Wetterstation oder, oder, oder...

von Christian J. (elektroniker1968)


Lesenswert?

PS: Wobei ich für Profi Anwendungen auf den BASIC TIGER zurückgreifen 
würde, weil das ein fix und fertig ausgereiftes System ist was natürlich 
auch einiges mehr kostet und wo professsionelle Entwickler hinter 
stecken.

von Konrad S. (maybee)


Lesenswert?

Christian J. schrieb:
> zb nen Infrarot TSOP Sensor auslesen .... geht nicht (so einfach)!

Kann man's in C und hat Ahnung wie Arduino tickt, dann kann man einfach 
mal sowas wie IRMP einbinden. Das ist jetzt wirklich kein Hexenwerk. 
Aber richtig Arduino ist's natürlich auch nicht mehr.
Man muss den Arduino auch nicht Arduino-like programmieren. Aber 
möglicherweise ist dann andere Hardware besser geeignet. Arduino ist 
eben für Leute gedacht/gemacht, die nichts mit Hardware-Basteln am Hut 
haben. Als Entwicklungsplattform für Harware-Entwicklung ist Arduino 
eher wenig geeignet. Und als Programmiergerät ist meiner Meinung nach 
ein Arduino Uno voll daneben, da man µCs mit Arduino-Bootloader benötigt 
(OK, kann man auch mit Bootloader kaufen).

von SE (Gast)


Lesenswert?

Ich denke auch, um einen Vergleich zwischen PIC und Atmel machen zu 
können, wäre das STK500 interessant. Dazu dann das neueste AVR Studio.

Aber auf Hochsprachen Ebene tut sich da nicht mehr viel.
Da ist es egal ob man einen 8-Bitter AVR, PIC, MSP, ... hat.
Richtig Programmiert sind dann deine Funktionen auf jeder Platform 
nutzbar.

Wenn man in Assembler programmiert kann es etwas anders aussehen.
Ich bin auf der AVR Schiene gelandet. Aber für meine damalige Ausbildung 
musste ich mich mit nem kleinen PIC auseinander setzen. Hab damals alles 
in Assembler programmiert.
Im direkten verlgeich fand ich die Atmel Controller einfacher.
Da musste z.B. keine Registerbank umgestellt werden.

Inzwischen nehme ich immer noch die AVR einzi und allein aus dem Grund, 
da ich da Erfahrung gesammelt habe und die entsprechenden Tools zum 
Programmieren und Debuggen habe.

Die Arduinos habe ich mir auch angeguckt. Die IDE habe ich nur mal für 
den Nachbau eines Projektes gebraucht und hab se sofort verflucht.

Die Boards an sich finde ich sehr Praktisch für "Rapid Prototyping". 
Dafür habe ich den Arduino Bootloader durch PEDA's fastboot ersetzt.
Nun Programmiere ich im AVR Studio, teste das Programm auf dem Arduino 
Board und später kann ich die Routinen dann in der Zielschatung 
weiterverwenden.

Letztens habe ich noch diese Seite gefunden:
"Arduino, Thank you and good bye"
http://vpapanik.blogspot.gr/2012/08/arduino-thank-you-and-bye-bye.html

VG!
SE

von Philipp (Gast)


Lesenswert?

Warum überhaupt umsteigen?
Wenn ich dich richtig verstanden habe kommt das arduino geraffel sowieso 
nicht in frage.
Ich persönlich favorisiere auch die AVRs gegenüber den PICs, aber wenn 
du dich mit den PICs bereits auskennst und die ganzen 
Entwicklungswerkzeuge bereits besitzt, macht es absolut keinen sinn auf 
AVR umzusteigen.

Wenn es unbedingt was neues sein soll, beschäftige dich lieber mit nem 
Cortex M3 oder Cortex M4. z.B. die STM32 gefallen mir persönlich sehr 
gut.

von blasphemie (Gast)


Lesenswert?

http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html
http://www.reichelt.de/Programmer-Entwicklungstools/AT-AVR-ISP/3//index.html?ACTION=3&GROUPID=5514&ARTICLE=45040&SHOW=1&START=0&OFFSET=16&;
ich verstehe dein controller hin und her stöpseln zwar nicht, aber mit 
den beiden Teilen und dem kostenlosen AvrStudio kannst du erst mal 
ziemlich viele AVRs programmieren...für unter 60 Euro

von Martin (Gast)


Lesenswert?

SE:
> Dafür habe ich den Arduino Bootloader durch PEDA's fastboot ersetzt.
> Nun Programmiere ich im AVR Studio, teste das Programm auf dem Arduino
> Board und später kann ich die Routinen dann in der Zielschatung
> weiterverwenden.

Hallo SE,
Interessant! welche Bootloader meinst du genau? geht über RS232? kannst 
eventuell das Bootloader hoch laden?

von Alejandro P. (alejo)


Lesenswert?

blasphemie schrieb:
> 
http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html
> 
http://www.reichelt.de/Programmer-Entwicklungstools/AT-AVR-ISP/3//index.html?ACTION=3&GROUPID=5514&ARTICLE=45040&SHOW=1&START=0&OFFSET=16&;

- Pollin Addon Board
- STK500
- Arduino
- .....

Ich besitze das ganze Kram und möchte es bald los werden (leider sehr 
wenig Zeit).
Wenn du Interesse hast dann melde dich einfach bei mir per PN.

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.