Так уж получилось ,что мне пришли Attiny13 с заблокированным фьюзом RSTDISBL - в ячейках фьюзов был зашит мусор.Паралельно с перепиской с продавцом начались поиски решения проблемы.
Напомню,что у большинства микроконтроллеров Atmel вывод reset можно перепрограммировать в обычный вывод ,и в этом случае прошивка по SPI становится недоступно - программирование в этом случае возможно только через HVSP / HVPP программаторы:
Подробнее: Востанавливаем фьюзы на микроконтроллерах Attiny через Arduino
Микроконтроллеры Atmega обычно программируются через интерфейс ISP (SPI),но для этого необходимо,хоть и недорогой,но всетаки программатор. Данный способ для подключения использует 5 проводов (SCK, MISO, MOSI, reset, GND).
Но используя специальный загрузчик, зашитый в нижнюю область памяти микроконтроллера можно прошивать через последовательный порт используя выводы (RX, TX ,reset, GND) - Так прошиваются платы Arduino, на которых установлена микросхема переходник USB-RS232. Загрузчик активируется командой сброса на выводе reset микроконтроллера и ждет очень небольшой промежуток времени, если передача по последовтельному порту не началась, то управление переходит на нулевой адрес микроконтроллера, где находится основная программа.
Превращаем Arduino Duemilanove в Uno
Существует 2 разновидности Arduno плат (не считая микро/мини варианты) на основе микроконтроллера ATMEGA328P ,которые отличаются небольшими схематическими изменениями:
Arduino Duemilanove - более старый вариант платы,где переходником USB-RS232 служит микросхема FT232RL
Arduino Uno - более новый вариант,где переходником USB-RS232 служит микроконтроллер ATMega8U2.Соответственно рядом с ним имеется SPI разъем для её программирования.
На этом основные различия схемы заканчиваются..Но имеется различие ещё и в загрузчиках.В Duemilanove он занимает 2 кб,а в UNO 512 байт !
Добавляем поддержку не родных м/к в среду Arduino IDE
Иногда можно использовать в своих проектах умного дома более простые или слабые микроконтроллеры,где ресурсов может быть достаточно для простых операций -Такие микроконтроллеры дешевле.Кроме программирования таких микроконтроллеров в более сложной среде разработки в WinAVR или CodeVisionAVR можно использовать среду Arduino IDE,добавив их поддержку.Иногда могут пригодится микроконтроллеры с бОльшим количеством портов,например Atmega16 и Atmega32 - их так же можно программировать в Arduino.
Подробнее: Добавляем поддержку не родных м/к в среду Arduino IDE
Прошивка микроконтроллеров Atmega без arduino через USBasp:
Существуют простые и дешевые программаторы для прошивки м/к Atmega ,которые поддерживает среда Arduino IDE- необходимо просто выбрать соотвествующий программатор USBasp в настройках Arduino IDE.USBasp необходим,если вы просто прошиваете микроконтроллеры Amtel.Программатор основан на м/к Atmega 8 и использует програмный USB.