24.06.2011

DFU

С момента выпуска первой версии Arduino Uno произошло небольшое изменение, связанное с процессом загрузки ATmega8u2 через DFU-бутлоадер. Если раньше надо было сначала замкнуть перемычку DFU и, удерживая ее, замкнуть замкнуть RESET и GND, то теперь надо только замкнуть сброс (ура! ;). На английском языке об этом можно почитать подробнее здесь.

А всего-то надо было добавить резистор-подтяжку 10К к земле:


Работать так действительно удобнее, поэтому на оставшиеся платы Freeduino One тут же были напаяны резисторы 10К 0805 - выглядит это гораздо надежнее и аккуратнее:



Ну и напоследок - немного о том, как изменить прошивку в ATmega8u2.

Для начала потребуется программное обеспечение, способное договориться с DFU-бутоладером о заливании новой прошивки:
При наличии готового .hex-файла, дальнейшие действия сводятся к переводу ATmega8u2 в режим DFU и заливке результата.



При подключенной шине USB аккуратно замыкаем (буквально на секунду) RESET и GND на посадочном месте гребенки программирования ATmega8u2. Далее в syslog наблюдаем отключение устройства /dev/ACM и подключение нового девайса, а Диспетчере Устройств Windows просто можете обратить внимание, что олицетворявший раньше плату Arduino / Freeduino послеодовательный порт пропал.

VID и PID этого устройства одинаковые и для Arduino Uno, и для Freeduino ONE - в противном случае не будет работать FLIP. VID будет ATMEL/0x03EB, а PID соответствует типу МК - для ATmega8u2 это будет 0x2FF7.

Теперь берете hex-файлы (в дистрибутиве ArduinoIDE они обитают в каталоге hardware/arduino/firmwares или берите из github). Дальше - в зависимости от того, чем прошиваете:

Linux

sudo dfu-programmer at90usb82 erase
sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex
sudo dfu-programmer at90usb82 reset

Windows

Тут, как всегда - всё тоже самое, но визуально. Выглядит FLIP приблизительно так:


Если на какой-то фазе что-то пойдет не так - всегда можно проделать это повторно: сам бутлоадер, естественно, никуда не денется. Но настоятельно рекомендую обратить внимание на такую деталь (особенно это касается Windows-пользователей, которым требуется установка .inf-файла с явно пробитыми VID и PID): после заливки hex-файлов из дистрибутива ArduinoIDE, вы получите пару значений VID=0x03EB и PID=0x204B, которые ATMEL от щедрот презентовал LUFA под проект USBtoSerial. Фшика в том, что на этой паре VID/PID могут сидеть разные устройства - для того, чтобы их отличать, используется поле 'release number' (это чем-то напоминает ситуацию с V-USB). И если это по какой-то причине вас не устраивает, рекомендую перед началом экспериментов сохранить оригинальную прошивку командой dump.

Альтернативный вариант - научиться самостоятельно компилировать прошивки ATmega8u2. В принципе - это тоже несложно, скачайте и распакуйте LUFA в каталог с прошивкой, например в  hardware/arduino/firmwares/arduino-usbserial. Найдите и отредактируйте в makefile путь к LUFA таким образом, чтобы он указывал на актуальное местоположение распакованного архива библиотеки, например:

# Path to the LUFA library
LUFA_PATH = ./LUFA

Убедитесь, что библиотека и исходники собираются правильно по make all. Только после этого рекомендую приступать к модификациям - например, VID/PID описаны в файле Descriptors.c.

18.06.2011

Update про microSD

В статье про microSD shield от libellium, я по неопытности так и не смог вычислить, что за чип используется для подачи на microSD-карточку напряжения +3,3В.  

И вот, перебирая схемы и разводки, я неожиданно понял, что это - LP2985-33BVR - тот самый, который теперь используется на Arduino Uno и Mega2560 в качестве источника +3,3В. Да и схему они наконец опубликовали:

15.06.2011

Протошилд

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



Сделано на основе protoshield v.5 от ladyada, с небольшими усовершенствованиями:

1. Добавил посадочное место для потенциометра. В половине случаев требуется подключить его к аналоговому входу, поэтому сразу включил его между VCC и GND, а изменяемую точку отвел к analog0.  Если этот проводок аккуратно перерезать, можно использовать произвольно - например, для контрастности HD44780U-совместимого дисплея:


2. Вывел наружу гребенки для I2C и USART. Они нужны чаще, чем можно предположить, и уж место для двух подтягивающих резисторов 5,1К тем более не помешает.



Остальное - как в оригинале, а именно:
  • дублирующая кнопка сброса
  • одна свободная кнопка, два свободных светодиода
  • вилка ICSP
  • посадочное место для SO-14 
  • посадочное место для DIP-20
Пошаговое руководство подробно расписано здесь, купить можно здесь (в двух вариантах, минимальный набор деталей и максимальный: ведь не всем же нужны светодиоды, кнопки, резисторы и потенциометры ;)

05.06.2011

ElectroDroid

Уважаемый Vergellan поделился со мной ссылкой на программу для Android - ElectroDroid.
Твердые пять звезд, что неудивительно, потому что эта программа-справочник умеет довольно много:

  • Цветовая кодировка резисторов (3-6 полос);
  • Цветовая кодировка дросселей;
  • Закон Ома;
  • Расчёт реактивного сопротивления;
  • Делитель напряжения;
  • Сопротивление резисторов в последовательном и параллельном включении;
  • Расчёт заряда конденсатора;
  • Операционный усилитель;
  • Ограничительный резистор для светодиода;
  • Расчёт LM317;
  • Тепловой режим;
  • Расчёт времени работы батареи;
  • Расчёт катушки индуктивности (только в платной версии);
  • Расчёт падения напряжения;
  • Расчёт ширины дорожек печатной платы;
  • Расчёт простых фильтров;
  • Расчёт таймера NE555;
  • Цоколёвка разъёмов (USB, serial, parallel, ethernet, SCART, DVI, HDMI, S-Video, VGA, FireWire, Jack, XLR, RCA, DMX, ATX, Molex, EIDE, SATA);
  • Справочники (Таблица сопротивлений; Таблица стандартных резисторов и конденсаторов; Маркировка конденсаторов; AWG, SWG размеры проводов; Таблица ампеража; Символы и сокращения; Условные графические обозначения; Приставки системы СИ; Информация о батарейках; Теоремы двоичной логики и алгебры; Информация о микросхемах 7400 серии; Кодировка ASCII);
  • Полная поддержка EIA рядов резисторов во всех расчётах;
  • ...и многое другое!