Atmega32 + PCF8574

Обсуждаем цифровые устройства...
Ответить
Родился
Сообщения: 5
Зарегистрирован: Пн окт 15, 2012 22:35:47

Сообщение Misha555 »

Здравствуйте уважаемые форумчане. Не судите строго - в программировании микроконтроллеров я новичок. При создании некоторого устройства возникла проблема с количеством портов у микроконтроллера. Свободных портов – 3. А нужно подключить еще 12 светодиодов для визуального контроля состояния дискретных входов – выходов. Поэтому решил использовать шину I2C , и подключить к ней два расширителя портов PCF8574. Вот тут и возникла проблема с подключением. В примере с одним портом PCF8574 реакция на состояние дискретных входов (PORTC) происходит только тогда, когда в программе включаю внутренний подтягивающий резистор. На состояние кнопки расширитель не реагирует. Если можно, то подскажите, что я делаю неверно.
Вложения
ATMEGA32+PCF8574.rar
(50.06 КБ) 254 скачивания
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

шина i2c должна быть подтянута к плюсу внешними резисторами (если не ошибаюсь порядка 5 кОм)
Реклама
Родился
Сообщения: 5
Зарегистрирован: Пн окт 15, 2012 22:35:47

Сообщение Misha555 »

Но ведь в примере есть подтяжка к +5В
orinoko

Сообщение orinoko »

А может проще сдвиговый регистр (2 шт.) поставить? Например 74LS164, и не заморачиваться с I2C
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 5
Зарегистрирован: Пн окт 15, 2012 22:35:47

Сообщение Misha555 »

Можно было-бы использовать сдвиговый регистр, но индикация должна быть на некотором расстоянии, а поэтому лучше I2C
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

для некоторого расстояния лучше RS232. i2c это внутриприборный интерфейс
Реклама
orinoko

Сообщение orinoko »

"Некоторое расстояние" - понятие ну очень растяжимое. Озвучте это в числах, пожалуйста
Родился
Сообщения: 5
Зарегистрирован: Пн окт 15, 2012 22:35:47

Сообщение Misha555 »

Извените меня пожалуйста, но вопрос не в том, что лучше использовать - I2C или RS232. Вопрос озвучен в первом сообщении - он конкретный. Какаую я сделал ошибку в програмной реализации передачи данных между Atmega 32 и PCF 8574 ?
Родился
Сообщения: 5
Зарегистрирован: Пн окт 15, 2012 22:35:47

Сообщение Misha555 »

Ну вот, в принципе решил даную задачу. Кому интересно - вот пример работы в Протеусе
Завязано два расширителя PCF8574, U3 - контролирует дискретные входы , U4 - дискретные выходы. Программа написана таким образом, что при активизации дискретного входа деактивизируется дискретный выход с одним номером.
Вложения
Atmega32_v3.rar
(23.33 КБ) 298 скачиваний
Ответить

Вернуться в «Цифровая техника»