Sanguino или Мега в DIP-корпусе, и конструктиве под Bread Board.

Клонов ардуины много, большинство из них просто копируют оригинальные модели, некоторые еще и модифицируют их (причем зачастую весьма удачно). Этот же проект уникален сам по себе (с точки зрения компоновки) - не сразу понимаешь (по картинке, с сайта разработчика) зачем оно так ... Но в целом идея потрясающая (хоть и не дешевая). Не знаю, решился бы я сам на приобретение и сборку такого клона, если бы не счастливая случайность: при заказе двух чистых плат (PCB) под простую ардуину (Duemilanove) - мне по ошибке прислали две платы под Sanguino (после извинились и прислали то что нужно, а эти оставили в подарок как "бунус за задержку"). Так вот я и узнал, что есть такая вариация Ардуино-совместимой (на программном уровне) демо-платы.

Причем тут Мега? Как мы помним "классические" вариации ардуины (Duemilanove, UNO) фактически имели лишь аппаратным отличием реализацию преобразователя USB в COM ("жесткая" логика или контроллер). Базовый же контроллер устанавливался в кроватку и был взаимозаменяем (mega8, mega168, mega328) - как и бут-лоадеры (осуществляющие связь со средой разработки ардуино) - можно было зашить любой ... превратив (с точки зрения среды разработки) Duemilanove в UNO и наоборот.

Платы Ардуино-Мега имеют больший форм-фактор, хотя и обратно совместимы с большинством щитов для простой ардуины. Используемые в меге контроллеры (mega128, mega256) имеют smd-корпус, и впаиваются непосредственно на плату - т.е. в случае чего, заменить их весьма проблематично (ножек много и они мелкие). Ардуино-Мега имеет два основных преимущества: больше памяти и больше ног. Фишка тут в том, что в корпусе DIP-28 максимально функциональный контроллер это mega328 - хочешь больше памяти - меняй тип корпуса. Вот видимо приняв это за неизбежность и были выбраны контроллеры для форм-фактора Ардуино-Мега, у которых по мимо увеличенной памяти (128к или 256к, вместо 32к) еще и ног намного больше.

Обращает на себя внимание "скачок" по размеру памяти - нет ардуины с контролером на 64к. Конечно у Атмела такие контроллеры есть и даже в DIP-корпусе, только сороканогие ;-)) Именно на таком контроллере должна была быть модель аруины, предшествующая Меге! И она есть, только форм-фактор у нее своеобразный, а называется она Sanguino. Кстати, в корпусе DIP-40 есть контроллер не только на 64к (mega644p), но и на 128к (mega1284p) - то-есть по размеру памяти как у первой из Мег. Вот с использованием такого максимально емкого сороканогого контроллера я и построил свою Сангуину (рисунок выше). Сознательно не стал распаивать плату полностью - функция внешнего питания мне не нужна - от USB-порта вполне хватает; как впрочем и разъемы ISP и JTAG (хотя может до них очередь и дойдет). Есть один нюанс - сангуина не содержит преобразователя порта, приходится использовать внешний, что в случае такого решения не уменьшает удобства.

Теперь о форм-факторе сангуины. Классические ардуиновские щиты кней конечно просто так не подконнектишь, но часто ли они нужны? Например я часто применяю так называемый "Sensor Shield", который по сути лишь упорядочивает разводку пинов ардуины (превращая их из гнезд в штыри), увеличивает количество пинов земли и питания - а далее обжатыми шлейфами с разъемами коннектишь к ардуине автономно собранные платы с "переферией". Пустой макетный щит - вещь во первых не сказать чтоб дешевая, места на ней мало, на и просто дырки соединять неудобно и не изящно. Сангуина же позволяет весьма изящным способом (без использования дополнительного шлейфа) юзать макетку "Bread Board" - что для первоначального тестирования и отладки самое оно (см. фотку ниже). Далее отлаженную схему уже можно проектировать на автономной плате или в виде щита.

Немножко покритикую. Разработчики сагуины видимо не сильно утруждали себя тестированием своего творения - короче сделали на "отъе*ись". И так недостатки:

  1. Раз уж планировали к использованию на брэд-борде, то нужно было предусмотреть пины земли и питания, которые бы запитывали соответствующие линии на макетке (на рисунке выше в центре) - а так приходится отдельными проводами коннектить их.
  2. Все же не очень удобно, что напрочь отсутствует возможность установки преобразователя порта на самой плате - могли бы и развести место под FTDI-ку, а запаивать ее или нет решил бы пользователь.
  3. Переключатель источников питания в виде тумблера - изврат! Если не ставить автомат - поставили бы хоть классический джампер.
  4. Если экономили на размере платы (см. п.1), то какого хрена было использовать огромные резисторы (вместо smd), да еще ставить их на "попа" (резисторы к светодиодам)? К счастью в этом случае это более поправимо ... (см. рисунок ниже - между дырками успешно встают резисторы типоразмера 0805).

Цена на контроллер mega1284p-pu не очень адекватная - 22 бакса (на момент когда брал я), совместно с платой получается около 30. Т.е. практически цена Меги-256 - в моем случае - просто жалко было не использовать "подаренные" макетки, вот и докупил контроллеры (кстати, редкая модель, из Индии ехали более 2-х месяцев). Затевать ли канитель с сангуиной с нуля? - вопрос спорный, хотя если вам нравится использовать брэд-борд в качестве макетки - вы наверняка оцените удобство сангуино.

С программной точки зрения: для поддержки сангдуины в среде разработки, необходимо ее (среду) "пропатчить" - момент ключевой, там не только "объявление" новой модели с точки зрения объема памяти и т.п., там же еще и фикс скриптов компановки (т.к. плата содержит большее число ног). Архив с патчем содержит в себе и загрузчик, который необходимо предварительно залить в чистый контроллер, еще нужно не забыть корректно выставить FUSE-биты (см. файл boards.txt).

Напоследок продублирую рисунки распиновки и схему с официального сайта:

 

MiGeRA (май 2013)

Заглавная » Радиоэлектроника » Arduino - Высокоуровневая платформа устройств на микроконтроллерах » Sanguino - Arduino под Bread Board