среда, 13 октября 2010 г.

Язык ДРАКОН

В инете наткнулся на интересный алгоритмический язык ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность) — визуальный алгоритмический язык, созданный в рамках космической программы Буран.

Разработка данного языка была начата в 1986 г. под руководством Владимира Паронджанова. В разработке языка принимали участие Федеральное космическое агентство (НПЦ автоматики и приборостроения им. акад. Н.А. Пилюгина, г. Москва) и Российская академия наук (Институт прикладной математики им. акад. М.В. Келдыша).
Разработчики языка полагают, что правила языка ДРАКОН по созданию диаграмм оптимизированы для восприятия алгоритмов человеком. Таким образом, язык предлагается в качестве инструмента усиления интеллекта.

Вот эти самые "оптимизация для восприятия алгоритмов человеком" и "усиление интеллекта" меня в нем и заинтересовали.

О Драконе подробней: Wiki
Здесь можно скачать элементы ДРАКОНА для построения диаграмм в MS Visio: скачать
А здесь можно скачать книгу об этом языке: Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. - 360с

- подумал, а может попробовать применить его в текущем проекте на работе? Тем более, что задачка для этого есть подходящая: разработка алгоритма обмена данными между задачами RTOS и с сервером в навигационном терминале. Вдруг чтото хорошее из этого и получится:)

пятница, 24 сентября 2010 г.

Софт для AVR разработчиков

На бывшем torrents.ru (ныне rutracker.org), нашлось очень много разного софта для AVR разработчиков.
Весь софт по этой теме находится в разделе "Среды программирования, компиляторы и вспомогательные программы"
Что конкретно я там заметил просмотрев около 10 страниц темы:

ImageCraft ICC v7.22C Pro for Atmel AVR
IAR Embedded Workbench for AVR V5.30 Full
IAR Embedded Workbench for AVR32 v.3.30.1 Full
mikroPascal Pro AVR
CodeVision AVR 1.25.8 Professional

Качайте, пока не ограничивают! В связи с 6-ти летием rutracker, там фрилич с 19 по 26 сентября!

понедельник, 20 сентября 2010 г.

Модуль Crumb2560

После перерыва хочу продолжить писать о модулях с процессорами Atmel AVR
и о программах для них.

Этот пост будет посвящен модулю Crumb 2560 на процессоре Atmel AVR Atmega2560 ( http://www.chip45.com/AVR-ATmega-Microcontroller-Modules/Crumb2560-V1-1-AVR-ATmega2560-USB-RS485-RS232-module.html ). Модуль мне понравился тем, что содержит самый мощный процессор семейства Atmega (256K флэш, 8К ОЗУ), а так же USB интерфейс (от которого может и питаться), и дополнительно RS-232/485 интерфейсы. Для USB интерфейса используется хорошо знакомый (безглючный!) мост USB <-> UART (чип SILabs CP2102).

Еще этот модуль легко установить, как мезонин, на макетную плату с любой периферией (входы/выходы, Ethernet, WiFI, GSM..). К слову сказать, у одного знакомого подобный модуль управляет луноходом:) В этой статье я опишу, как подготовить модуль к работе.

Итак, имеется в наличии модуль Crumb 2560.

В начале, установим на него кварц (у меня в комплекте был на 14.745 Мгц), разъем для программирования, и перемычку для выбора питания модуля.
Получится следующее:

Затем, припаяем к нему штыревые контакты (2 шт. по 48 контактов). Они понадобятся для установки модуля на макетную плату.
Результат:

Далее, на макетную плату установим разъемы для модуля (2 шт.) и кнопку сброса (потребуется для перевода модуля в режим обновления прошивки).

Соединим кнопку с соответствующими контактами (RESET и GND) на разъеме модуля. Разъемы я установил таким образом, что бы все шнуры (пока это только USB) в будущем выходили назад, а органы правления (пока это кнопка сброса) находились спереди. Также модуль макс. сдвинут к краю платы, что оставить макс. места на плате для размещения других компонентов.
Итого:

Наш модуль готов к работе. Проверим его! Для этого подключим его USB кабелем к ПК, и так же поключим к нему программатор Atmel AVRISP2. Если на модуле есть питание (перемычка питания от USB на модуле должна быть установлена), индикатор на программаторе должен гореть зеленым. Далее, в AVR studio, считаем идентификатор процессора.



Ура, все работает! Продолжение следует :)

Расходы:
модуль Crumb 2560 - 2850 р.
Макетная плата 10*15 - 320 р.
Контакты,разъемы,кнопка - 150 р.
кабель mini-USB - 30 р.
Итого: 3350 р.

Далее планирую описать в блоге следующее:
1) Создание загрузчика для него (с возможностью шифровки прошивки) /*в исходниках*/
2) Установку на него freeware ОС реального времени FreeRTOS
3) Использование FreeRTOS в телематических приложениях (прием/передача данных через GSM модули SIM300,SIM900,Telit..) /*с исходниками*/

понедельник, 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.

четверг, 6 декабря 2007 г.

Основное о себе

Здравствуйте!

Меня зовут Денис. Мне 32 года, живу в г.Пермь. Я программист, в основном специализируюсь на встроенных системах, но программирую не только для них. Более подробно читайте ниже.

Образование:

Высшее. Закончил в 1998 г. Пермский Гос. Университет, физический факультет, специальность "Радиофизика и электроника".

Опыт работы:

1) 1998г. - 2007г. - ОАО "Морион" - инженер-программист. Участвовал в разработке и поддержке оборудования ведомственной связи ВТК-12, разработке маршрутизатора, поддержке ПО для контроля и управления гибкого мультиплексора ОГМ-30Е.

2) 2007г. - настоящее время - программист в фирме, основное направление деятельности которой - разработка телекоммуникационного оборудования и GSM/GPS терминалов.

Знания, умения:

Хорошо знаком с программированием микроконтроллеров следующих семейств: i8051 совместимых, Atmel AVR. Писал программы для них как на ассмеблере, так и на С. Знаком со встроенными операционными системами RTEMS, FreeRTOS. Могу разработать электрическую схему какого-либо устройства (на цифровых компонентах) в САПР (PCAD, Protel и др.), написать программу для ПЛИС (чипы фирмы Altera). В высокоуровневом программировании писал (и пишу) и поддерживал(-ю) различные программы на Дельфи, и немного на .Net.

Также есть некоторый опыт создания сайтов и их оптимизации/раскрутки/администрирования/проведения рекламных кампаний в интернете (Яндекс.Директ, Бегун, Блогун).


Увлечения:

В свободное время интересуюсь практической психологией (НЛП, EFT), иногда бываю на семинарах. Также интересуюсь восточными практиками (йога, цигун).

Что ищу ?

Мне были бы интересны заказные работы связанные с разработкой программ для микроконтроллеров (для семейства Atmel AVR имею возможность отладки на реальном чипе), программ управления для каких-либо устройств, созданием других программ и утилит. Также интересно создание и администрирование сайтов и форумов (движки: MODX, Wordpress, DLE, SMF, vBulletin, PHPBB), проведение рекламных кампаний в интернете.