Рейтинг
38.98
голосов: 40
avatar

AVR

О блоге

Описание ядра и периферии контроллеров AVR. Все, что касается работы с AVR семейством.

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (271)

dcoder vvzvlad ploop hexFF foxit _YS_ Vasil Tabke XANDER marvin_yorke Ultrin WildCat hexanaft zb3k Vga Alatar t0x193n mzw Reverb tda2030

Все читатели блога

Командная оболочка для AVR

AVR
Подумал я тут недавно: «а не написать ли мне от нечего делать свою командную оболочку для AVR?» И написал.





Читать дальше
  • +8
  • 02 февраля 2012, 21:50
  • _YS_
  • 1

USB микрофон на ATmega8 и V-USB. Беглый экскурс и рабочая железка

AVR
Как то давно я обещал статейку про реализацию USB микрофона на библиотеке V-USB. Время шло, а статья, как и само устройство не хотели приобретать конечную форму. То время нет, то желание, то возможности. Но на днях выдались пару вечеров (плавно перетекающих в ночь), и работа «пошла». В статье не густо фоток и всеми любимого видео, но зато я постарался раскрыть некоторые возможности библиотеки и пройтись по спецификации USB. Не претендую на большую публику (так как реализовать это можно за 5 секунд на аппаратном USB), но раз обещал…

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

Черный AVR DRAGON в год дракона

AVR
Каково место нашего Дракоши среди других зверей для АВР-друзей? Что он может? Как его безопасно юзать? Какими легендами окружен Дракон? Как практически начать работу?
Такие вопросы стояли передо мной в конце декабря 2011 года, я хочу поделится своими ответами.

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

Еще 1-Wire Master, теперь на прерываниях

AVR
Как ни странно, 1-Wire — довольно приятный протокол, особенно учитывая простоту и невысокую стоимость датчиков температуры DS18B20. Поискав в гугле рабочие либы для 1wire-master, я, к своему сожалению, увидел только «синхронные», «блокирующие» примеры, что, к сожалению, в моем случае было неприменимо (ага, я так думал). Пришлось писать свою, «неблокирующую» реализацию…


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

Еще одна реализация 1-Wire

AVR
Наконец-то и я сочинил свою программную реализацию мастера шины 1-Wire. За исходниками и комментариями добро пожаловать под кат.



Читать дальше
  • +1
  • 26 января 2012, 14:41
  • _YS_
  • 2

Кроссплатформенный загрузчик для AVR

AVR
В ходе работ по усилителю для Редгерры (http://www.whitefossa.ru/files/Gerry_amplifier/) мяу написал загрузчик для заливки прошивок в МК. Вы скажете, что таких загрузчиков полно? Да, это так, но во-первых мой собственный мяу ближе, а во-вторых — он обладает кошерными свойствами:

Кроссплатформенность. Клиент загрузчика написан на Qt4, компиляется из одного исходного кода и одинаково работает на Windows (XP x32, XP x64 и Win7 x64 — проверено) и Linux. Должен работать и на других ОС, для которых существует реализация Qt.
  • Отсутствие привязки к AVR Studio.
  • Прошиваемый в МК загрузчик написан на ассемблере и занимает ~560 байт (размер загрузчика ставьте в 512 слов).
  • Прошиваемая часть по-идее должна работать на разнообразных AVR-ках без изменений.
  • Клиентская часть загрузчика содержит базу данных устройств по производителями и моделям (а-ля USB), в которой хранится информация об устройстве, размере его памяти, её организации и т.д. Таким образом, отпадает нужда в хранении этих данных на МК. На МК хранится только идентификатор производителя (3 байта), идентификатор модели (3 байта) и серийный номер (4 байта). Вы можете добавлять свои записи в БД (файл ident.sqlite), только запрашивайте у мяу идентификаторы производителя во-избежание дублирования.
  • Загрузчик принудительно делает бэкап всей прошивки (включая самого себя) и EEPROM перед началом прошивки, таким образом вы никогда не забудете о бэкапах.
  • Сброс во время перепрошивки, некошерная прошивка и тому подобные вещи теперь не страшны — сам загрузчик защищён от записи, поэтому даже в случае повреждения прошивки её можно легко восстановить.
  • СЗагрузчик, клиентская часть и документация являются свободным и открытым программным обеспечением (as beer and as speech) и распространяются под лицензией GPLv3. Таким образом вы можете свободно использовать его, модифицировать и распространять на своих устройствах (подробнее — читайте GPLv3).
  • Загрузчик может работать с любой частотой кварца и скоростью UART, которую поддерживает ваш МК — в клиентской части можно задать все параметры работы с UART.
  • Работает быстро — так как не использует таймауты при работе с портом.
  • В полном соответствии с духом и буквой GPLv3 не поддерживает биты блокировки — ваша прошивка, содержимое EEPROM и сам загрузчик всегда могут быть скачаны прямо с МК.
  • Загрузчик умеет перезагружать устройство после перепрошивки.
  • Легко настроить под ваше устройство. Откройте проект с прошиваемой частью, отредактируйте порт и ногу, на которой будет ожидаться низкий уровень для входа в загрузчик, порт и ногу, на которой будет выставляться высокий уровень, когда мы в загрузчике, тактовую частоту, скорость UART и соберите проект. Для входа в загрузчик надо установить низкий уровень на указанной ноге и дать МК Reset.
  • Проверяет правильность записи всех данных.

Недостатки:

Не поддерживает память МК больше, чем 64кбайта. Если вам нужно больше — модифицируйте протокол обмена, исходники, и пришлите всё это мяу.
Мог бы шить быстрее, так как время тратится на проверку записанных страниц.

Уже хотите качать? Запросто:

http://whitefossa.ru/bootloader/floader-0.0.1_src_noarch.tar.gz и http://whitefossa.ru/bootloader/floader-0.0.1_src_noarch.7z (содержимое идентично) — все исходники + документация.
http://whitefossa.ru/bootloader/floader-0.0.1_windows.7z — скомпилированный под Windows клиент + проект с прошиваемой частью.
http://whitefossa.ru/bootloader/floader-0.0.1_linux_x86-64.tar.gz — то-же, но для Linux.

И да, выглядит это вот-так:
Скриншот
  • +2
  • 17 января 2012, 22:06
  • fossa

Fuse-биты - это не страшно.

AVR
В своей практике я не раз встречался с тем, что lock- и fuse-биты микроконтроллеров AVR достаточно часто наводят сакральный страх на начинающих, а порой и не только. Сия статья призвана раз и, по возможности, навсегда, прояснить ситуацию с этой загадочной областью памяти.



Читать дальше
  • +4
  • 17 января 2012, 20:51
  • _YS_

Еще раз о емкостных сенсорах.

AVR
Несмотря на то, что, как мне кажется, тема емкостных сенсоров прикосновения досточно подробно рассмотрена во множестве публикаций, в комментариях к одной из моих статей прозвучала просьба рассказать про это еще раз. Ну что же, раз есть интерес, значит, еще одна статья по этой теме не будет лишней.



Читать дальше
  • +13
  • 13 января 2012, 21:28
  • _YS_
  • 1

Использование различных GCC тулчейнов для AVR

AVR
Написал давно, но что-то как-то не мог собраться и дописать. На фоне этого сообщения решил запостить, в общем выкладываю как есть.
Самый популярный gcc тулчейн для AVR микроконтроллеров является WinAVR. Но отнюдь не единственный в своем роде.


Итак:


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

Перенос make-файлов (Makefile) с WinAVR на AVR Toolchain

AVR
Проект WinAVR больше не поддерживается автором, вместо него Atmel предлагает AVR Toolchain (в виде отдельного пакета и в составе AVR Studio 5).

Возникла необходимость пересобрать старый проект, make-файл которого основывался на шаблоне из комплекта WinAVR, новым тулчейном. Для этого понадобились небольшие правки make-файла. Большинство из них необходимы потому, что в WinAVR был эмулятор оболочки (sh), а в AVR Toolchain его нет, поэтому команды оболочки заменены на консольные команды Windows.

Моё решение в формате diff-файла (автоматически накатить patch скорее всего не получится, номера строк могут быть разными): snippets.crisp-studio.com/view/161/perenos-make-fajlov-makefile-s-winavr-na-avr-toolchain

Ищу лучше (это по понятным причинам не будет работать на *nix), может, кто заморачивался?