Подключение расширителя портов MCP23008

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
zAndrew
Сообщения: 20
Зарегистрирован: 12 фев 2017, 14:01

Подключение расширителя портов MCP23008

Сообщение zAndrew » 22 мар 2017, 23:27

Подключил расширитель на микросхеме MCP23008, пины, отвечающие за адрес подключил на минус. Расширитель на команды не реагирует.

По ссылке I2C scan выдает адрес 0x40.

Протестировал на Rapsberry Pi, там все работает по адресу 0x20.

Кто-нибудь уже подключал MCP23008? может, я адрес микросхемы не так выставил?

nevkon
Сообщения: 268
Зарегистрирован: 23 апр 2014, 14:48

Re: Подключение расширителя портов MCP23008

Сообщение nevkon » 23 мар 2017, 08:03

Все верно, адрес 0x20.
Какие настройки на портах куда подключен расширитель?

zAndrew
Сообщения: 20
Зарегистрирован: 12 фев 2017, 14:01

Re: Подключение расширителя портов MCP23008

Сообщение zAndrew » 23 мар 2017, 11:38

Сначала настроил порт P34
Type I2C
Mode SDA
SCL 35
Dev MCP23008
--
Потом P35
Type I2C
Mode SCL

nevkon
Сообщения: 268
Зарегистрирован: 23 апр 2014, 14:48

Re: Подключение расширителя портов MCP23008

Сообщение nevkon » 23 мар 2017, 14:29

Похоже все настроено верно: viewtopic.php?f=1&t=1195&start=520#p26661
Если конечно не перепутали SCL/SDA. Неплохо бы фото подключения + скрины с настройками. Также что еще подключено на шине.
Тогда это уже вопрос к Андрею, возможно баг в прошивке.

zAndrew
Сообщения: 20
Зарегистрирован: 12 фев 2017, 14:01

Re: Подключение расширителя портов MCP23008

Сообщение zAndrew » 24 мар 2017, 01:16

День экспериментов дал результат:

Расширитель подключен к Мегадевайсу.
Питание не трогаю.
Перекинул SDA,SCL на рапсберри, подключил gnd.
Выполнил команду, переводящую первый пин в Output.
Вывел 0, вывел 1.
Реле расширителя срабатывает.
-
Перекинул SDA,SCL обратно на Мегадевайс.
Питание не трогал.
!!!Ура, первый пин отзывается на команды Мегадевайса.
Остальные пины молчат.
Перезагрузил расширитель.
Все пины молчат.
===========
ВЫВОД:
предположительно выходы программно в прошивке не переведены в режим OUTPUT.
то есть в регистре IODIR – I/O DIRECTION REGISTER (ADDR 0x00) надо выставить все биты в 1.
-
еще нашел регистр INPUT POLARITY (IPOL) REGISTER.
возможность инвертировать сигнал на выходах поможет включать реле (которые замыкают цепь при 0 на выходе MCP23008), по команде ON от Мегадевайса.

nevkon
Сообщения: 268
Зарегистрирован: 23 апр 2014, 14:48

Re: Подключение расширителя портов MCP23008

Сообщение nevkon » 24 мар 2017, 08:05

Тогда это точно в теме про прошивку надо писать про баг. Автор по какой-то причине не хочет пока давать исходники, а то бы давно уже это все отловилось. Мне так нужна будет более старшая МС - 23017, на 16 портов. Разница в управляющих - отправляется дополнительный байт канала.

zAndrew
Сообщения: 20
Зарегистрирован: 12 фев 2017, 14:01

Re: Подключение расширителя портов MCP23008

Сообщение zAndrew » 30 мар 2017, 01:56

Пока Создатель создает тестовый стенд для исправления прошивки, поставил ардуину, которая при подаче питания подключается к i2c шине, настраивает пины MCP23008 выходами и возвращает управление мегадевайсу. =)

открытый код, конечно, не помешал бы

zAndrew
Сообщения: 20
Зарегистрирован: 12 фев 2017, 14:01

Re: Подключение расширителя портов MCP23008

Сообщение zAndrew » 31 мар 2017, 12:52

http://ab-log.ru/files/File/megad-2561/ ... a8-hex.zip
начиная с этой версии все работает

Ответить