[sape_tizer]
Чт. Авг 11th, 2022

Что и как строить на земельном участке или обо всем понемногу

Все о инструментах, строительстве, работах, АРДУИНО, электрика, электроника и многое другое

Прошивка микроконтроллеров через Ардуино.

Итак, в предыдущем уроке мы наконец то доделали простенький автомат освещения. В принципе осталось всего ничего- заливаете скетч в любую Ардуину, собираете схему и… все! Все работает! Но! Давайте теперь попробуем посчитать денежный эквивалент самого устройства. Будем исходить из самой низкой стоимости деталей.

  1. Собственно сам контроллер Ардуино. Естественно для такого небольшого устройства нужно брать что то небольшое, тоже Nano или Pro-Mini. По сравнению с Ардуино Уно они стоят почти в 3 раза дешевле. Нано кроме того имеет контроллер интерфейса и является полной копией Ардуино Уно только небольшого размера. Очень удобно заливать прошивку без всяких сторонних программаторов и переходников (об этом чуть ниже). Итого стоимость Ардуино Нано около 120 руб вместо 300 руб Ардуино Уно.
  2. Модуль реле KY-019. Цена всего около 50-60 рублей за блок с одним реле.
  3. Блок питания (БП) на 5В. На Али есть БП мощностью несколько Ватт и стоимостью около 40 руб. Стоит посчитать мощность БП для устройства. Реле потребляет около 200 мА, Ардуино- берите еще 50 мА, ну и светодиоды, допустим 3 штуки по 20 мА=3х20=60 мА. Т.е. потребляемый ток будет равен 200+50+60=310 мА. Значит БП нужен мощностью  не менее 5В х 0,31 А=1,55 Вт. Стоит учесть еще потери самого БП, т.е по идее БП на 3 Вт должно хватить. Итого еще 50 руб. Можно конечно поставить старый зарядник от сотового телефона с током не менее 0,3 А. Это будет более правильно и, кроме того, бесплатно.

Кнопки считать не будем т.к. их можно где нибудь выковырять. Вместо кнопок можно поставить различные датчики но это будет в следующем уроке, когда мне придут датчики из Китая. Вобщем посчитаем стоимость только одной Ардуины. 130 рублей. Немного. Но давайте также прикинем другие варианты. Скетч занимает 1,63 кБ. В Ардуино на 328 контроллере находится 32 кБ памяти. Это больше требуемого в 32/1,63=19,6 раз. Почти в 20 раз!!! Мне лично жаль тратить такой контроллер на такой небольшой скетч. Какой же выход можно найти из сложившейся ситуации? Взять контроллер с меньшим объемом памяти и прошить его так же как и Ардуино! Давайте посмотрим какие еще контроллеры есть в семействе Атмега.

Список и описания я взял с сайта http://www.gaw.ru дабы не плодить плагиат и не делать лишнюю работу. Желтым цветом отмечены МК которые не рекомендованы для новых разработок. Есть еще другие МК но они довольно мощные и здесь пока рассматривать их не будем.

Микроконтроллеры семейства TinyAVR

Тип

Напр.

питания
В

Такт.

Частота
МГц

I/O Flash EEPROM SRAM Интер-
фейсы
АЦП Таймеры ISP Корпус
 ATtiny11 2.7-5.5 6 6 1K 1x8bit PDIP8 SOIC8
 ATtiny12 1.8-5.5 6 6 1K 64 1x8bit I PDIP8 SOIC8
 ATtiny13 1.8-5.5 20 6 1K 64 64 4x10bit 1x8bit
2xPWM
I PDIP8 SOIC8
 ATtiny15L 2.7-5.5 6 6 1K 64 4x10bit 2x8bit I PDIP8 SOIC8
 ATtiny2313 1.8-5.5 20 15 2K 128 128 SPI
UART
1x8bit
1x16bit
I PDIP20 SOIC20 MLF32
 ATtiny24 1,8…5,5 20 12 2K 128 128 USI
4xPWM
RTC
8x10bit 1x8bit
1x16bit
S PDIP14 MLF20 SOIC14
 ATtiny25 2,7…5,5 20 32 2K 128 128 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I PDIP8 SOIC8
 ATtiny25 Automotive 2,7…5,5 16 32 2K 128 128 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I SOIC8
 ATtiny25V 1.8 — 5.5 10 32 2K 128 128 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I PDIP8 SOIC8
 ATtiny26 2.7-5.5 16 16 1K 128 128 SPI
UART
11x10bit 2x8bit I PDIP20 SOIC20 MLF32
 ATtiny261 1.8-5.5 20 16 2K 128 128 PWM
USI
11x10bit 1x8bit
1x16bit
I PDIP20 SOIC20 MLF32
 ATtiny461 1.8-5.5 20 16 4K 256 256 PWM
USI
11x10bit 1x8bit
1x16bit
I PDIP20 SOIC20 MLF32
 ATtiny28L 1.8-5.5 4 20 2K 1x8bit PDIP28 TQFP32 MLF32
 ATtiny44 1,8…5,5 20 12 4K 256 256 USI
4xPWM
RTC
8x10bit 1x8bit
1x16bit
S PDIP14 MLF20 SOIC14
 ATtiny45 2,7…5,5 20 32 4K 256 256 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I PDIP8 SOIC8
 ATtiny45 Automotive 2,7…5,5 20 32 4K 256 256 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I SOIC8
 ATtiny45V 1.8 — 5.5 10 32 4K 256 256 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I PDIP8 SOIC8
 ATtiny84 1,8…5,5 20 12 8K 512 512 USI
4xPWM
RTC
8x10bit 1x8bit
1x16bit
S PDIP14 MLF20 SOIC14
 ATtiny85 2,7…5,5 20 32 8K 512 256 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I PDIP8 SOIC8
 ATtiny85 Automotive 2,7…5,5 20 32 8K 512 256 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I SOIC8
 ATtiny85V 1.8 — 5.5 10 32 8K 512 256 SPI
UART
4x10bit 1x8bit
1x8bit high speed
I PDIP8 SOIC8
 ATtiny861 1.8-5.5 20 16 8K 256 256 PWM
USI
11x10bit 1x8bit
1x16bit
I PDIP20 SOIC20 MLF32

Классические AVR-микроконтроллеры

Тип

Напр.

питания, В

Такт. Частота, МГц I/O Flash EEPROM SRAM Интер-
фейсы
АЦП Таймеры ISP Корпус
 AT90PWM1 2.7-5.5 16 19 8K 0.5 512 SPI
PWM
8x10bit 1x8bit
1x16bit
I SO24
 AT90PWM2 2.7-5.5 16 53 8K 512 512 SPI
debugWIRE
PSC
8x10bit 2 I SO24
 AT90PWM3 2.7-5.5 16 53 8K 512 512 SPI
debugWIRE
PSC
11x10bit 2 I SO32, QFN32
 AT90S1200 2.7-6.0
4.0-6.0
4
12
15 1K 64 1x8bit I DIP20 SO20 SSOP20
 AT90S2313 2.7-6.0
4.0-6.0
4
10
15 2K 128 128 UART 1x8bit
1x16bit
I DIP20 SO20
 AT90LS2323 2.7-6.0 4 3 2K 128 128 1x8bit I DIP8 SO8
 AT90S2323 4.0-6.0 10 3 2K 128 128 1x8bit I DIP8 SO8
 AT90LS2343 2.7-6.0 4 5 2K 128 128 1x8bit I DIP8 SO8
 AT90S2343 4.0-6.0 10 5 2K 128 128 1x8bit I DIP8 SO8
 AT90LS4433 2.7-6.0 4 20 4K 256 128 UART
SPI
6x10bit 1x8bit
1x16bit
I DIP28 TQFP32
 AT90S4433 4.0-6.0 8 20 4K 256 128 UART
SPI
6x10bit 1x8bit
1x16bit
I DIP28 TQFP32
 AT90LS8515 2.7-6.0 4 32 8K 512 512 UART
SPI
2x8bit
1x16bit
I DIP40 TQFP44 PLCC44
 AT90S8515 4.0-6.0 8 32 8K 512 512 UART
SPI
2x8bit
1x16bit
I DIP40 TQFP44 PLCC44
 AT90LS8535 2.7-6.0 4 32 8K 512 512 UART
SPI
8x10bit 2x8bit
1x16bit
I DIP40 TQFP44 PLCC44
 AT90S8535 4.0-6.0 8 32 8K 512 512 UART
SPI
8x10bit 2x8bit
1x16bit
I DIP40 TQFP44 PLCC44

Микроконтроллеры семейства MegaAVR

Тип Напр. питания, В Такт. Частота, МГц I/O Flash EEPROM SRAM Интер-
фейсы
АЦП Таймеры ISP Корпус
 ATmega406 4.0 — 25 1 18 40K 512 2K JTAG
TWI
10x12bit
1x18bit
1x8bit
1x16bit
I
Power-save
Power-down
Power-off
LQFP48
 ATmega48 1.8-5.5 20 23 4K 256 512 UART
SPI
I2C
6x10bit
2x8bit
2x8bit
1x16bit
S DIP28 TQFP32 MLF32
 ATmega48 Avtomotove 2.7-5.5 16 23 4K 256 512 UART
SPI
I2C
6x10bit
2x8bit
2x8bit
1x16bit
S TQFP32 MLF32
 ATmega88 1.8-5.5 20 23 8K 512 1k UART
SPI
I2C
6x10bit
2x8bit
2x8bit
1x16bit
S DIP28 TQFP32 MLF32
 ATmega88 Avtomotove 2.7-5.5 20 23 8K 512 1k UART
SPI
I2C
6x10bit
2x8bit
2x8bit
1x16bit
S TQFP32 MLF32
 ATmega168 1.8-5.5 20 23 16K 512 1k UART
SPI
I2C
6x10bit
2x8bit
2x8bit
1x16bit
S DIP28 TQFP32 MLF32
 ATmega168 Avtomotove 2.7-5.5 20 23 16K 512 1k UART
SPI
I2C
6x10bit
2x8bit
2x8bit
1x16bit
S TQFP32 MLF32
 ATmega8 2.7-5.5 16 23 8K 512 1k UART
SPI
8x10bit 2x8bit
1x16bit
S DIP28 TQFP32 MLF32
 ATmega16 2.7-5.5 16 32 16K 512 1k UART
SPI
8x10bit 2x8bit
1x16bit
S DIP40 TQFP44 MLF44
 ATmega32 2.7-5.5 16 32 32K 1K 2K UART
SPI
8x10bit 2x8bit
1x16bit
S DIP40 TQFP44 MLF44
 ATmega64 2.7-5.5 16 53 64K 2K 4K 2xUART
SPI
8x10bit 2x8bit
2x16bit
S TQFP64 MLF64
 ATmega640 1,8…5,5
4,5…5,5
8
16
86 64K 4K 8K 4xUART
JTAG
SPI
16x10bit 2x8bit
4x16bit
I TQFP100
 ATmega128 2.7-5.5 16 53 128K 4K 4K 2xUART
SPI
8x10bit 2x8bit
2x16bit
S TQFP64 MLF64
 ATmega1280 1,8…5,5
4,5…5,5
8
16
86 128K 4K 8K 4xUART
JTAG
SPI
16x10bit 2x8bit
4x16bit
I TQFP100
 ATmega1281 1,8…5,5
4,5…5,5
8
16
54 128K 4K 8K 2xUART
JTAG
SPI
8x10bit 2x8bit
4x16bit
I TQFP64
 AT90CAN32 2.7-5.5 16 53 32K 1K 2048 UART
JTAG
CAN
USART
8x10bit 2x8bit
2x16bit
S MLF 64 LQFP 64
 AT90CAN64 2.7-5.5 16 53 64K 2K 4K UART
JTAG
CAN
USART
8x10bit 2x8bit
2x16bit
S MLF 64 LQFP 64
 AT90CAN128 2.7-5.5 16 53 128K 4K 4K 2xUART
SPI
CAN
8x10bit 2x8bit
2x16bit
S TQFP64 MLF64
 AT90CAN128 Automotive 2.7-5.5 16 53 128K 4K 4096 2xUART
SPI
CAN
8x10bit 2x8bit
2x16bit
S MLF64 LQFP64
 ATmega103 4.0-5.5 6 48 128K 4K 4K UART
SPI
8x10bit 2x8bit
2x16bit
I TQFP64
 ATmega161 2.7-5.5 8 35 16K 512 1K 2xUART
SPI
2x8bit
1x16bit
S DIP40 TQFP44
 ATmega162 1.8-5.5 16 35 16K 512 1K 2xUART
SPI
2x8bit
1x16bit
S DIP40 TQFP44 MLF44
 ATmega163L 2.7-5.5 8 32 16K 512 1K UART
SPI
8x10bit 2x8bit
1x16bit
S DIP40 TQFP44 MLF44
 ATmega164P/V 1.8-5.5 16 32 16K 512K 1024 2xUART
SPI+USART
TWI
8x10bit 2x8bit
1x16bit
S MLF44 PDIP40 TQFP44
 ATmega165 1.8-5.5
2.7-5.5
8
16
53 16K 512 1K UART
SPI
JTAG
PWM
8x10bit 2x8bit
1x16bit
S TQFP64 MLF64
 ATmega165P 1.8-5.5 16 54 16K 0.5 1024 UART
SPI+USI
4PWM
8x10bit 2x8bit
1x16bit
S MLF64 TQFP64
 ATmega169 1.8-3.6 4 53
4×25 LCD
16K 512 1K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP64
 ATmega169P 1.8-5.5 16 54 16K 0.5 1024 UART
SPI+USI
4PWM
8x10bit 2x8bit
1x16bit
S MLF64 TQFP64
 ATmega8515 2.7-5.5 16 35 8K 512 512 UART
SPI
2x8bit
1x16bit
S PDIP40 PLCC44 TQFP,MLF
 ATmega8535 2.7-5.5 16 32 8K 512 512 UART
SPI
8x10bit 2x8bit
1x16bit
S PDIP40 PLCC44 TQFP MLF
 ATmega2560 1,8…5,5
4,5…5,5
8
16
86 256K 4K 8K 2xUART
JTAG
SPI
16x10bit 2x8bit
4x16bit
I TQFP100
 ATmega2561 1,8…5,5
4,5…5,5
8
16
54 256K 4K 8K 2xUART
JTAG
SPI
8x10bit 2x8bit
4x16bit
I TQFP64
 ATmega324P/V 1.8-5.5 20 32 32K 1K 2048 2xUART
SPI+USART
TWI
8x10bit 2x8bit
1x16bit
S MLF44 PDIP40 TQFP44
 ATmega325 1.8-5.5 16 53 32K 1K 2K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega3250 1.8-5.5 16 68 32K 1K 2K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega325P 1.8-5.5 20 54 32K 1K 2048 UART
SPI
8x10bit 2x8bit
1x16bit
S MLF64 TQFP64
 ATmega3250P 1.8-5.5 20 54 32K 1K 2048 UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP100
 ATmega329P 1.8-5.5 16 54 32K 1K 2048 JTAG
SPI
8x10bit 2x8bit
1x16bit
S MLF64 TQFP64
 ATmega3290P 1.8-5.5 16 54 32K 1K 2048 JTAG
SPI
8x10bit 2x8bit
1x16bit
S TQFP100
 ATmega644P/V 1.8-5.5 20 32 64K 2K 4096 2xUART
SPI+USART
TWI
8x10bit 2x8bit
1x16bit
S MLF44 PDIP40 TQFP44
 ATmega645 1.8-5.5 16 53 64K 2K 4K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega6450 1.8-5.5 16 68 64K 2K 4K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega644 1.8-5.5
2.7-5.5
10
20
32 64K 2K 4K UART
SPI
TWI
PWM
JTAG
8x10bit 2x8bit
1x16bit
S PDIP40 TQFP44 MLF44
 ATmega329 1.8-5.5 16 53
LCD 4×25
32K 1K 2K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega3290 1.8-5.5 16 68
LCD 4×40
32K 1K 2K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega649 1.8-5.5 16 53
LCD 4×25
64K 2K 4K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF
 ATmega6490 1.8-5.5 16 68
LCD 4×40
64K 2K 4K UART
SPI
8x10bit 2x8bit
1x16bit
S TQFP MLF

Как видно из таблицы микроконтроллеров достаточно большое количество и практически любой контроллер можно «заточить» под нужную задачу. Давайте и мы выберем хоть какой то с подробным описанием как выбирать и по каким параметрам вообще нужно ориентироваться.

  1. Объем памяти. Действительно, если представить что нам нужно 4 кБ памяти и взять, например, ATtiny25 то памяти просто не хватит т.к. этот МК имеет всего 2 кБ памяти. Поэтому лучше брать все таки побольше. Я бы выбрал  ATtiny85. Там уже 8 кБ памяти и, если будет доработка функционала, есть некоторый буфер для программы.
  2. Количество выводов. Это наверное даже поважнее чем п.1. Все упирается в количество портов ввода-вывода. На выводы конечно можно подключать устройства I2C и поадресно их опрашивать и выводить информацию. Но с I2C такие МК работают достаточно медленно. В нашем случает с  ATtiny85 есть 8 выводов (корпус PDIP8 SOIC8, т.е. 8 выводов), из которых 2 питание а остальные 6 мы смело можем использовать! Нам при изготовлении нужно: 1 вывод на кнопки, 1 вывод на светодиоды, 1 вывод на реле. Свободными остаются еще 3 вывода! Т.е. нам хватит и памяти и выводов. Тем более её размер. В корпусе PDIP8 их уместится несколько штук на ногте! Цена вопроса. Тиньки (ATtiny контроллеры так называют радиолюбители) вместе с контроллером для программирования через USB порт стоят около 80 руб. Уже дешевле. Но что странно. В Китае просто МК стоят дороже чем готовое устройство! Нонсенс!
  3. Напряжение питания. Дальше мы рассмотрим работу с фьюзами. Так вот именно эти внутренние переключатели указывают как будет работать МК.  С чем это можно сравнить. Например вы написали программу на компьютере. Включаете компьютер и.. компьютер не включился. Почему спросите вы? Ну причин может быть много: неисправный БП (1 причина), процессор (2), память (3) и т.д… а может быть просто слетел БИОС. Так вот именно фьюзы и работают как БИОС на компьютере- они указывают как будет работать собственно ядро МК. Можно выставить частоту работы ядра, от какого генератора синхронизируется МК, внешнего или внутреннего, пределы допустимого напряжения питания при которых МК будет работать. Ту же 85 тиньку можно питать напряжением от 2,7 до 5,5 В. Достаточно просто правильно выставить фьюзы.

Вобщем будем выбирать контроллер с Flash- памятью (туда именно и записывается наш код программы) не менее 8 кБ и как можно дешевле (здесь не говорится о минимизации, если нужно миниатюрное устройство то стоит поискать МК для поверхностного монтажа в корпусах TQFP и SO). Возьмем мой любимый МК ATmega8. Его достоинства: 8 кБ памяти, 28 выводов (из них около 20- наши), имеется 512 байт энергонезависимой памяти в которую мы можем сохранять и считывать необходимые данные. Цена- около 50-60 руб за штуку в Китае. Итого мы удешевили наш проект только по МК уже не менее чем в 2 раза. Осталось научиться запрограммировать МК.

Мы рассмотрим 3 программы для программирования МК. Это будет собственно сама оболочка Arduino IDE, AVRDUDESHELL и Sinaprog. Самая простая- Sinaprog но ей необходимо подготовить hex- файл в Arduino IDE. Самая навороченная- AVRDUDESHELL. Но начнем мы все таки с  Arduino IDE т.к. без нее никуда и ей просто надо уметь пользоваться. Приступаем к программированию.

Как запрограммировать Atmega с помощью Arduino и Arduino IDE

Итак открываем  Arduino IDE и прежде всего нужно загрузить библиотеки нужных контроллеров в саму  Arduino IDE. Это делается следующим образом: Нажимаем Скетч- Подключить библиотеку- Управлять библиотеками. В открывшемся окне в верхнем правом поле наберите MiniCore (можете прямо отсюда скопировать). Кликаете на данный пакет и жмете кнопку Установка. Пакет установится и теперь при выборе платы в меню Инструменты в самом низу появится еще целых 5 типов контроллеров (возможно в новых обновлениях будет больше выбор)! Выбираете какой вам нужен и можете переходить к более точной настройке. Т.е. в меню инструменты вам становятся доступны менюшки по настройкам фьюзов. Значение Bootloader предлагает вам записать ардуиновский загрузчик. Можете выбрать Да или Нет. Загрузчик тоже занимает место. Учтите это. BOD- это минимальное напряжение питания при котором контроллер отключится. Можете выбрать 2,7v и тогда МК будет работать от, например, элемента 18650. Особое внимание обратите на значение Clock. В данном меню указывается частота ядра МК и тип задающего генератора. Например запись 20MHz external предписывает МК работать от ВНЕШНЕГО кварцевого резонатора с частотой 20 МГц. Т.е. для запуска МК вам придется подключить такую схему,

Подключение кварцевого резонатора к Атмега
Подключение кварцевого резонатора к Атмега

причем кварцевый резонатор должен быть на 20 МГц. Иначе МК работать не будет. Для Атмега 8 кварц нужно подключать на 9 и 10 выводы (см. даташит ниже). В случае если укажете, например, 1MHz internal то вы запускаете внутренний генератор самой атмеги и, таким образом, МК начинает работать с указанной частотой. Обратите внимание что внутренний генератор включается только на 1 и 8 МГц, чего вполне достаточно для бытовых целей. LTO (Link Time Optimization)- оптимизатор кода, позволяет сделать код более компактным, т.е. уменьшит размер  занимаемой памяти, по умолчанию отключен. Можете включить но работает он непредсказуемо. Так что лучше все таки отключить. Еще добавлю общие советы. Самое главное- постарайтесь НИКОГДА НЕ ЗАНИМАТЬ ВЫВОД RESET. Если вы неудачно прошьете, решите дописать что то в новую прошивку, что то изменить в коде для удобства и решите после переписать МК с запрограммированным выводом RESET- вы вряд ли сможете записать новый код в запрограмированный МК, т.к. при программирований используется именно этот вход. А так как он занят программно то работать он, естественно, не будет. Есть конечно вариант сбросить МК к заводским настройкам с помощью AVR Doctor но опять же нужно будет делать данное устройство. Если вы довольно плотно подсели на МК Атмега то данное устройство просто необходимо вам в вашей работе. У меня МК немного но я уже несколько раз «лочил» (от англ. lock- запирать, закрывать) МК и только это устройство помогло мне реанимировать 3 Атмега8. Вроде немного но зато теперь я уверен- если что случится то всегда могу все вернуть на исходные позиции. Это не реклама а просто констатация факта. А что вы будете делать- решать только Вам.

Теперь делаем следующее. Находим картинку с названием выводов нашего МК. Например для Атмега 8 есть вот такая картинка- даташит (напомню что 328 и 8 атмеги различаются объемом памяти).

Распиновка 328 атмеги
Распиновка 328 атмеги

По ней находим выводы MISO, SCK, MOSI, GND, 5V, RESET. Теперь подключаемся таким образом:

Назначение ARDUINO Atmega 8
RESET 10 1
MOSI 11 17
MISO 12 18
SCK 13 19
5V +5V 7
GND GND 8, 22

Как вы поключитесь абсолютно не имеет никакого значения, можете сделать переходник и включаться напрямую в Ардуино, можете все соединить на макетной плате- не важно. Главное- правильно все подсоединить. Другие МК программируются абсолютно так же. Качаете даташит, находите указанные выше выводы и подсоединяете вывод RESET Ардуино (10 вывод) к выводу RESET МК, вывод MOSI Arduino (11 вывод) к выводу MOSI МК и т.д.  Единственное что нужно- указать тип МК и прописать нужные значения в MiniCore.

Теперь подключаем Ардуино к компьютеру (Arduino ISP уже должна быть залита в Ардуино, если нет то выбираете плату Ардуино, указываете порт, заливаете Arduino ISP, переключаетесь на нужный МК, прописываете фьюзы), выбираем нужный скетч и заливаем его в МК. Разные версии программы Ардуино по разному позволяют записывать скетч в МК. В одних версиях нужно открыть меню Файл- Записать с помощью программатора. В моей версии 1.6.8 для записи через программатор достаточно нажать Shift и нажать стрелку как для заливки скетча в Ардуино. После непродолжительного перемигивания светодиодов на Ардуино скетч будет записан в МК. На этом запись закончена и можно переходить к сборке готового устройства. Хочу так же обратить ваше внимание что при указывании портов ввода- вывода на Ардуино следует учитывать что значение цифрового порта D1 не является первым выводом Атмеги. Для этого вам опять же необходимо ознакомится с картинкой расположения выводов на Атмеге. По распиновке смотрим что порт D1 находится на 3 выводе Атмеги 328 (или 8 Атмеги). Вообще выводы IDE отмечены розовым цветом. Поэтому при разводке платы следует учитывать расположение выводов микросхемы.

Добавить комментарий