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 кб, скачивался 226 раз, последний раз 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 кб, скачивался 286 раз, последний раз 2020-05-22 

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

4

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

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

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

Иконка вложения VAG_LIN_Buttons Canny7 + MCP23017 16 выходов1a.cfd 25.37 кб, скачивался 256 раз, последний раз 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 кб, скачивался 219 раз, последний раз 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 кб, скачивался 214 раз, последний раз 2020-05-23 

9

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

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

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

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

10

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

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

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

11 (26-05-2020 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 кб, скачивался 214 раз, последний раз 2020-05-26 

12

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

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

13 (27-05-2020 14:18:31 отредактировано Nap13)

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

Настройка производиться только при включении, при дальнейшей работе диаграммы идет только обмен данными до момента выключения контроллера? Адрес модуля расширения задается перемычками A0,A1,A2 =0 адрес 040, A0=1, A1,A2=0 адрес 041,  A0,A1=1, A2=0 адрес 042, я правильно понимаю?

14

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

Nap13 пишет:

Настройка производиться только при включении, при дальнейшей работе диаграммы идет только обмен данными до момента выключения контроллера?

Да, достаточно 1 раз при включении контроллера, при условии что MCP тоже уже включены.

Nap13 пишет:

Адрес модуля расширения задается перемычками A0,A1,A2...

Да. Перемычки задают битовые поля b1, b2 и b3 адреса устройства.
A0=0, A1=0, A2=0 адрес 0x040,
A0=b1=1, A1=0, A2=0 адрес 0x042,
A0=0, A1=b2=1, A2=0 адрес 0x044,
A0=b1=1, A1=b2=1, A2=0 адрес 0x046 и т.д.

15

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

Понял, спасибо огромное! Начну слияние - о результате сообщу!)

16 (28-05-2020 19:27:56 отредактировано Nap13)

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

Набросал диаграмму 16 входов + 2 модуля 16 выходов, проверить возможности не было, но выкладываю на суд. Работоспособен ли мой вариант? *Last

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

Иконка вложения MCP23017 + 16 входов + 2x16 выходов Last.cfd 17.86 кб, скачивался 229 раз, последний раз 2020-05-28 

Иконка вложения MCP23017 + 16 входов + 2x16 выходов.cfd 17.73 кб, скачивался 226 раз, последний раз 2020-05-28 

17 (28-05-2020 21:06:32 отредактировано Nap13)

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

Последняя версия - подкорректировал неточности. 16 входов - полярность 1(+5В),  2 модуля 16 выходов полярность 1(+5В).

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

Иконка вложения MCP23017 + 16 входов + 2x16 выходов ОК.cfd 18.85 кб, скачивался 208 раз, последний раз 2020-05-28 

18 (29-05-2020 17:10:55 отредактировано Nap13)

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

Протестировано аппаратно, выходы и входы полярность 1(+5в), исправлены все неточности, работоспособность OK. Единственный момент - при старте и настройке полярности выходов как 1(+5в) снова происходит одновременный щелчек всех реле. C данной проблемой пока не разобрался.

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

Иконка вложения MCP23017 16 входов(вывод в LIN) + 2x16 выходов TEST OK.cfd 17.19 кб, скачивался 232 раз, последний раз 2020-05-29 

19

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

Похоже была неточность при инициализации адресов 0x42, 0x44. Команды были поменяны местами, это видно в симуляторе. Исправленная диаграмма во вложении.

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

Иконка вложения MCP23017 16 входов(вывод в LIN) + 2x16 выходов TEST OK_1.cfd 17.19 кб, скачивался 211 раз, последний раз 2020-05-30 

20

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

Спасибо! Будем проверять!)

21 (01-06-2020 17:40:14 отредактировано Nap13)

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

Денис, CANNY пишет:

Похоже была неточность при инициализации адресов 0x42, 0x44. Команды были поменяны местами, это видно в симуляторе. Исправленная диаграмма во вложении.

Да, адреса поменяны местами при тесте 3 модуля, у меня в наличии только 2, поэтому переставлял адреса местами для проверки, сохранился промежуточный вариант, прошу прощения за неточность. Проблема с кратковременным включением реле, несмотря на смену полярности при настройке сохраняется... Заказал модули реле с изменяемой полярностью, это решит проблему.

22

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

Возможно, при подаче питания, пока инициализируется MCP, работающая на вход, на контактах MCP, работающих на выход, успевают установиться исходные потенциалы. Может помогло бы изменение последовательности инициализации (сначала работающие на выход, потом на вход) или применение другого подхода настройки MCP, когда сообщения отправляются микросхемам с разными адресами по одному, по очереди, т.е. сначала у всех MCP установить нужные потенциалы на выходах, а потом донастроить их каналы.

23

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

Попробую оба варианта, спасибо за наводку! Результат уже превосходный!