Проблема GPA7, GPB7 MCP23017
- Войдите на сайт для отправки комментариев
Сб, 18/04/2020 - 02:00
Коллеги,
встречался ли кто-нибудь с проблемой https://www.microchip.com/forums/m831656.aspx?
По всем признакам, мы тоже столкнулись с непонятным поведением расширителя - используем GPA и GPB в качестве входов и иногда состояния сбрасываются в противоположное. Обычно по 8 входов, но бывает и сразу все. Ситуация повторяется нерегулярно - может пару суток проработать, а может несколько раз за день.
Как думаете, причина та, что описана в ссылке?
Причину, кажется, нашли - это импульсная помеха. Как она проходит - по входу или питанию, пока неясно. На питающей - шине танталовый конденсатор 100 мкФ, вход - с оптической развязкой.
Помеха вызывает сброс регистров IPOLA, IPOLB с дефолтного состояния в FF. Пока сделали в каждом цикле чтение этих регистров и при ненулевых значениях их перезапись в 0. Для этого пришлось в библиотеке Adafruit_MCP23017 перенести объявления readRegister и writeRegister в открытую часть класса.
Кстати, по этой причине, вероятно, библиотека https://github.com/blemasle/arduino-mcp23017 удобнее.
Коллеги,
простой вопрос, касается не только MCP23017, но вообще работы с подобными микросхемами. Как правило, начальные установки регистров выполняются в setup. А какие минусы, если это делать в loop перед операциями чтения/записи данных. Применительно к MCP23017 - например, установка режима адресации, режима пинов, полярности и т.д. Например:
Понятно, что с прерываниями этого делать нельзя.
Есть ли минусы у такого подхода?
Сама mcp - на обратной стороне платы.
Что, мои палки не понравились? ;)
Меня все же интересует вопрос с инициализацией регистров в лупе.
А инициализировать регистры можно где угодно, разницы нет. Хоть даже из прерывания... Только это костыль.
Спасибо, понятно, что костыль. Ребята как раз занимаются и топологией, и землей, и конденсаторами. Плохо то, что и на осциллографе ничего плохого не увидели, и на питании чисто. Но однозначно - помеха откуда-то прилетает. На стенде помеху моделируют люминесцентными светильниками с дросселями.
Ребята как раз занимаются и топологией, и землей, и конденсаторами.
Уволить "ребят", которые клеммники с шагом 5мм под переменный ток поставили.
Уволить "ребят", которые клеммники с шагом 5мм под переменный ток поставили.
Других нет. Но могу поругать - а в чем засада? Они утверждают, что все сделано - оптическая развязка, все дела. И на столе со всеми входами AC (~220 В) все нормально. А в бою регистры MCP, как к датчику случайных чисел подключены.
Если работает на столе, то это не значит, что не загорится, когда в сети напряжение скакнет до 1200V.
https://m.habr.com/ru/post/428023/