Was ist der minimale Teilesatz für eine Schaltung mit diesem AVR-Mikrocontroller?

10

Mein Arduino Uno hat einen ATMEGA328P-PU-Mikrocontroller und eine Menge anderer Dinge auf dem Board. Ich möchte den Chip ohne die Arduino-Software und nur das Minimum anderer Komponenten programmieren. Ich möchte schließlich Dinge ohne die Kosten von Arduino erstellen, und ich möchte mehr über die anderen Teile auf dem Board erfahren und sie nach Bedarf wieder hinzufügen. Ich bin mit C und gcc vertraut, daher kann ich wahrscheinlich den Software-Teil herausfinden. Aber was, wenn überhaupt, außer den beiden folgenden Produkten, muss ich mit dem Mikrocontroller im Steckbrett haben?

Atmel Programmer
Mikrocontroller

Rob N.
quelle
Sie können diese Frage selbst beantworten, indem Sie das Datenblatt ATMEGA328P-PU suchen und lesen.
Phil Frost
7
Vielleicht, wenn ich mehr weiß. Das Datenblatt hat 550 Seiten, ich bin ein Anfänger und ein Überfliegen hat mir nichts gezeigt. Ich lerne viel selbst, aber ich schätze Websites wie diese, auf denen ich ab und zu Antworten von Menschen bekommen kann. :)
Rob N
6
@PhilFrost Das ist der schlechteste Rat, den Sie einem Anfänger geben können.
Capcom
1
@PhilFrost Obwohl ich Ihnen zustimme, dass das Finden von Informationen wahrscheinlich die wichtigste Fähigkeit eines Anfängers ist, insbesondere angesichts der Fülle an Informationen, die dank des Internets verfügbar sind, kann das erstmalige Öffnen eines Datenblattes ein wenig einschüchternd sein. Sobald jemand, der erfahrener ist, seine Frage beantwortet und ihm sagt, wo im Datenblatt er die Antwort gefunden hat, kann der Anfänger sie selbst erneut analysieren und anfangen, Vertrauen zu gewinnen. Außerdem ist der von Ihnen angegebene Link kein Datenblatt. Sie sagten ihm, er solle das "ATMEGA328P-PU-Datenblatt" lesen und keine Google-Suche nach einer Antwort durchführen.
Capcom
1
OK, ich werde umformulieren. Rob, Sie sollten wissen, dass jeder Hersteller eines nicht trivialen Geräts eine Dokumentation veröffentlicht, um genau diese Frage zu beantworten. Die Hersteller haben ein klares Interesse daran, Ihnen die Verwendung ihres Produkts zu erleichtern. Das Überfliegen des Datenblattes ist der Anfang. Für komplexe Dinge wie Mikrocontroller gibt es möglicherweise einen separaten Anwendungshinweis. "typische Anwendung" sind die magischen Wörter, die Sie in Ihren Suchbegriffen verwenden müssen. Es ist nicht schlecht, um Hilfe zu bitten, aber es ist gut zu wissen, wie man fischt.
Phil Frost

Antworten:

13

Abgesehen vom Programmierer und dem Chip benötigen Sie lediglich ein paar Entkopplungskappen und eine Möglichkeit, die Programmiersignale mit dem Steckbrett zu verbinden.

So:

  • 1 größere Elektrolytkappe (z. B.> 100 uF) Sie können möglicherweise darauf verzichten, wenn Ihre Quelle schön leise ist (z. B. Batterie).
  • 1 100nF Keramik über die Stromanschlüsse des Mikros
  • 1 10kΩ-Widerstand zum Anschließen vom Reset-Pin an Vcc, um das Mikro vom Reset abzuhalten.
  • Einige Überbrückungsdrähte zum Verbinden von Knoten auf Ihrem Steckbrett (Sie können fertige Überbrückungsdrähte kaufen, aber ich verwende eine 22AWG-Rolle und schneide meine eigenen - viel billiger, wenn Sie dies häufig tun)
  • Ein Header, an den Sie Ihr Programmierkabel anschließen können. Laut Bedienungsanleitung benötigen Sie anscheinend einen 2x3-Pin-Header mit 2,54 mm Abstand.

Optional

  • Eine Taste zum Verbinden Ihrer Rücksetzleitung mit Masse, wenn Sie den Chip physisch zurücksetzen möchten (ich verwende keine AVRs, bin mir aber zu 99,9% sicher, dass der Programmierer dies über die IDE tun kann).
  • Ein Kristall anstelle des internen Oszillators
  • 2 * 22pF Kondensatoren für den Kristall (von beiden Seiten nach Masse stellen)
  • Passive Komponenten, LEDs, Sensoren usw., um mit dem von Ihnen geschriebenen Code etwas Nützliches zu tun ;-)

Abgesehen von der Kopfzeile (10-polig mit einigen nicht verwendeten Stiften - Sie können die Beschriftungen als Leitfaden für Ihre Verbindungen verwenden, die Namen sind dieselben) handelt es sich bei diesem Schema um das einfachste, das ich mit einem schnellen Google finden konnte:

Einfaches AVR-Schema

Lustigerweise habe ich gerade einen Blog darüber geschrieben, wie man mit einem PIC-Mikrocontroller so ziemlich dasselbe macht (vielleicht einen Blick wert, die beiden sind sich sehr ähnlich)

Oli Glaser
quelle
3
Wenn wir von absolut minimal sprechen, brauchen Sie den Pullup-Widerstand in der Reset-Leitung nicht - der AVR verfügt über einen internen Pullup. Und wenn es ratsam ist, sollten Sie auch eine Obergrenze in die Rücksetzzeile einfügen - siehe diesen App-Hinweis: atmel.com/images/doc2521.pdf . Außerdem ist der von Ihnen erwähnte 2x3-Pin-ISP-Header viel häufiger als der im Schaltplan gezeigte 2x5.
Nick Johnson
Vielen Dank! Wenn die 100nF-Kappe für die Power-Pins ist, wofür ist die> 100µF-Kappe?
Rob N
1
@ RobN der bullige Kondensator ist für die Filterung / Glättung von Stromversorgungsrauschen
vicatcu
@NickJohnson - Danke für die Feinheiten - fühlen Sie sich frei , meine Antwort zu bearbeiten , wenn Sie wollen (wie erwähnt ich keine AVR verwendet haben, meine kleine Mikro der Wahl der PIC ist - oder in der Tat ein ARM wie die STM32F10xxx häufiger heutzutage)
Oli Glaser
1
Wenn Sie das Arduino-Framework verwenden, benötigen Sie auch einen 100-nF-Kondensator zwischen dem DTR-Signal vom Seriell-USB-Adapter und der Reset-Leitung. Andernfalls müssen Sie eine Adapterplatte auf einem Perfboard mit einem 0402-Kondensator von Hand löten ist das einzige Paket, in dem 100nF verfügbar sind, und niemand würde jemals so etwas Dummes tun.
Simon Richter
4

Ich poste dies nur als Antwort, um die hässlichen URLs zu verbergen. Sie sollten sich unbedingt Atmel Appnote AVR042 ansehen: Überlegungen zum AVR-Hardware-Design .

vicatcu
quelle
+1 für eine ausgezeichnete Referenz, ich suchte nach etwas genauem, um die "allgemeinen" kleinen Mikro-Setup-Ratschläge zu ergänzen. @RobN - Sie sollten dieses Dokument gründlich lesen.
Oli Glaser
0

Ich fand auch diesen hilfreichen Link von den Arduino-Leuten: https://www.arduino.cc/en/Main/Standalone. Er erklärt, wie man von einem Chip, den man gerade von DigiKey (oder wo auch immer) bekommen hat, zum Laden des Bootloaders und des Bare-Minimum-Support-Komponenten.

ABNormal
quelle