Einführung in die Programmierung des Mikrocontrollers Atmega128/328

Atmega128/328 ist ein leistungsstarker Mikrocontroller, der in einer Vielzahl von Anwendungsbereichen eingesetzt wird. Es handelt sich um einen hochintegrierten 8-Bit-Mikrocontroller mit einer Vielzahl von Peripheriegeräten und Funktionen. In diesem Blogbeitrag werden wir uns die verschiedenen Funktionen des Atmega128/328, seine Pin-Konfiguration, Programmiertechniken und Anwendungen ansehen. Außerdem werden wir die Vorteile des Atmega128/328-Mikrocontrollers gegenüber anderen Mikrocontrollern diskutieren und einige Best Practices für die Arbeit mit ihm vorstellen.

Was ist Atmega128 / 328?

Atmega128 / 328 ist ein 8-Bit-Mikrocontroller, der von der Atmel Corporation hergestellt wird. Er basiert auf der AVR-Architektur und ist einer der beliebtesten Mikrocontroller, die in eingebetteten Systemen verwendet werden. Er ist in verschiedenen Gehäusen und Konfigurationen erhältlich, darunter ein 40-poliger PDIP, ein 44-poliger TQFP und ein 64-poliger VQFP. Der Atmega128 / 328 basiert auf der RISC-Architektur und verfügt über eine Vielzahl von Peripheriegeräten, darunter einen 8-Kanal-10-Bit-A/D-Wandler, drei 16-Bit-Timer, einen seriellen Port und einen SPI-Port. Er verfügt über insgesamt 128 KB Programmspeicher und 2 KB EEPROM.

Atmega128
Atmega128

Übersicht über Atmega128 / 328

Funktionen

Der Atmega128/328 verfügt über eine Vielzahl von Funktionen, was ihn zu einem vielseitigen und leistungsstarken Mikrocontroller macht. Er hat eine 16-Bit-RISC-Architektur, die es ihm ermöglicht, Befehle schnell und effizient auszuführen. Er kann mit 8 MHz, 16 MHz oder 20 MHz betrieben werden und eignet sich daher für eine Vielzahl von Anwendungen. Der Atmega128 / 328 verfügt außerdem über eine Vielzahl von Peripheriegeräten, darunter einen 8-Kanal-10-Bit-A/D-Wandler, drei 16-Bit-Timer, einen seriellen Anschluss und einen SPI-Anschluss. Er verfügt außerdem über 128 KB / 328 KB Programmspeicher und 2 KB EEPROM, wodurch er große Datenmengen speichern kann.

Der Atmega128 / 328 ist außerdem hochintegriert und eignet sich daher ideal für den Einsatz in eingebetteten Systemen. Er verfügt über einen On-Chip-Oszillator, eine On-Chip-Reset-Schaltung und eine On-Chip-Spannungsregelung. Außerdem verfügt er über eine On-Chip-Power-On-Reset-Schaltung, die sicherstellt, dass der Mikrocontroller bei Einschalten der Spannung zurückgesetzt wird. Darüber hinaus verfügt der Atmega128 über eine Vielzahl von E/A-Ports, sodass er mit einer Vielzahl externer Geräte verbunden werden kann.

Pin-Konfiguration

Atmega128 / 328 verfügt über insgesamt 64 Pins, die in zwei Reihen angeordnet sind. Die Pins sind in zwei Kategorien unterteilt: digitale I/O-Pins und analoge I/O-Pins. Die digitalen I/O-Pins dienen zur Steuerung digitaler Signale, während die analogen I/O-Pins zur Steuerung analoger Signale verwendet werden. Der Atmega128/328 verfügt außerdem über einen seriellen Port, einen SPI-Port und einen I2C-Port.

Pin Configuration of Atmega128
Pin Configuration of Atmega128

Anwendungen

  • Robotikprojekte, beispielsweise in Roboterarmen und autonomen Robotern.
  • Kommunikationsprojekte, beispielsweise Bluetooth- und WLAN-Module.
  • Datenerfassungssysteme und eingebettete Systeme für Datenprotokollierung und -steuerung.
  • Automobilanwendungen, z. B. in Motorsteuerungssystemen und Infotainmentsystemen für Fahrzeuge.
  • Konsumgüter, wie Fernbedienungen, Digitalkameras und Haushaltsgeräte.

Programmierung des Atmega128 / 328

Der Atmega128/328-IC kann entweder mit C oder Assemblersprache programmiert werden. Er verfügt über eine Vielzahl von Funktionen, die die Programmierung vereinfachen, darunter eine große Auswahl an E/A-Ports, einen On-Chip-Oszillator und einen On-Chip-Spannungsregler.

Wenn Sie den Atmega128 / 328 programmieren möchten, benötigen Sie einen Programmierer. Ein Programmierer ist ein Gerät, mit dem der Programmcode von einem Computer auf den Atmega128 / 328 übertragen wird. Sobald der Programmcode übertragen wurde, kann der IC mit der entsprechenden Software programmiert werden. Alle Schritte lassen sich in vier Teile unterteilen, wie unten beschrieben:

  • Teil 1: Vorbereiten der erforderlichen Komponenten.
  • Teil 2: Aufbau von Arduino-Schaltungen auf einem Steckbrett.
  • Teil 3: Brennen des Bootloaders in den Atmega128/328-IC.
  • Teil 4: Programmieren des Atmega128/328-IC.

Teil 1: Vorbereitung der Komponenten

Atmega128 / 328: Die Schlüsselkomponente auf dem Steckbrett und ihr Pinbelegungsdiagramm sind oben angegeben.

Steckbrett (LM7805): Ein lötfreies Gerät zum Verbinden elektronischer Komponenten mit Überbrückungskabeln.

Oszillatoren (16 MHz): Liefern die Taktsignale für den IC und sind mit Pin 23 und Pin 24 verbunden.

Kondensator (10 uF): Wird in den Eingangs- und Ausgangsbereichen des LM7805 verwendet, um alle Wechselstromkomponenten zur Masse zu leiten.

Drahtbrücke: Ein Metalldraht, der zwei Punkte auf einer Leiterplatte oder einem Steckbrett verbindet.

Teil 2: Aufbau von Arduino-Schaltungen auf einem lötfreien Steckbrett

Schritt 1: Schließen Sie zunächst den Stromversorgungsbereich wie im Schaltplan gezeigt an und testen Sie ihn mit dem externen Netzteil des LM7805. Das sieht so aus:

Connecting the power to LM7805 breadboard

Schritt 2: Schließen Sie dann den Mikrocontroller-Teil wie im Schaltplan gezeigt an.

Connecting the Atmega128 / 328 IC to breadboard

Schritt 3: Verbinden Sie nun die Stromversorgung und den Mikrocontroller-Teil mit Drahtbrücken.

Connecting the power supply and the Atmega128 / 328 IC by wire jumpers

Teil 3: Brennen Sie den Bootloader in den Atmega128/328-IC ein.

Ein Bootloader ist ein kleines Stück ausführbarer Code, das dauerhaft im Speicher des Mikrocontrollers gespeichert ist. Dieser nimmt weniger als 1 KB Speicherplatz ein. Ein Bootloader ermöglicht es dem IC, Code vom Computer zu akzeptieren und ihn im Speicher des Mikrocontrollers zu platzieren.

Wenn Sie einen neuen Atmega128 / 328 im Handel kaufen, verfügt dieser nicht über einen Bootloader. Um ihn mit der Arduino IDE zu programmieren, müssen Sie daher zunächst den Bootloader hochladen.

Zum Hochladen des Bootloaders gibt es zwei Methoden:

  • Verwendung des USBasp-Programmiergeräts
  • Verwendung eines Arduino UNO-Boards

Im Vergleich zur ersten Methode ist die zweite Methode einfacher. Denn sie erfordert weniger Anschlüsse und die neuesten Versionen der Arduino IDE sind weniger kompatibel mit USBasp-Programmiergeräten.

In diesem Tutorial verwenden wir daher das Arduino UNO-Board, um den Bootloader hochzuladen.

Schritt 1: Öffnen Sie die Arduino IDE. Gehen Sie zum Menü: Datei -> Beispiele -> ArduinoISP. Wählen Sie dann ArduinoISP.

Opening Arduino IDE and Choose ArduinoISP Examples

Schritt 2: Nun müssen Sie diesen Code auf Ihr Arduino-Board hochladen. Wählen Sie im Menü „Tools“ den COM-Port und das Board aus und klicken Sie auf die Schaltfläche „Upload“.

Schritt 3: Trennen Sie nach Abschluss des Uploads das Arduino-Board vom Computer. Verbinden Sie dann das Arduino-Board mit dem Atmega128/328-IC, wie in der Abbildung unten gezeigt.

Connecting the Arduino board with the Atmega128 / 328

Schritt 4: Öffnen Sie die Arduino IDE, nachdem Sie das Arduino-Board mit Ihrem Computer verbunden haben. Gehen Sie dann zum Menü: Tools -> Board: „Arduino/Genuin0 Uno“ und wählen Sie den richtigen Port für Ihr Board aus. Wählen Sie dann Programmer: als „Arduino as ISP“.

Choosing Board Arduino or Genuine Uno and Programmer as Arduino as ISP

Schritt 5: Gehen Sie nun erneut zur Menüleiste „Tools“ und klicken Sie unter der Option „Programmierer“ auf „Bootloader brennen“. Nach einigen Sekunden ist der Bootloader erfolgreich hochgeladen. Wenn beim Hochladen Fehler auftreten, überprüfen Sie bitte die Verbindung.

Burning Bootloader to Atmega128 / 328

Teil 4: Programmierung des Atmega128/328-ICs

Der Arduino Atmega128/328-Chip kann auf verschiedene Arten programmiert werden, darunter:

  1. Verwenden Sie ein Arduino-Board ohne den Atmega128/328-IC.
  2. Verwenden Sie das USB-zu-serielles-TTL-Konvertierungsmodul (FTDI-Modul).
  3. Verwenden Sie einen USBasp-Programmierer (wenn viele Verbindungen vorhanden sind).

Hier stellen wir die erste und zweite Möglichkeit zur Programmierung des Atmega128/328-IC vor.

4.1 Programmierung des Atmega128/328-ICs mit einem Arduino-Board

Schritt 1: Nehmen Sie ein Arduino-Board ohne Atmega128/328-Chip. Verbinden Sie dann das Arduino-Board wie abgebildet mit unserem Steckbrett.

Connecting the Arduino board with the breadboard

Schritt 2: Verbinden Sie das Arduino-Board mit dem Computer und öffnen Sie die Arduino IDE. Wählen Sie Arduino Uno aus dem Menü „Board“ unter „Tools“, „Programmer“ als USBasp und den richtigen COM-Port des Boards.

Schritt 3: Wir beginnen mit dem Hochladen des Blink-Programms. Wählen Sie also das Blink-Programm aus den Beispielen aus und klicken Sie auf die Schaltfläche „Hochladen”.

Uploading the Blink program to Atmega128 / 328

Sie können nun sehen, wie die LED auf dem Steckbrett zu blinken beginnt.

4.2 Programmierung des Atmega128 / 328 mit einem USB-Seriell-Konverter

Dies ist die beste Methode, um den Atmega128 / 328 zu programmieren, wenn Sie kein Arduino-Board haben.

Schritt 1: Richten Sie die Verbindungen des USB-zu-Seriell-Konverters wie folgt ein:

FTDI-RXD-Pin -> Atmega128/328-Tx-Pin (Pin 3)

TXD-Pin von FTDI -> Rx-Pin (Pin 2) von Atmega128 / 328

GND -> GND (Pin 8)

5 V -> Vcc (Pin 7)

Einige FTDI-Module verfügen über einen Reset-Pin, auch bekannt als DTR-Pin, der mit dem Reset-Pin (Pin 20) des Atmega128 / 328 verbunden werden muss.

Schritt 2: Verbinden Sie nun den FTDI mit dem Computer und öffnen Sie den Geräte-Manager in der Systemsteuerung. Sie sehen den Abschnitt „Anschlüsse“, den Sie erweitern. Wenn vor dem Treiber ein gelbes Zeichen steht, muss der Modultreiber aktualisiert werden.

Connecting the FTDI with computer and open Device Management in Control Panel

Wenn keine Markierung vorhanden ist, notieren Sie sich die COM-Port-Nummer und öffnen Sie die Arduino IDE. Gehen Sie zu „Tools“ -> „Ports“ -> Wählen Sie den notierten COM-Port aus.

Schritt 3: Am Ende laden wir das Blink-Programm auf unser Breadboard Arduino hoch. Gehen Sie zu „Datei“ -> „Beispiele“ -> „Grundlagen“ -> „Blink“. Wählen Sie im Menü „Board“ unter „Tools“ „Arduino Uno“, „Programmierer“ als „USBasp“ und den richtigen COM-Port des Boards aus.

Klicken Sie dann auf die Schaltfläche „Hochladen“.

(Hinweis: Wenn Ihr FTDI-Modul keinen DTR-Pin hat, drücken Sie die Reset-Taste auf dem Breadboard und klicken Sie auf die Schaltfläche „Hochladen”. Wenn „Sketch wird kompiliert…” angezeigt wird, halten Sie die Taste gedrückt, bis „Hochladen…” angezeigt wird, und lassen Sie die Taste dann los.

Nun wird das Programm erfolgreich in den Arduino-Bootloader-Chip Atmega128/328 hochgeladen.

Atmega128/328 im Vergleich zu anderen Mikrocontrollern

Der Atmega128/328 ist ein leistungsstarker und vielseitiger Mikrocontroller, aber es gibt auch andere Mikrocontroller, die für bestimmte Anwendungen besser geeignet sein können. Beispielsweise eignet sich der ARM Cortex-M-Prozessor besser für Anwendungen, die eine höhere Leistung erfordern. Der ARM-Prozessor ist außerdem energieeffizienter und eignet sich besser für Anwendungen mit geringem Stromverbrauch.

Der Atmega128 / 328 ist außerdem teurer als einige andere Mikrocontroller. Er ist jedoch ein leistungsstarker und vielseitiger Mikrocontroller und eignet sich für eine Vielzahl von Anwendungen. Daher ist es wichtig, bei der Auswahl eines Mikrocontrollers die Anwendungsanforderungen zu berücksichtigen.

Bewährte Verfahren für die Arbeit mit Atmega128/328

Atmega128 / 328 ist ein leistungsstarker und vielseitiger Mikrocontroller, und es gibt einige bewährte Verfahren für die Arbeit mit ihm. Es ist wichtig, den Mikrocontroller in einer statikfreien Umgebung zu halten, da statische Elektrizität den Mikrocontroller beschädigen kann. Es ist auch wichtig, sicherzustellen, dass der Mikrocontroller mit der richtigen Spannung versorgt wird und dass der integrierte Spannungsregler ordnungsgemäß funktioniert. Darüber hinaus muss sichergestellt werden, dass der integrierte Oszillator ordnungsgemäß funktioniert, da dieser zur Erzeugung des Taktsignals verwendet wird.

Es ist auch wichtig, sicherzustellen, dass die Entwicklungswerkzeuge auf dem neuesten Stand sind und dass der Programmcode gründlich getestet wird, bevor er im Mikrocontroller verwendet wird. Darüber hinaus ist es wichtig, bei der Arbeit mit dem Mikrocontroller die entsprechenden Sicherheitsvorschriften einzuhalten.

Teilen auf:

Nach oben scrollen

Instant Quote