Шлюз-контроллер GATE-A8D16

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск

Шлюз-контроллер GATE-8A16D версии 0.9 - Общее описание

Внешний вид шлюз-контроллера

Назначение

Взаимодействие ПК с низкоуровневыми устройствами (модельные сервоприводы, ИК-дальномеры, бамперы, сонары, компас и т.п.). Подключение шлюз-контроллера к ПК выполняется через стандартный последовательный COM-порт (скорость 9600Кбит).

Возможности

  • 16 цифровых входов-выходов (доступны 3 режима работы - цифровой вход, цифровой выход, управление сервоприводом);
  • 8 аналоговых входов / цифровых выходов (доступны 4 режима работы - аналоговый вход, цифровой вход, цифровой выход, управление сервоприводом);
  • i2c шина (взаимодействие с любыми i2c устройствами с ПК);

Формат обмена данными

При обмене данными ПК и шлюз-контроллера ПК считается управляющим, а шлюз-контроллер управляемым устройством. Единственное сообщение отсылаемое по инициативе шлюз-контроллера - сообщение "Ready!\n" о готовности выполнять команды при включении, все остальные сообщения шлюз-контроллера являются ответами на команды ПК.

Команды, отдаваемые ПК все имеют одну и ту же форму "Q{AA}{RR}[{WW}][{WW}][{WW}]", в которой {AA} - адрес, {RR} - сколько байт хотим получить обратно, {WW} - отсылаемые нами байты. Подробнее использование этой универсальной команды расписано ниже:

Команда Формат Входные параметры
Отправить по i2c несколько байт и получить несколько байт в ответ Qaarr{w} aa - адрес 00h..7Fh устройства на шине i2c

rr - сколько байт получить от устройства

ww - байты которые нужно передать устройству

Установить режим работы порта ввода-вывода QFF00ppmm pp - номер порта 00h..17h увеличенный на 20h (например, для порта 0Fh это будет 2Fh)

mm - режим работы (0 - цифровой вход, 1 - цифровой выход, 2 - управление сервоприводом, 3 - аналоговый вход - последний режим будет работать только для портов в которых есть эта возможность)

Установить значение на выходе порта QFF00ppvv pp - номер порта 00h..17h

vv - значение (для цифровых выходов - 0/1, для управления сервоприводом - 17h..85h

Получить значение со входа порта QFF01pp pp - номер порта 00h..17h увеличенный на 80h (например, для порта 0Ch это будет 8Ch)

обратно получим 1 байт - 0/1, если цифровой вход, либо 00h..FFh - если аналоговый (00h соответствует 0V, FFh соответствует 5V), либо если тип порта - выход - получим то, что туда отправляли.

Шлюз-контроллер GATE-8A16D версии 0.9 - Внутреннее устройство

Недостатки модуля

К основным недостаткам можно отнести:

  • Допущенная ошибка при разработке печатной платы - перепутаны контакты RX и TX разъема COM-DB9, поэтому стандартный удлинитель для COM-порта не подходит, надо перепаивать эти 2 контакта. В следующей версии будет исправлено.
  • Использован нестандартный разъем для программатора, поэтому для подцепления стандартного программатора AVR910 или аналога, приходится делать переходник. В следующей версии разъем будет заменен на стандартный IDC10.
  • Использованы неудобные в монтаже на "нетелефонный кабель" разъемы для питания и i2c - RJ-11. В следующих версиях будут добавлены разъемы для i2c типа 4 штырька совместимые с DEVANTECH'ем и разъемы питания удобные для подключения в них любых проводов.

Принципиальная схема и печатная плата

Доступны к скачке схема и разведенная печатная плата в формате EAGLE: Gate8AD16-v09.zip Скачать.

Принципиальная схема
Разводка печатной платы
Готовая печатная плата

};

Прошивка шлюз-контроллера

Ниже приведен файл прошивки реализующий указанные выше функции работы с портами ввода-вывода и шлюза i2c (надо добавить файл прошивки).

Используемые компоненты

  • Контроллер ATMEGA16 в DIP-корпусе - 1 шт;
  • Приемопередатчик линий ST232 в DIP-корпусе - 1 шт;
  • Кварц 16МГц - 1 шт;
  • Конденсаторы 50V, 0.1мкФ - 5 шт;
  • Конденсаторы 50V, 22пФ - 2 шт;
  • Резистор 1кОм - 1 шт;
  • Резистор 10кОм - 1 шт;
  • Светодиод 3мм - 1 шт;
  • Разъем DB9-F для монтажа на плату в отверстия - 1 шт;
  • Разъемы RJ-11 для монтажа на плату в отверстия - 2 шт;