27.11.2008

Arduino своими руками

Часть II

(продолжение, см. начало - Часть I)

Итак, программатор готов. Теперь надо выбрать ту схему Arduino, которая лучше всего подходит для самостоятельной реализации (а существует их приличное количество).

По сути, Arduino представляет собой два устройства: интерфейс последовательного порта и микроконтроллер ATMEGA. Последние модификации Ardiono подключаются к PC по USB, используя для преобразования в последовательный порт с TTL-уровнями микросхему FTDI 232R, а у нее неприятная особенность - шаг ножек всего 0,65 мм (варианта в PDIP не выпускается). Я не говорю уже об ArduinoBT, на котором стоит Bluegiga WT11 - не самый легкодоставаемый и дешевый компонент. Наконец, у некоторых Arduino вообще отсутствует интерфейсная микросхема (примеры - Arduino Mini, LilyPad Arduino Main Board) последовательного порта, которым пожертвовали ради миниатюризации. Но в этом случае для загрузки sketch-ей все равно нужен USB Serial Converter, уже готовый модуль с чипом FTDI 232R, что снова возвращает нас к проблеме монтажа 0,65 мм ножек.

Остается Arduino Serial, где используется "настоящий" COM-порт. Цена вопроса - пара диодов и транзисторов, дешево и сердито. Хотя существуют более простые версии 1 и 2, для самостоятельного изготовления наиболее подходит третья версия - Severino.

Если нет желания самостоятельно травить плату хлорным железом, берем "макетку". Я выбрал готовую плату размером 160 х 100 мм, односторонней печатью и стандартным шагом дырок 2,54 мм. Чтобы немного сократить объем пайки, большинство дырок "сдвоено":



Также неплохо иметь группу дырок с шахматным порядком, потому что именно так расположены выводы разъема DB9 для COM-порта. Мне помогла специальная секция на краю платы для монтажа SOIC-корпусов (шаг выводов 1,27мм):



В крайнем случае, можно брать макетку и без такого изыска - на DB9 используется только один ряд контактов 1-5, остальные (4-9) можно смело откусывать.

Вооружаемся принципиальной схемой Severino (я буду ссылаться на нее), начинаем со сборки модуля микроконтроллера. Потребуются детали:
  • Макетная плата - 150 руб.
  • IC1 ATMEGA8-16PU (в корпусе PDIP-28) - 60 руб.
  • Панелька SCS28 (узкая DIP28S) - 3 руб.
  • Кварц Q1 16.0 МГц - 6 руб.
  • Две керамических емкости для кварца по 22pF (C1, C2) - 1 x 2 = 2 руб.
  • Кнопка тактовая 6х6 мм (S1, сброс) - 2 руб.
  • R11 резистор 10К для притягивания сброса к Vcc - 1 руб.
  • Емкость на шину питания 100nF (С6) - 1 руб.
  • Гребенка PLD-6 (разъем ICSP) - 5 руб.
  • Розетки PBS - две 08, две 06 - 5 х 4 = 20 руб.
  • Светодиод LED14 PWR - 2 руб.
  • Светодиод LED13 - 2 руб.
  • Ограничители тока светодиодов - R3,R4 - 1 x 2 = 2 руб.
  • Электролит C5 100uF (мкФ) для фильтрации помех по питанию - 2 руб.
  • Разъем USB-B 1J - 15 руб.
  • Гребенка PLS-3 для джампера "Выбор питания" - 1 руб.
Итого - 274 руб.

Лично я решил не ставить дроссель L1 на плату (уж больно громоздким мне показался приобретенный экземпляр) и использовал решение из версий 1, 2 - один конденсатор 100nF между соединенными попарно лапками Vcc (7) и Aref (21) - к +5В, и GND (22 и 8) - к земле. Вроде работает нормально. Питаться пока придется от USB, поэтому пришлось установить дополнительный разъем и подключить его "+" через джампер-блок, чтобы иметь возможность выбирать источник питания (от USB или от батарейки).

Пара слов по поводу розеток и гребенок с шагом 2,54. С гребенками все просто - из длинной PLS-40 или PLD-80 можно накусать любое количество ножек (и наоборот - составить одну большую гребенку из мелких).



А вот с розетками PBS так просто не получится - они более нежные, придется повозиться с напильником. Поэтому, лучше все-таки покупать розетки на нужное число контактов.

Розетки PBS служат для стыковки с платами расширения (т.н. Shields), если вы собираетесь пристыковывать их к Arduino без лишней возни, надо соблюсти в точности расположение розеток согласно чертежу платы - это стандарт Arduino. Но на макетке с фиксированным шагом 2,54 это сделать практически невозможно, и я просто раскидал их по плате в произвольном порядке, в надежде снабдить в последующем наклейками или надписями.



Итак, собираем все это, уделяя повышенное внимание гребенке ICSP. Подключаем к LPT-программатору (см. первую часть). Запускаем предварительно скачанный софт, в меню ставим Tools -> Board -> Ardiono NG or older w/ATmega8. Потом - Tools -> Burn bootloader -> w/Parallel Programmer. Дожидаемся завершения операции.

Если все правильно, то при каждом нажатии на тактовую кнопку SC1 светодиод LED13 будет радостно помаргивать - так сигнализирует о своем запуске bootloader. Если этого добиться не удалось, проверьте еще раз:
  • правильность монтажа светодиода LED13
  • не подключено ли питание через USB - для ICSP оно не требуется
  • проверить монтаж вообще. пока элементов мало - это несложно
(окончание следует, Часть III)

Комментариев нет:

Отправить комментарий