Was ist der minimale Satz von Teilen für eine Schaltung mit diesem AVR-Mikrocontroller?

Mein Arduino Uno hat einen ATMEGA328P-PU-Mikrocontroller und viele andere Dinge auf dem Board. Ich möchte den Chip ohne die Arduino-Software und nur das Minimum an anderen 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 bei Bedarf wieder hinzufügen. Ich bin mit C und gcc vertraut, also kann ich wahrscheinlich den Softwareteil herausfinden. Aber was, wenn überhaupt, außer diesen beiden Produkten unten, muss ich im Steckbrett mit dem Mikrocontroller haben?

Atmel Programmer
Mikrocontroller

Sie können diese Frage selbst beantworten, indem Sie das ATMEGA328P-PU-Datenblatt finden und lesen.
Vielleicht, wenn ich mehr weiß. Das Datenblatt umfasst 550 Seiten, ich bin Anfänger, und ein Überfliegen hat mir nichts verraten. Ich mache viel Selbststudium, aber ich schätze Seiten wie diese, wo ich ab und zu ein paar Antworten von Menschen bekomme. :)
@PhilFrost Das ist der schlechteste Rat, den man einem Anfänger geben kann.
@capcom Erstes Google-Ergebnis für "site:atmel.com atmega typische Anwendung" findet AVR Hardware Design Considerations . Dieser Anwendungshinweis enthält nicht nur eine minimale Schaltung, um die MCU zum Laufen zu bringen, sondern geht auch sehr detailliert darauf ein, wie man einen Programmierport anschließt, Oszillatoren auswählt, mit ESD-Gefahren umgeht, potenzielle Störungen auf der Reset-Leitung, JTAG und PCB verbindet Layout und im Grunde alles, was ein Anfänger braucht. Diese Informationen zu finden, ist die nützlichste Fähigkeit, die ein Anfänger haben kann.
@PhilFrost Obwohl ich Ihnen zustimme, dass das Finden von Informationen wahrscheinlich die wichtigste Fähigkeit ist, die ein Anfänger haben kann, insbesondere bei der Fülle an Informationen, die dank des Internets verfügbar sind, kann das erstmalige Öffnen eines Datenblatts ein wenig einschüchternd sein. Sobald jemand mit mehr Erfahrung seine Frage beantwortet und ihm sagt, wo im Datenblatt er die Antwort gefunden hat, kann der Anfänger sie selbst erneut analysieren und beginnen, etwas Selbstvertrauen zu gewinnen. Außerdem ist der von Ihnen angegebene Link kein Datenblatt. Sie haben ihm gesagt, er solle das "ATMEGA328P-PU-Datenblatt" lesen und keine Google-Suche nach einer Antwort durchführen.
OK, ich wiederhole. Rob, Sie sollten wissen, dass jeder Hersteller eines nicht trivialen Geräts Dokumentationen veröffentlicht, um genau diese Frage zu beantworten. Die Hersteller haben ein klares Interesse daran, Ihnen den Umgang mit ihrem Produkt einfach zu machen. Das Datenblatt zu überfliegen ist der erste Weg. Für komplexe Dinge wie Mikrocontroller gibt es möglicherweise einen separaten Anwendungshinweis. „typische Anwendung“ sind die Zauberwö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.

Antworten (3)

Alles, was Sie außer dem Programmierer und dem Chip brauchen, sind ein paar Entkopplungskappen und eine Möglichkeit, die Programmiersignale mit dem Steckbrett zu verbinden.

So:

  • 1 großer Elko (z. B. >100uF) Auf diesen kann man evtl. verzichten, wenn die Quelle schön leise ist (z. B. Batterie)
  • 1 100nF Keramik über die Stromanschlüsse des Mikros
  • 1 10-kΩ-Widerstand zum Verbinden des Reset-Pins mit Vcc, um das Mikro aus dem Reset zu halten.
  • Einige Überbrückungskabel, um Knoten auf Ihrem Steckbrett zu verbinden (Sie können fertige Überbrückungskabel kaufen, aber ich verwende eine 22-AWG-Rolle und schneide meine eigene - viel billiger, wenn Sie dies häufig tun)
  • Ein Header, an den Sie Ihr Programmierkabel anschließen können. Laut Benutzerhandbuch sieht es so aus, als ob Sie einen 2x3-Pin-Header mit 2,54 mm Rastermaß benötigen.

Optional

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

Abgesehen von dem Header (der 10-polig mit einigen unbenutzten Pins ist - Sie können die Beschriftungen als Leitfaden für Ihre Verbindungen verwenden, die Namen sind gleich) ist dieser Schaltplan so ziemlich der einfachste, den ich mit einem schnellen Google finden konnte:

Einfaches AVR-Schema

Lustigerweise habe ich gerade einen Blog geschrieben, in dem ich so ziemlich dasselbe mit einem PIC-Mikrocontroller mache (kann einen Blick wert sein, die beiden sind sich sehr ähnlich).

Wenn wir absolut minimal sprechen, brauchen Sie den Pullup-Widerstand auf der Reset-Leitung nicht - der AVR hat einen internen Pullup. Und wenn es ratsam ist, sollten Sie auch eine Obergrenze für die Reset-Leitung angeben – siehe diesen App-Hinweis: atmel.com/images/doc2521.pdf . Außerdem ist der von Ihnen erwähnte 2x3-polige ISP-Header viel häufiger als der im Schaltplan gezeigte 2x5.
Vielen Dank! Wenn die 100-nF-Kappe für die Stromanschlüsse bestimmt ist, wofür ist die > 100-µF-Kappe?
@RobN Der kräftige Kondensator dient zur Filterung / Glättung von Netzteilrauschen
@NickJohnson - danke für die Feinheiten - Sie können meine Antwort gerne bearbeiten, wenn Sie möchten (wie erwähnt, habe ich keinen AVR verwendet, mein kleines Mikro der Wahl ist der PIC - oder tatsächlich ein ARM wie der STM32F10xxx heutzutage häufiger)
Wenn Sie das Arduino-Framework verwenden, benötigen Sie außerdem einen 100-nF-Kondensator zwischen dem DTR-Signal des Seriell-zu-USB-Adapters und der Reset-Leitung, da Sie sonst gezwungen sind, eine Adapterplatine auf Perfboard mit einem 0402-Kondensator von Hand zu löten ist das einzige Paket, in dem Sie 100 nF zur Verfügung haben, und niemand würde jemals so etwas Dummes tun.

Ich poste dies nur als Antwort, um die hässlichen URLs zu verbergen. Sie sollten unbedingt einen Blick auf Atmel Appnote AVR042: AVR Hardware Design Considerations werfen .

+1 für eine hervorragende Referenz, ich habe nach so etwas gesucht, um die "allgemeinen" Ratschläge zur Einrichtung kleiner Mikros zu ergänzen. @RobN - Sie sollten dieses Dokument gründlich lesen.

Ich habe auch diesen hilfreichen Link von den Arduino-Leuten gefunden: 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 bloße minimale Support-Komponenten.