Месячный Архив: Ноябрь 2012

arduino AVR electronic

Добавляем поддержку «совместимых» микроконтроллеров в Arduino IDE

В линейке контроллеров, кроме тех, которые используются в «стандартных» платах arduino(Duemilanove, Diecimila, Uno) а именно atmega328 и atmega168 есть ещё 2: atmega48 p/a/pa и atmega88 p/a/pa с меньшим объёмом flash/ram памяти, но идентичным набором периферии. И т.к. серийных плат с младшими моделями нет, Arduino IDE «из коробки» не умеет компилировать и прошивать скетчи в эти контроллеры. Вот как выглядят модули на них(справа первая версия с более «толстым» atmega168):

Чтобы добавить поддержку этих контроллеров нужно сделать следующее: Читать далее »

AVR electronic

Пример работы со внешней памятью на AVR

После изготовления Memory shield(о котором, я надеюсь, скоро напишу) я хотел проверить его работу, но всё время не хватало времени, да и знаний тоже. Может и сейчас я в чём-то ошибаюсь, но всё-таки выложу это здесь.
Это простенький пример тестирования памяти. Кстати. Хочу отметить, что даже без подключенного шилда, то что читается из памяти вполне определено — а именно младший байт адреса, т.к. он мультеплексирован с шиной адреса и на контактах, болтающихся в воздухе, остаётся только что выставленное значение(у AVR есть функция поддтяжки этих пинов к питанию, но я её пока не использовал).
Читать далее »

AVR electronic

Очередная пародия на printf

Понадобилось мне для некоторых целей быстренько соорудить нечто похожее на printf для микроконтроллера. Нет, я знаю, что есть успешный опыт прикручивания полноценного printf, но чукча не читатель.
Как будет время, обязательно разберусь, но пока я просто оставлю это здесь. Читать далее »

AVR electronic

Макетная плата для AT90USB647. Описание.

Макетная плата для AT90USB647. Описание.
Макетная плата для AT90USB647. Первые шаги.
Макетная плата USB7. Memory Shield. Пример работы со внешней памятью на AVR
Макетная плата USB7. CPLD Shield.

Недавно я попытался сделать макетную плату, которая бы могла упростить разработку широкого круга электронных устройств. Решил выполнить её на довольно богатом переферией микроконтроллере семейства AVR, а конкретно AT90USB647, который в частности включает в себя USB контроллер 7й серии с поддержкой USB OTG(USB HOST).

Читать далее »

AVR electronic

Макетная плата для AT90USB647. Первые шаги.

Макетная плата для AT90USB647. Описание.
Макетная плата для AT90USB647. Первые шаги.

Классический «Hello world» для микроконтроллеров — мигание светодиодом.


Читать далее »

bash build programming

Кросс-компиляция cygwin → mingw

Некоторое время назад я начал свой кроссплатформенный проект. Поскольку сижу я в основном за Windows, то для компиляции обычно использую cygwin, а для сборки билдов для тестеров под cygwin живет i686-w64-mingw. Все было хорошо, но вот пришла пора, и для вывода пары фраз текста я решил подключить к проекту libfreetype. При компиляции на cygwin проблем нет — ведь в репозитории есть соответствующий пакет, ну а для mingw, естественно, придется собирать либу самому.

Дабы ко мне не было вопросов, я решил подключать либу динамично, а все ее зависимости (чтобы не тащить кучу левых файлов) линковать статично. О моем горьком опыте я здесь и расскажу.
Читать далее »