понедельник, 13 апреля 2009 г.

Серфинг: Linux устройства, роботы, коммуникатор на открытой платформе

Подборка англоязычных сайтов по теме встроенных систем и близкого к этому:

Сайт: LinuxDevices.com  - представлена информация по всевозможным “Linux inside” устройствам. Много обзоров процессорных модулей для разработчиков встроенных систем. Как правило эти модули имеют на борту х86 или ARM процессор, от 1 до 256 Мб ОЗУ, до 1 Гб встроенной флеш-памяти, сетевые, беспроводные и др. интерфейсы. Стоят они обычно от 50 до 150 долл.

Сайт: Robots.net – специализируется на роботах, и всем, что с ними свяно. Интересно почитать например про летающих роботов для обеспечения коммуникаций в зонах бедствия: Flying Robots Provide WiFi Mesh in Disaster Areas

Коммуникатор Neo FreeRunner (проект OpenMoko) с открытыми исходниками (лицензия GPL). Открыт как программный код, так и принциписальная схема, файлы разводки.

Neo_front_3

Промо-сайт: OpenMoko.com

Документация OpenMoko Neo FreeRunner : wiki.openmoko.org

По современным меркам аппаратная платформа уже несколько устарела. Например, нет поддержки 3G и мульти-тач интерфейса (а-ля iPhone), но зато вся документация открыта :)

Краткая спецификация Neo FreeRunner :

- экран: сенсорный 2.8" VGA (480x640)

- процессор: ARM9 @ 400 MHz, 2D/3D ускоритель графики

- GSM 850/1800/1900 MHz

- память: 128MB SDRAM, 256MB NAND Flash, слот microSD

- входы/выходы: 2.5 mm разъем для наушников и разъем для внешнего GPS приемника

- дополнительно: Wi-Fi (802.1 1b/g), AGPS, GPRS (2.5G, не EDGE), Bluetooth 2.0, 3х осевой акселерометр

- ПО: Openmoko GNU/Linux-based

Заявленная на сайте стоимость коммуникатора составляет сейчас 299 долл. Среди его дистрибьюторов заявлен и российский: GNU/Linux Center (www.linuxcenter.ru)

пятница, 10 апреля 2009 г.

Обновление AVR loader

Обновил AVR loader, для загрузки процессоров семейства AVR mega, до версии 1.2. В этой версии сделан выбор скорости СОМ-порта: от 19200 до 115200. Выбранное значение, также как и СОМ-порт, сохраняется в ini файле программы. avrloader Скачать программу можно по ссылке: AVR loader v1.2

пятница, 20 марта 2009 г.

Модуль Crumb128 на процессоре Atmel AVR Mega128 и загрузчик для него

В своей работе разработчики встроенных систем часто используют для отладки макетные платы. Об одной из них, на чипе Atmel AVR Mega128, и пойдет речь ниже. Это модуль Crumb128 производства Chip45 (www.chip45.com/index.pl?page=Crumb128&lang=en)
Рис. 1 - модуль Crumb128

Удобный и не особо дорогой модуль для отладки (сейчас, в марте 2009г., он стоит около 2000 руб.), к которому можно подсоединить какие-то внешние компоненты, и у которого есть USB и RS-232 порт. Наличие USB порта для связи с модулем Crumb128 особенно удобно, т.к. позволяет запитать модуль непосредственно от USB. Среди доступного софта для модуля, на сайте www.chip45.com выложен в исходных кодах загрузчик, который будучи зашит в модуль ISP-программатором (например Atmel AVR ISP/ISP mkII), затем позволяет обходиться без него. В конце статьи приведена ссылка на немного измененные исходники этого загрузчика. Изменения касались текстовых сообщений, индикации начала загрузки светодиодом и прочих мелочей. В скомпилированном виде загрузчик занимает чуть менее 2Kb и помещается в предназначенную для него область памяти процессора (Boot Loader Flash Section). При необходимости его нетрудно адаптировать для других процессоров Atmel AVR серии Mega. Так же приложена и программа-загрузчик для ПК «AVR Loader», использование которой делает процесс обновления основной программы модуля более удобным. Программа была написана потому, что используемый загрузчик предполагает использование .srec файлов для загрузки, и изначально был ориентирован на работу с обычной терминальной программой, что не особенно удобно. Через написанную программу обновлять прошивку гораздо удобнее. Она имеет простой интерфейс. Читайте о ней ниже.

Инструкция по использованию загрузчика:

Необходимый софт:

Для прошивки загрузчика в модуль необходим программатор Atmel AVR ISP (или ISP mkII). Для компиляции загрузчика на ПК должен быть установлен компилятор WinAVR (мною использовалась версия от 10.06.2008), а так же Atmel AVR Studio версии 4 build 589 и выше.

1) Компиляция загрузчика.
По ссылке в конце статьи скачайте архив с загрузчиком и распакуйте его. Из каталога загрузчика запустите файл «makem.bat». Если копилятор WinAVR установлен, то исходники загрузчика будут скомпилированы, и в каталоге должен появиться файл «chip45boot.hex». Этот файл необходимо будет загрузить в модуль через ISP программатор. Инструкцию про это читайте ниже. Те, кто делал подобное уже много-много раз, могут пропустить следующий пункт.

2) Загрузка загрузчика :)
Подключите программатор AVR ISP mkII к порту USB ПК и запустите AVR Studio. Подключите разъем программатора к разъему ISP модуля Crumb128 (красный проводник на шлейфе разъема программатора должен совпадать с первым контактом на разъеме ISP) (рис. 2).

Рис. 2 – подключение шлейфа программатора
(фото из документации AVR ISP mkII)

Соедините USB кабелем модуль и ПК. При этом должен загореться зеленым цветом индикатор статуса на программаторе, сигнализирующий наличие питания на модуле (рис. 3).

Рис. 3 – индикатор статуса программатора
(фото из документации AVR ISP mkII)

Запустите программу AVR Studio, зайдите в меню «Tools» и выберите подменю «Program AVR», а в нем пункт «Connect…» (рис. 4).

Рис. 4

Далее в появившемся окне выберите «AVR ISP mkII» и «USB» (рис. 5), затем нажмите «Connect…».


Рис. 5

В случае успешного подключения должно появиться окно как на рис. 6.

Рис. 6

В группе «Device and Signature Bytes» выберите тип процессора используемого в модуле: ATmega128. В группе «Programming Mode and Target Settings» должно быть выбрано «ISP Mode». Нажав далее «Read signature» должен считать идентификатор процессора и должна появиться надпись «Signature matches selected device». После этого можно начинать программирование.
Для этого необходимо выбрать вкладку «Program». В группе «Device» установить галочки «Erase device…» и «Verify device…». В группе «Flash» выбрать загружаемый файл нажав кнопку «…». Нужно выбрать файл загрузчика с названием «chip45boot.hex». Он создается при компиляции в каталоге исходников загрузчика. Далее нажмите кнопку «Program». В случае успешного результата программирования, в нижнем информационном поле будет информация как на рис. 7.


Рис. 7

Далее нужно перейти на вкладку «Fuses» и установить следующие значения в полях:

Параметр : Действие

BODLEVEL: выключить
OCDEN: сбросить
JTAGEN: установить
SPIEN: установить
WDTON: сбросить
EESAVE: не важно
BOOTSZ: выбрать «Boot flash size=4096 words …»
BOOTRST: установить
CKDIV8: сбросить
CKOUT: сбросить
SUT_CKSEL: выбрать «Ext. Crystal 8.0- MHz; Start-up time: 258 CK + 65 ms»

Установить галочку «Verify after programming». Далее нажать кнопку «Program». В случае успеха в информационном окне будет «Fuse bits verification… OK».

Затем нужно закрыть окно программатора, при этом будет снят сигнал сброса с процессора, и сразу после этого загрузчик запустится. Проверить его работу можно визуально по миганию индикатора модуля в течении нескольких секунд после его запуска. Также можно проверить это с помощью терминальной программы. Для этого нужно запустить терминальную программу, например, «HyperTerminal», или любую другую. При этом в параметрах настройки СОМ-порта соответствующего модулю (строка «CP210x USB to UART Bridge Controller (COM N)» в разделе «Порты COM и LPT» диспетчера устройств Windows) установить следующее: скорость – 115200; бит данных – 8; стоповых бит – 1; управления потоком – нет. После запуска загрузчика в терминале должен появиться следующий текст: «CRUMB-128 BIOS 1.1».

3) Использование программы для «AVR Loader»
Для обновления основной программы модуля, запустите программу «AVR Loader» (рис. 8).


Рис. 8

В селекторе «COM» выберите тот СОМ-порт, который относится к подключенному по USB модулю Crumb128. Список СОМ-портов в системе можно посмотреть через «Диспетчер устройств» Windows, раздел «Порты COM и LPT» (рис. 9). Определить нужный СОМ-порт можно по строке «CP210x USB to UART Bridge Controller (COM N)» (N – номер СОМ-порта, может быть разный на разных ПК).


Рис. 9 - Список СОМ-портов в системе

Затем нужно выбрать загружаемый в модуль файл через меню «Open file». Файлы, загружаемые в модуль, имеют расширение «.srec». Затем нужно перезагрузить процессор модуля, нажав кнопку «Сброс» (она должна быть заранее подключена к модулю).
После перезагрузки модуля начнется процесс загрузки в него новой прошивки, что займет менее минуты. В строке статуса «Status» показывается информация о текущей операции и об ошибках.
Для того что посмотреть на обмен программы с модулем, во время загрузки нажмите кнопку «Show Terminal». При этом откроется окно терминала, где отображается обмен данными загрузчика с модулем. Повторное нажатие на эту кнопку закрывает его окно. После успешного обновления программы вновь запустится загрузчик, который затем передаст управление основной программе. Нажатием кнопки «Close COM» можно освободить занятый СОМ-порт. Программа свои настройки (номер СОМ-порта, и имя загружаемого файла) хранит в «.ini» файле, в своем каталоге. При отсутствии файла, он создается со значениями по умолчанию. Настройки в него сохраняются при закрытии программы.

Ну в заключение собственно сами программы:


Планируемые статьи на этом блоге:
  • Установка операционной системы FreeRTOS на модуль Crumb128
  • TCP/IP стек для FreeRTOS с поддержкой SLIP соединения
  • Программа по мотивам психологического тренинга
  • Программа для сохранения в логе номеров абонентов звонящих на сотовый


Всего наилучшего, Denweb.