Serwisy partnerskie:
Close icon
Serwisy partnerskie

Programowanie mikrokontrolera Atmega328P za pomocą Arduino IDE

W tym projekcie przyjrzymy się jak zaprogramować załadowany bootloaderem mikrokontroler Atmega328P używając Arduino IDE.
Article Image

Mikrokontroler Atmega328P, jak każdy inny mikrokontroler, może być dość trudny w obsłudze dla początkującego użytkownika. Zazwyczaj wymagają one pewnego zestawu narzędzi, w tym programatora (sprzętowego) oraz platformy programistycznej (np. Atmel Studio) do pisania kodu. Te platformy programistyczne, w przeciwieństwie do Arduino IDE, wymagają zazwyczaj wysokiej znajomości języka C lub innych języków programowania, bez skrótów i uproszczonych funkcji, które zapewnia Arduino.

Aby usunąć tę trudność, mikrokontroler jest flashowany bootloaderem Arduino, co czyni go gotowym do programowania za pomocą prostszego i łatwego w użyciu Arduino IDE.

Aby zaprogramować mikrokontroler za pomocą Arduino IDE, mikrokontroler musi być podłączony za pomocą jakiegoś sprzętu do komputera. Zazwyczaj robi się to na dwa  sposoby:

  1. używając adaptera USB do Serial/TTL,
  2. używając płytki Arduino.

Każde z tych podejść dostarcza mikrokontrolerowi interfejs, który umożliwia interakcję pomiędzy komputerem a mikrokontrolerem.

Zajmiemy się każdym z tych podejść po kolei i przyjrzymy się komponentom i konfiguracji wymaganej do przesłania kodu do mikrokontrolera.

Użycie adaptera USB do Serial/TTL

Adapter USB do Serial/TTL
Adapter USB do Serial/TTL

Pierwsze podejście wymaga połączenia adaptera USB do portu szeregowego z mikrokontrolerem. Adapter USB na Serial/TTL konwertuje sygnały danych z USB w komputerze na Serial/TTL dla mikrokontrolera i vice versa. Dzięki temu możliwa jest komunikacja mikrokontrolera (szeregowa) z Arduino IDE działającym na komputerze (USB). Ta konfiguracja, w porównaniu do drugiej, jest zdecydowanie najtańsza, ponieważ te adaptery są zazwyczaj bardzo tanie.

Schemat

Podłącz adapter USB do Serial/TTL do mikrokontrolera jak pokazano na schemacie poniżej. Nie zapomnij, że ta procedura będzie działać tylko wtedy, gdy mikrokontroler został załadowany bootloaderem.

Schemat 1. Adapter USB do portu szeregowego i Atmega328P

Większość adapterów może być skonfigurowana do pracy na poziomie logicznym 5V lub 3.3V. Upewnij się, że Twój jest skonfigurowany do pracy na poziomie napięcia 5V, ponieważ zasilanie mikrokontrolera jest 5V.

Wczytywanie kodu

Wgranie kodu do mikrokontrolera po wykonaniu połączeń nie wymaga żadnych dodatkowych czynności, poza tymi, które wykonałbyś używając płytki Arduino. Po wpisaniu kodu wybierz port, do którego podłączony jest Twój adapter, a następnie typ płytki i naciśnij przycisk upload. Ładowanie trwa tylko kilka sekund, tak samo jak w przypadku płytki Arduino.

Uwaga: podczas programowania MCU Atmega328P za pomocą Arduino IDE, typ płytki, który należy wybrać to "Arduino Duemilanove or Nano w/ ATmega328".

Aby przetestować konfigurację, użyjemy przykładu Arduino blink. Wybierz przykład i kliknij "upload". Powinieneś zobaczyć, że podłączona dioda LED zacznie po chwili migać.

Użycie płytki Arduino

Drugie podejście polega na użyciu płytki Arduino na jeden z dwóch podobnych sposobów:

  1. poprzez zastąpienie mikrokontrolera w Arduino Uno mikrokontrolerem, który ma być zaprogramowany,
  2. używając którejkolwiek z płytek Arduino jako programatora wewnątrzsystemowego.

Pierwszy sposób jest najłatwiejszy do wgrania kodu do mikrokontrolera, ponieważ polega po prostu na wymianie mikrokontrolera na Uno, na ten który ma być programowany. Jednakże, może to nie być najlepsze rozwiązanie podczas prototypowania, ponieważ przenoszenie układu z Arduino do projektu, tam i z powrotem, może doprowadzić do uszkodzenia pinów mikrokontrolera. Kolejnym minusem tego rozwiązania jest to, że działa ono tylko z Arduino Uno, ponieważ wszystkie inne płytki Arduino używają mikrokontrolerów typu SMD, co sprawia, że wymiana jest niepraktyczna i kosztowna.

Tak więc nie ma schematu do tego sposobu, po prostu podmień mikrokontroler i naciśnij upload.

Druga metoda polega na użyciu Arduino Uno jako programatora wewnątrz układu.

Schemat

Podłącz elementy tak jak pokazano na poniższym schemacie.

Programowanie Atmeg328p za pomocą Arduino Uno

Podczas korzystania z tego podejścia, ważne jest, aby usunąć mikrokontroler z płytki Arduino, aby zapobiec zakłóceniom.

Wgrywanie kodu

Proces wgrywania kodu jest taki sam jak opisany wcześniej. Wpisz kod, który ma być wgrany lub wybierz przykład -> wybierz typ płytki (Duemilanove lub Nano W/atmeg328), wybierz odpowiedni port i kliknij upload. Kod zostanie załadowany do mikrokontrolera.

Po pomyślnym przesłaniu kodu za pomocą któregokolwiek z opisanych powyżej sposobów, Arduino lub konwerter USB - Serial/TTL może zostać odłączony, a projekt podłączony do baterii, aby działał samodzielnie, jak pokazano na poniższym obrazku.

Zaprogramowany mikrokontroler Atmega328p

Artykuł PROGRAMMING ATMEGA328P MICROCONTROLLER WITH ARDUINO IDE opracowano w wersji polskiej na podstawie współpracy z portalem www.electronics-lab.com.

AUTOR
Źródło
www.electronics-lab.com
Udostępnij
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"