Съдържание:

Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP: 9 стъпки (със снимки)
Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP: 9 стъпки (със снимки)

Видео: Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP: 9 стъпки (със снимки)

Видео: Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP: 9 стъпки (със снимки)
Видео: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Ноември
Anonim
Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP
Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP
Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP
Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP

Предговор

Наскоро разработвах няколко проекта за IoT, базирани на ESP8266, и открих, че основният процесор се бори да изпълни всички задачи, от които се нуждаеше, за да управлява, затова реших да разпределя някои от по -малко важните дейности на различен микроконтролер (и) в по този начин освобождавайки ESP8266, за да се заеме с работата си като IoT устройство.

Като се има предвид, че исках да публикувам проекта си на възможно най -широка аудитория, реших да използвам Arduino IDE като избрана платформа за разработка, тъй като има толкова широко поддържана общност.

Ограничения при проектирането

За да осигуря разумно разпространение на целеви устройства, позволяващи избор на подходящ микроконтролер за конкретното приложение, се спрях на следните части на Atmel; ATMega328P, ATTiny84 и ATTiny85. За да огранича сложността на необходимия програмист, ограничих избора на часовник до вътрешен за всички устройства и 16 MHz външен само за ATMega328P и ATTiny84.

Това, което следва, е колекция от бележки за програмиране с Arduino и описание на това как съставих прост програмист, базиран на Arduino Uno за тези устройства (Снимки по -горе).

Какви части са ми необходими?

За да изградите програмиста, ще ви трябват следните части

  1. 1 от Arduino Uno
  2. 2 изключени 28 -пинови DIP гнезда с нулева сила на вмъкване (ZIF) (за задържане на ATMega328P, ATTiny85, ATTiny84)
  3. 1 от прототипен щит на Arduino (имам моя тук;
  4. 2 изключени 5 мм светодиода
  5. 2 изключени 1K резистора
  6. 1 от 10K резистор
  7. 4 от 22pF керамични кондензатори
  8. 2 изключени кристала на 16MHz
  9. 3 от 0,1uF керамични кондензатори
  10. 1 от 47uF електролитен кондензатор
  11. 1 от 10uF електролитен кондензатор
  12. Тел за опаковане с различни дължини.

Какъв софтуер ми трябва?

Arduino IDE 1.6.9

Какви умения са ми необходими?

  1. Познаване на Arduino IDE
  2. Известни познания по електроника и как да запоявате
  3. Голяма ръчна сръчност
  4. Товарене на търпение и добро зрение

Обхванати теми

  1. Общо въведение в програмирането на микроконтролери Atmel
  2. ISP или Bootloader: Всичко е малко объркващо
  3. Преглед на веригата
  4. Настройване на вашия програмист
  5. Използване на вашия Arduino ISP програмист
  6. Разработване на код в целевата ви система
  7. Разбрах
  8. Заключение
  9. Използвани препратки

Опровержение

Както винаги, вие използвате тези инструкции на свой собствен риск и те не се подкрепят

Стъпка 1: Общо въведение в програмирането на микроконтролери Atmel

Общо въведение в програмирането на микроконтролери Atmel
Общо въведение в програмирането на микроконтролери Atmel
Общо въведение в програмирането на микроконтролери Atmel
Общо въведение в програмирането на микроконтролери Atmel
Общо въведение в програмирането на микроконтролери Atmel
Общо въведение в програмирането на микроконтролери Atmel

Има два метода за програмиране на микроконтролери Atmel;

  1. В системното програмиране (ISP),
  2. Самопрограмиране (чрез буутлоудър).

Първият метод (1) директно програмира микроконтролера чрез SPI интерфейса след първо пускане на устройството в нулиране. Освен ако не е указано друго, компилирана изпълнима програма -източник се записва на устройството постепенно в кодовата памет, откъдето се изпълнява при стартиране. Има много ISP устройства, способни да програмират Atmel устройства, някои от които са (снимка 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Снимка 2 показва как ISP устройството се свързва с ATMega328P (странно маркиран ICSP) на платката Arduino Uno R3 (снимка 3 дава извода на ISP). Също така е възможно да се програмира микроконтролер Atmel чрез неговия SPI интерфейс, използвайки Arduino Uno като ISP (снимка 4), тук Uno се използва за програмиране на ATMega328P.

Последният метод (2) използва малък код, известен като „bootloader“, постоянно пребиваващ в изпълнимия код на паметта (обикновено заключен, за да се предотврати случайно презаписване pic 5). Този код се изпълнява първо при включване или нулиране на устройството и позволява на микроконтролера да се програмира отново с нов код, получен чрез един от неговите интерфейси от източник, външен за себе си. Методът за зареждане се използва от Arduino IDE за препрограмиране на Arduinos, картографиран като USB комуникационен порт на компютъра (или MAC, Linux кутия и т.н., снимка 6) и в случай на Arduino Uno комуникира с устройството Atmel чрез него сериен интерфейс на IC пинове 2 и 3 на ATMega328P. Също така Arduino Uno (с премахнат микроконтролер ATMega328P) може да се използва за програмиране на ATMega328P чрез метода на зареждащото устройство, ефективно действащ като USB към сериен адаптер (снимка 7).

Какво е USB към сериен адаптер?

USB към сериен адаптер е част от хардуера, който се включва в USB порта на вашия компютър и прилича на сериен com порт (наследство от по-ранни времена, когато компютрите са използвали сериен комуникационен стандарт, известен като EIA-232, V24 или RS232), който ви позволява да изпраща и получава серийни данни на същите електрически нива на микроконтролера. Когато изберете Инструменти -> Порт -> COMx от IDE на Arduino, вие свързвате/свързвате вашия компютър към вашия Arduino.

Подобно устройство понякога се нарича FTDI (снимка 8, което всъщност е търговско наименование) или CH340G и т.н. По-долу.

За по -голяма яснота снимка 9 идентифицира двете устройства на Atmel и съответните им ISP конектори на Arduino Uno R3.

Забележка 1: Ако решите да преминете по маршрута на устройството за FTDI, уверете се, че купувате от реномиран продавач, тъй като на пазара имаше много евтини фалшиви устройства, които се провалиха при прилагане на актуализация на Windows.

Препоръчано: