1 (22-05-2020 01:02:14 отредактировано Nap13)

Тема: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Добрый день! В продолжение темы https://forum.canny.ru/viewtopic.php?id=708 о работоспособности платы расширения портов MCP23017 - при подключении все отлично заработало с первого раза! Модуль реле https://a.aliexpress.com/_eNEpa6 имеет управление 0 (GND), поэтому пришлось инвертировать состояние нажатия клавиш, при включении контроллера и настройке портов их полярность изначально задается равной 0(GND), затем по логике моей диаграммы они переводяться в состояние 1(+5в), при этом одновременно происходит включение всех реле на долю секунды, далее все работает отлично до выключения контроллера.
 
1. Возможно ли изначально при настройке портов выходов задать им полярность равную 1(+5в). Если возможно с примером, какие именно данные необходимо изменить в диаграмме для изменения полярности.

2. Для дальнейшей реализации проекта мне необходимо одновременное подключение еще одного модуля расширения MCP23017, причем с 8 входами и 8 выходами. Возможно ли подключение паралельно с первым модулем по тем же 2 выходам контроллера? Не смог разобраться с изменением адресов модуля и подключением внутри диаграммы. Пример реализации 8 входов и 8 выходов скопировал в мою диаграмму.

4 кнопки куиза необходимо подключить к выходами второго модуля расширения, при нажатии на кнопку на выходе модуля расширения должен появляться 0(GND).

4 концевика дверей необходимо подключить ко входам второго модуля расширения, при открытии двери на проводе концевика появляется 0(GND), при этом далее по диаграмме идет отбор нужного значения для передачи в кан определенных данных для каждого варианта отображения на приборной панели.

Заранее огромное спасибо за помощь.

Вложений в сообщении

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 16 выходов + MCP23017 8 входов+8 Выходов.cfd 46.82 кб, скачивался 5 раз, последний раз 2020-05-21 

2

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Предлагаю начать разбираться поэтапно.
Насколько я понял, приобретенный релейный модуль содержит более 1 реле и, согласно описанию, может управляться как сигналом GND так и "плюсом" (настраивается переключением джампера на плате блока реле). Пожалуйста, проверьте это.
При включении контроллера происходит настройка MCP23017. Описание настройки есть в поясняющих текстах на диаграмме. Пункт 1 этой настройки - перевод всех каналов в состояние GND. По этому и перещелкивают реле.
Если настроить блок реле на управление "плюсом", то не потребуется ничего менять в исходной диаграмме.
По вопросам.
1. Возможно при настройке MCP23017, если это будет необходимо (см. описание выше - настройка управляющего сигнала на релейном блоке).
2. Подключение нескольких MCP23017 на одну шину i2c возможно. Для управления ими нужно правильно задать адрес MCP23017и обращаться к каждому из устройств по индивидуальному адресу. В первом случае это будет адрес 0x40 (все перемычки A0, A1 и A2 модуля MCP23017 замкнуты на GND), во втором это будет адрес, например, 0x42 (перемычка A0 замкнута на "плюс" питания MCP23017). Но сначала лучше разобраться с вопросом №1.

3

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Добрый день, Денис! Спасибо за оперативность ответа, она как всегда на высоте! Приобретенный мною модуль реле имеет 16 встроенных независимых реле, каждое из них с оптронной развязкой управления, но перемычек, изменяющих полярность управления на плате не предусмотрено изготовителем, возможно на 8, 4, 2, и одно канальном модуле и применяется данный способ, на 16 канальном модуле его нет( Фото модуля прикрепил. Если реализация смены полярности с 0(GND) на 1(+5В) модуля расширения сложно реализуемо программно, можно этот вопрос пропустить, и оставить диаграмму настройки каналов без изменения. Есть 2 способа решения задачи с полярностью: 1. изменить полярность управления на самом модуле с вмешательством в плату реле https://youtu.be/IZrQGQw90Uo  2. Подавать питание на модуль реле с задержкой 1 секунду после включение контроллера, этого времени достаточно на настройку портов платы расширения и одновременного срабатывания реле уже происходить не будет. Второй вариант для меня более приемлем в плане простоты реализации, могу остановиться на нем.

Вложений в сообщении

Иконка вложения B8F12EB9-47CE-44AB-8EA7-31D1E89E09B6.jpeg 804.76 кб, скачивался 6 раз, последний раз 2020-05-22 

Иконка вложения E54EC674-8221-414D-BBD3-DCC27D5C3D59.jpeg 955.07 кб, скачивался 5 раз, последний раз 2020-05-22 

4

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

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

Вложений в сообщении

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 16 выходов1a.cfd 25.37 кб, скачивался 8 раз, последний раз 2020-05-22 

5

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Огромное спасибо, Денис! После проверки напишу о результате!

6

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Проверил - полярность изменилась на 1(+5в), но диаграмма не выполняется, отклика от клавишь нет(

7

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Не все выходы должны были переключиться на плюс при инициализации. Подправил.
Проверьте вложенную диаграмму еще раз. Если работала ранее, то должна и сейчас работать. Адрес MCP не менялся? Перемычки не ставились?

Вложений в сообщении

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 16 выходов1a.cfd 25.37 кб, скачивался 2 раз, последний раз 2020-05-23 

8 (23-05-2020 18:58:51 отредактировано Nap13)

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Добрый вечер!

Не все выходы должны были переключиться на плюс при инициализации. Подправил.
Проверьте вложенную диаграмму еще раз. Если работала ранее, то должна и сейчас работать. Адрес MCP не менялся? Перемычки не ставились?

Ничего не изменялось, просто залил диаграмму.
Обнаружил причину отсутствия отклика клавиш - в диаграмме настройки драйвера I2C неправильно были заданы номера каналов SDA и SCL, видимо при вставке примера 8входов/8выходов в диаграмму произошла замена значений каналов.

При данных настройках при включении контроллера уже не происходит срабатывания реле, на долю секунды загораются  светодиоды на против каждого реле на модуле, но сами реле не срабатывают. К сожалению отклик есть только у клавиш порта A, клавиши с 8 по 15 бит не срабатывают, на каналах порта B не 5в а около 2,5в при этом.
Диаграмму прикрепил, красным выделил места ошибок и несрабатывающие биты.
Для проверки заменил модуль расширения на точно такой же, перемычки на тех же местах, - результат тот же - порт B нет отклика от клавиш.

Вложений в сообщении

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 16 выходов1a (1).cfd 25.44 кб, скачивался 3 раз, последний раз 2020-05-23 

9

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Была неточность в конфигурации MCP.

Вложений в сообщении

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 16 выходов1a.cfd 25.37 кб, скачивался 4 раз, последний раз 2020-05-23 

10

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Все отлично работает! При настройке срабатывания реле больше нет! Спасибо огромное!

Теперь можно продолжить подключение второго модуля расширения?
Возможно ли выходы настроить точно так же, а входы настроить на срабатывание по 0(GND), при появлении минуса на входе - сообщение в Lin, не в CAN?

11 (Сегодня 00:23:04 отредактировано Nap13)

Re: Canny 7 - программная часть для MCP23017, полярность выходов/входов

Разобрался с передачей в Lin, по умолчанию на всех 8 входах порта А положительная полярность, при замыкании на 0 передается сообщение о состоянии контакта, с этим порядок. Но затрудняюсь обьединить 2 модуля расширения в одной диаграмме. Прикрепил диаграмму 8 входов + 8 выходов без смены полярности на 1 при настройке.

Вложений в сообщении

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 8Входов_8Выходов Lin.cfd 28.55 кб, скачивался 1 раз, последний раз 2020-05-26