Проблема с прерыванием PCF8574

Почему в приведенной ниже схеме выходной сигнал INT от PCF8574 равен «0»; когда питание включено? Я тестировал его с Arduino nano и STM32F4. Выход INT никогда не меняет состояние при нажатии каких-либо кнопок. Протестировано с использованием PCF от Texas Instruments, Phillips и «unknown». производитель.

Использование этой библиотеки: https://github.com/xreef/PCF8574_library

, 👍0

Обсуждение

Похоже, вы неправильно подключили PCF8574. Входные контакты должны быть подняты (слегка) ВЫСОКОГО уровня, а переключатели должны заземлять эти контакты при активации. См. https://www.ti.com/lit/ds/symlink/pcf8574.pdf, главу 9.2. Если у вас все еще есть проблемы, проверьте адрес устройства с помощью сканера I2C и покажите свой код., @6v6gt


2 ответа


0

Моя клавиатура имеет встроенный светодиод, а VCC является общим для клавиатуры. Я не могу использовать обратную полярность.. Проблема только с контактом INT. Итак, я должен изменить код и не использовать прерывание. Объединение чтения в цикле.

,

Похоже, это дополнительная информация, которую следует отредактировать в вашем вопросе, а не представлять как ответ., @sempaiscuba

ХОРОШО. Итак, похоже, вы отказались от идеи использования прерывания для сигнализации о нажатии кнопки. Вы просто будете регулярно опрашивать каждый порт, чтобы узнать, в каком состоянии находятся кнопки., @6v6gt


0

На выводе INT\ активный низкий уровень. Он подтвержден, и вам необходимо прочитать устройство PCF8674, чтобы его очистить. Подтягивающий резистор на INT\ правильный. Лучше всего запускать прерывание по заднему фронту вывода INT\. На ваших входах я бы использовал подтягивающие резисторы, а не понижающие. Причина, по которой подтягивающие резисторы в PCF8674 не будут работать, заключается в том, что устройство не может обеспечить достаточный ток для преодоления устройств 10K. Хотя они создают некоторый ток, записывая на вывод «1», ток невелик. Однако он потребляет гораздо больше тока, и для управления светодиодами необходимо подключить катод к выводу порта, поместив его последовательно с резистором для ограничения тока. Это не полный ответ, поскольку вы не предоставили нам всю необходимую информацию.

,