Vom Entwicklungsboard zur Platine

Hallo zusammen,

beim rumstöbern in Elektronikläden bin ich per zufall über den ATmega328 Chip als solcehn gestolpert. Bisher habe ich mir keine Gedanken darüber gemacht, das das Arduino ja im Prinzip nur ein Board ist, welches die einfache Verbindung zu anderen Geräten, sowie die Programmierung ermöglicht. Das eigentlihe Kernstück ist ja oben aufgeführter IC (zumindest bei dem Uno) der ja im Prinzip auch die Pins als Ausgänge hat.

Nun habe ich Threads gefunden, die beschreiben wie man eine Uno nachbaut, wie man den Chip Programmieren kann etc. was mir aber nicht so ganz klar ist sind 2 sachen:

  1. Kann ich einfach das was ich mir mit z.B. einem Uno ausgedacht habe und auch umgesetzt habe auf eine Platine basteln und dann die entsprechenden Pins so wie ich es mit dem Uno gemacht habe Connektieren, sprich 1:1

  2. Kann man mit der Arduinosoftware und einem externen Programmer auch den Chip direkt programmieren, ohne ein Arduino dafür zu nehmen, wenn ja welchen Programmer könnt ihr empfhelen?

Danke schon mal für alle Infos, oder noch besser Links zum nachlesen. Bin völliger Neuling auf diesem Gebiet, daher würde ich mir auch gerne sachen anlesen.

Steve

Wenn der ATmega 328 bereits einen Bootloader hat dann brauchst du einen USB-serial adapter um die Programme draufzuladen.
Falls der ATmega328 keinen Bootloder hat kannst Du entweder mit einen ISP-Progrmmierer einen Bootlaoder draufladen und mit einem USB Adapter die Programme draufladen oder direkt mit dem ISP-Progrmmierer die Sketch draufladen.
Ein ISP-Progrmmierer mit einem Arduino: http://arduino.cc/en/Tutorial/ArduinoISP
allgemeine Erklärung: http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Grüße Uwe

Hallo Uwe,

danke für die schnelle Antwort,

diese Beiträge hatte ich gesehen, danke aber erstmal fürs zukommen lassen. Muß ich denn wirklich einen kompletten arduino drum herum bauen, oder reicht der IC mit der Programmierung. Im Prinzip ist ja die Anleitung nix weiter, als wie ich mir einen Arduino selber bastle :smiley: Aber genau das wollte ich ja gerade nicht. Im Prinzip mögchte ich mein Projekt verkleinern, und dann eben den "Arduino" auf ein Minumum reduzieren. Meine Frage ist eben, ob das überhaupt geht, oder aber ob ich immer wie in dem tutorial beschrieben, ich den Arduino dann "nachbauen" muß? (Hoffe das ich mich verständlich genug ausdrücke :smiley: )

Ich kann also mit einem ISP direkt programme draufbraten aus der Sorftware. Habt ihr eventuell irgendwelche Tips welche gerade bauch mit einem Mac funktionieren? Oder gibts da keine Unterschiede?

Steve

Chaos_Lord:
Hallo zusammen,

beim rumstöbern in Elektronikläden bin ich per zufall über den ATmega328 Chip als solcehn gestolpert.

Achtung, da gibts mehrere Typen mit unterschiedlichen Suffixen.

Bisher habe ich mir keine Gedanken darüber gemacht, das das Arduino ja im Prinzip nur ein Board ist, welches die einfache Verbindung zu anderen Geräten, sowie die Programmierung ermöglicht. Das eigentlihe Kernstück ist ja oben aufgeführter IC (zumindest bei dem Uno) der ja im Prinzip auch die Pins als Ausgänge hat.

Nun habe ich Threads gefunden, die beschreiben wie man eine Uno nachbaut, wie man den Chip Programmieren kann etc. was mir aber nicht so ganz klar ist sind 2 sachen:

Chaos_Lord:

  1. Kann ich einfach das was ich mir mit z.B. einem Uno ausgedacht habe und auch umgesetzt habe auf eine Platine basteln und dann die entsprechenden Pins so wie ich es mit dem Uno gemacht habe Connektieren, sprich 1:1

Prinzipiell ja. Du musst halt die notwendige Hardware (Quarz, Reset-Beschaltung) mit aufbauen, damit der ATmega328 anläuft. Und sonst sind auch noch ein paar Kleinigkeiten anders (die Pins auf dem Arduino haben andere Nummern als am ATmega328 ).

Chaos_Lord:
2. Kann man mit der Arduinosoftware und einem externen Programmer auch den Chip direkt programmieren, ohne ein Arduino dafür zu nehmen, wenn ja welchen Programmer könnt ihr empfhelen?

Im Prinzip ja, zu Details sollten aber Andere was sagen. Wenn Du einen nackten ATmega328 hast, dann fehlt dem der Arduino-Bootloader, damit kommst Du mit dem Arduino-Studio nicht direkt ran beim Programmieren. Die vom Arduino-Studio erzeugten Hex-Files sollten sich mit einem entsprechenden Programmer aber direkt in den ATmega328 laden lassen.

Für den Anfang wäre hier vielleicht ein etwas einfacherer Weg die Wahl:

  • Es gibt diverse Anbieter im Netz, die entsprechende ATmega328 bereits mit installiertem Bootloader ausliefern.
  • Die kannst Du dann relativ einfach mit einem passenden USB-RS232-Adapter den Chip aus dem Arduino-Studio programmieren.

Beispielhaft gibt es das übrigens hier: cc2.tv-Fan-Club | ATM18/AVR, Arduino + Sonstiges | Der Arduino auf dem Breadboard

Chaos_Lord:
Im Prinzip mögchte ich mein Projekt verkleinern, und dann eben den "Arduino" auf ein Minumum reduzieren. Meine Frage ist eben, ob das überhaupt geht, oder aber ob ich immer wie in dem tutorial beschrieben, ich den Arduino dann "nachbauen" muß? (Hoffe das ich mich verständlich genug ausdrücke :smiley: )

Du musst keinen ganzen UNO nachbauen, es reicht tatsächlich das minimale. Das habe ich vor einer Woche erst mit einem Projekt gemacht. Wenn Du z.B. mit 8 MHz Taktfrequenz auskommst, und keine serielle Kommunikation mit hoher Geschwindigkeit brauchst, kannst Du Dir auch den Quarz / Resonator sparen und mit den internen 8 MHz des 328P arbeiten.
Wichtig ist die Reset-Beschaltung und eine stabile Spannungsversorgung (L7805 mit 3 Kondensatoren reicht schon). Der Rest ist 1:1 Verbinden der Pins

Chaos_Lord:
Ich kann also mit einem ISP direkt programme draufbraten aus der Sorftware. Habt ihr eventuell irgendwelche Tips welche gerade bauch mit einem Mac funktionieren? Oder gibts da keine Unterschiede?

Ich verwende den USBTinyISP (USBtinyISP Arduino bootloader programmer [DFR0116] - 13.20EUR : komputer.de, Arduino Open Source Hardware) mit einem Mac unter 10.7, das klappt sehr gut. Der Programmer ist auch sehr gut über die IDE verwendbar.
Wenn Du zusätzlich den Bootloader auf den µC packst, kannst Du ihn auch mit einem USB2Serial Adapter (http://www.komputer.de/zen/index.php?main_page=product_info&cPath=22&products_id=182) über die serielle Schnittstelle Sketche wie gewohnt hochladen. SO habe ich das bei meinem Projekt gemacht.
Mario.

Hallo Mario,

danke für die sehr detaillierte Antwort, hast mir sehr damit geholfen.
Im Prinzip brauche ich also nach der Anleitung, die vieledinge (auch hier ein danke an dich, für den link) in dem link postet den reset und die Quarz einzubauen, und dann eben schauen welcher pin welcher Connect ist.

Was die Programmiertools angeht, sollte also der USBTinyISP reichen, mit dem kann ich ja den Bootloder installieren und auch den sketch, muß dann nur eben, wenn ich was ändern möchte den IC wieder rausbauen richtig? das mann man sich mit dem anderen sparen, weil man den dann einfach, wenn mit der Platine verbunden ist, die gewohnt ändern kann, sprich für Live updates. Soweit richtig verstanden :smiley: ?

Eine letzt Frage noch, ist bei dem USBTinyISP ne Anleitung bei, wie man den µc an die Kabel anschließt?

Steve

Chaos_Lord:
Eine letzt Frage noch, ist bei dem USBTinyISP ne Anleitung bei, wie man den µc an die Kabel anschließt?

Guck mal hier: http://arduino.cc/en/Main/Standalone

Hatte ich diesen Link nicht bereits genannt?

uwefed:
Hatte ich diesen Link nicht bereits genannt?

Ähm, ja doch. Ich geh jetzt doch besser in die Koje.... :blush:

Gute Nacht

uwefed:
Gute Nacht

Danke.

Chaos_Lord:
Was die Programmiertools angeht, sollte also der USBTinyISP reichen, mit dem kann ich ja den Bootloder installieren und auch den sketch, muß dann nur eben, wenn ich was ändern möchte den IC wieder rausbauen richtig? das mann man sich mit dem anderen sparen, weil man den dann einfach, wenn mit der Platine verbunden ist, die gewohnt ändern kann, sprich für Live updates. Soweit richtig verstanden :smiley: ?

Fast :slight_smile:
Du mußt den Chip nicht aus Deiner Schaltung nehmen, um ihn neu zu programmieren. Am besten baust Du Dir die 6 Pins für den ISP über entsprechende PIN-Header mit auf das Board und schliesst die an die entsprechenden Pins des Atmel an (MOSI, MISO, SCLK, VCC, Masse und RESET) siehe hier: Batsocks - AVR ISP Header Pinouts
In meinem letzten Projekt verwende ich einen Atmega328 mit Bootloader und habe daher die Pins RX,TX,VCC,GND und RESET auf einen Pin-Header gelegt, an den ich den USB2Serial Adapter anstecken kann, um ohne Programmer Sketche übertragen zu können. Diese Lösung gibt es also auch.
Bei beiden muss man aber den Chip nicht aus der Schaltung ziehen.
Mario.

Chaos_Lord:
Im Prinzip brauche ich also nach der Anleitung, die vieledinge (auch hier ein danke an dich, für den link) in dem link postet den reset und die Quarz einzubauen, und dann eben schauen welcher pin welcher Connect ist.

Pinbelegung: art364 / Standalone Arduino

hi,

schau Dir auch das mal an:

http://erik-bartmann.de//download/BuildYourOwnArduino.pdf

wenn Du die led wegläßt, bleibt kaum noch was über. den quarz könntest Du, wie oben geschrieben, auch weglassen, aber ich weiß nicht, ob dann irgendwas umgeschrieben werden muß...

gruß stefan

Hallo zusammmen

@Mafu und Eisebaer auch euch beiden danke für die Antworten

Alle zusammen habt ihr mir sehr viel nützliches Material gegeben, was viel spass zum Lesen und nachbauen bringt :smiley: Werde mich damit in den nächsten Tagen (wenn ich mir meinen Dienstplan so anschaue eher Monaten :frowning: ) beschäftigen, da ich nun was an der Hand habe, mit dem ich was anfangen kann :smiley:

Sollte ich nennenswerte ergebnisse erhalten, die vielleicht nicht direkt abgedeckt werden und anderen helfen könnte werde ich diese auch gerne hier posten.

Danke nochmals an alle

Steve