Перейти к содержанию

Настройка MCP23008

В стандартную конфигурацию контроллеров Lavritech входит поддержка микросхемы 8-канального расширителя портов с I2C интерфейсом MCP23008. Эта микросхема имеет 8 каналов, которые могут работать как на вход, так и на выход и применяется в различных подключаемых блоках и модулях, например во внешнем блоке на DIN рейку Wiren Board WBIO-DO-R10A-8 на 8 реле.

Этот раздел содержит информацию по настройке 8-канального расширителя портов с I2C интерфейсом MCP23008. Сама настройка производится в несколько этапов, а опции MCP23008 содержатся на нескольких страницах прошивки Lavritech.

  1. Предварительная настройка в конструкторе прошивок
  2. Настройка I2C интерфейса и включение MCP23008
  3. I2C_Scanner
  4. Настройка виртуальных GPIO MCP23008
  5. Пример прикладной функции

Предварительная настройка в конструкторе прошивок

К пользователю контроллеры Lavritech поступают с уже установленной и настроенной прошивкой. На этапе компиляции прошивки производителем устанавливаются следующие параметры для расширителя портов с I2C интерфейсом MCP23008:

options

Основными параметрами тут являются адрес на I2C шине (по умолчанию для MCP23008 это 0x20) и начальный номер для пула из 8 виртуальных GPIO, который для MCP23008 равен 228 (всего 228-235). Из самой прошивки эти параметры изменить нельзя, если вам необходимо их изменение, то для этого нужно собрать в конструкторе новую прошивку и изменить в ней эти данные (см. соответствующий раздел этой документации).

Настройка I2C интерфейса и включение MCP23008

Настройка I2C интерфейса и включение MCP23008 находятся на странице «Hardware»:

hardware

На этой странице находятся настройки различных датчиков и прочего подключаемого оборудования (блоки ввода/вывода и т. п.), а также интервал опроса датчиков и настройки интерфейса I2C. Вам нужно разрешить работу MCP23008, поставив соответствующую галочку.

check

Обратите внимание! Кнопка «Set» в секции «Interval sensors read» относится также и к списку оборудования. То есть установив галочку напротив MCP23008, вам нужно не забыть нажать на кнопку «Set» в этой секции, чтобы ваши изменения вступили в силу.

В секции «I2C GPIO Selected» находятся определения номеров GPIO для интерфейса I2C. Для контроллеров Lavritech по умолчанию это SDA:33, SCL:32. При необходимости вы можете изменить эти значения на нужные вам (обычно этого не требуется).

i2c

Вы можете также изменить интервал опроса датчиков. Ниже находится установка периода опроса датчиков. По умолчанию это 10 секунд. Общий принцип такой: чем меньше интервал, тем сильнее нагружает систему опрос датчиков. Поэтому рекомендуется устанавливать наибольший из возможных (по условиям проекта) интервал.

time

I2C_Scanner

Для определения адресов подключённых на I2C шине устройств в прошивке Lavritech существует т. н. «I2C_Scanner» — это специальная страница (утилита) на которой показываются найденные на I2C шине компоненты (устройства).

scanner

Если к вашему контроллеру (материнской плате) Lavritech подключён модуль (внутренний) или блок (внешний) с I2C интерфейсом, то I2C_Scanner покажет это на своей странице.

i2c

Здесь адрес 0x20 — это реально определённый адрес устройства на шине I2C, а надпись «MCP23008» — это название микросхемы, взятое из предустановок в конструкторе прошивок. Другими словами, если реально определённый I2C адрес совпадает с заданным в конструкторе прошивок, то система автоматически подставляет предопределённое название устройства.

Примечание. Если вы подключили I2C модуль или блок, а I2C_Scanner ничего не находит и не показывает, значит произошла какая-то ошибка — либо вы что-то неправильно подключили, либо подключаемое I2C устройство неисправно.

Настройка виртуальных GPIO MCP23008

Далее нужно настроить режим работы (вход/выход) восьми каналов MCP23008. Эти установки находятся на странице «MCP8_GPIO».

mcp8

Восьми каналам (0-7) соответствуют восемь виртуальных GPIO с номерами 228-235. По умолчанию все каналы сконфигурированы на вход (INPUT).

out

Для примера, на скриншоте выше режим работы первого канала (GPIO229) изменён на выход (OUTPUT). Вы также можете по своему усмотрению настроить и все остальные каналы расширителя портов MCP23008.

На этом настройку работы MCP23008 можно считать законченной, далее вы можете переходить непосредственно к программированию прикладного функционала подключённого блока на MCP23008.

Пример прикладной функции

В этом примере мы подключали к контроллеру Lavritech внешний блок на DIN рейку Wiren Board WBIO-DO-R10A-8, который содержит 8 реле. Попробуем реализовать простейшую задачу: управление первым реле этого блока при помощи кнопки в веб-интерфейсе контроллера.

key

Для этого открываем страницу «Web_Key» («Кнопки в веб-интерфейсе») и задаём номер нашего виртуального GPIO229 (которое мы ранее сконфигурировали на выход). Значения прочих GPIO («255») означают «номер GPIO не установлен».

229

В результате мы получаем интерактивную кнопку в веб-интерфейсе контроллера, которой можно управлять состоянием первого реле подключённого I2C блока WBIO-DO-R10A-8.

ok

Таким образом можно задействовать и все остальные каналы расширителя портов MCP23008. Это не обязательно должны быть кнопки — каналы MCP23008 можно использовать множеством других способов (см. эту документацию).

Связанные темы

Настройка прошивки
Страница Hardware
I2C_Scanner

Где купить

Купить оборудование Lavritech можно в официальном интернет-магазине.