Arduino на дискретных элементах
Купил на базаре деталек на 19грн(~$2.375). Подключил по схеме:Контроллер попался ATmega8L-8PU. Выбирал подешевле и корпусе dip. Лишь потом вчитался в доки, где написано, что проц будет работать на частотах не более 8МГц. Правда на многих форумах идут споры об правильной интерпретации даташитов :-) Значительная часть юзеров утверждают, что чип ни чем не отличается от атмег с явной маркировкой 16МГц. Это обнадеживает, т.к. кварц я купил на 16. Еще взял 2 конденсатора на 22пФ и панельку на DIP28.
Изображена типовая схема включения микроконтроллера. При чем тут Ардуино? Делаю не полный аналог по всем пинам, размерам. Хотел решить такую задачку - прошить туда бутлоадер и ардуиновский скетч из среды Arduino IDE.
Использую имеющуюся плату Arduino Mega в качестве программатора. Сначала прошиваю бутлоадер.
Собираю такую схемку:
Zoom +
На макетной плате будет выглядеть примерно так (у меня самого такой макетки нет):
Желтый, черный провода - питание, синие - индикация состояния программатора.
- Подключаем usb к ардуине. Загружаем в IDE скетч File > Examples > ArduinoISP.
В оригинальном скетче используются пины 7, 8, 9 для светодиодов. Мне было удобнее чтобы был задействован только один разъем ардуины,
поэтому в скетче программатора переопределяю:
#define LED_HB 49 //9 original pins #define LED_ERR 47 //8 #define LED_PMODE 45 //7
На картинке понятно, зачем это было надо: Zoom+ - Делаем upload скетча
- Выбираем целевую платформу (которую программировать будем) Tools > Board > название девайса, в который входит программируемый контроллер, у меня Atmega8
- Задаем протокол программатора Tools > Programmer > Arduino as ISP
- Шьем бутлоадер Tools > Burn Bootloader
- Имеем ардуино почтисовместимый девайс. "Почти" потому, что шилды сюда не воткнешь, но это и не нужно для данной задачи. Так же не будет работать передача отладочной информации на компьютер командами Serial.print(123); и т.п, но это можно пофиксить подключив переходник USB<->UART. Надеюсь, что китайцы пришлют и я опробую этот вариант.
Все заработало с первого раза. Было несколько моментов, из-за которых у меня были сомнения в успехе. Это и амега с индексом 8L-8PU и кварц непонятный дали на базаре :-) Но он стОит копейки, поэтому пока не заморачивался. На кварце вместо частоты 16MHz написана маркировка, о которой даже google не слыхал. Приведу ее здесь, чтобы услыхал: A83NDK:74, продавец уверял, что ему надо просто поверить. Контроллер завелся, как определить точную частоту, пока не знаю. Пробовал на глаз по секундомеру функцию delay(30000); - отмеряет нормально.
Добавлено 2013-03-22. Прошивка скетчей без использования программатора