PCF8574

Использование расширителей портов и обсуждение пользовательских блоков
Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#1

Сообщение Sancho » 17.07.2017{, 10:33}

PCF8574, PCF8574A различаются только секторами адресов, возможно максимально установить по 8 штук на одну шину, итого 8х2х8вх/вых - 128вх/вых.
Блок легко может быть переделан под PCF8575 - 16 вх/вых.
Описание:
Адрес для входа должен подаваться в виде байта(0-255), например: 3C= 3x16 + C = 48+12=60
Для работы в качестве ТОЛЬКО НА ВЫХОД(управляем нагрузками) сигнал byte_out не используется, на нём будет повтор входа. Физически работа выхода почти соответствует
схеме с открытым коллектором и по + питания токооганичивающий резистор(не более 100мкА). Снять логическую единицу с бОльшим током не получится.
Для работы ТОЛЬКО НА ВХОД(считываем входа) на вход необходимо подать byte 255. Поясню.
Сигналы принимаются только прижиманием к общему, поэтому необходимо перевести выводы в 1, внутренне подтянуть к +, ток очень мал - 100мкА: при помехах ДОПОЛНИТЕЛЬНО можно добавить внешние резисторы(20-4,7 кОм).
Для одновременной работы ВХОД/ВЫХОД необходимо так организовать подачу байта на вход, что-бы на выводах, подключенных для ввода присутствовали единицы.
Образно говоря, указанная микросхема принимает байт и распаковывает на биты, или считывая биты и упаковывает их в байт.
Данный блок представляет собой образец/шаблон работы с I2C.

ОБНОВЛЕНО 21.07.2017. БЛОКИ ОБНОВЛЕНЫ. ДОБАВЛЕНО ДВА  INPUT, OUTPUT.

БЛОК
Вложения
PCF8574_v7.flp
(596.08 КБ) 329 скачиваний
PCF8574_v5.flp
(211.84 КБ) 231 скачивание
Последний раз редактировалось Sancho 22.07.2017{, 08:30}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#2

Сообщение Sancho » 17.07.2017{, 10:53}

Ещё в придачу
Раскладываем на символы 5 значное число

Добавлено (17.07.2017, 10:53)
---------------------------------------------
Для экспериментов использовалась стандартная переходная плата от дисплея, цена  на али - около 22руб.
Вложения
INT_to_5Digit-C.ubi
(16.76 КБ) 176 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

PCF8574

#3

Сообщение krom23 » 20.07.2017{, 21:51}

Спасибо за поддержку годной микросхемы, давно ей пользуемся, а чтоб вот так, у наших программистов руки ещё не доходили. Кстати, а упростить работу с блоком можно, чтоб без дополнительных гаргарушек с адресами. Типа подал единицу на вход блока 1 и на ноге микрухи 1 появилась единица, ну и со входами так же? Вообще было бы шикарно.:)

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

PCF8574

#4

Сообщение pan » 20.07.2017{, 22:01}

krom23 писал(а):а упростить работу с блоком можно, чтоб без дополнительных гаргарушек с адресами
  даже нужно.

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#5

Сообщение Sancho » 21.07.2017{, 08:34}

krom23 писал(а):Кстати, а упростить работу с блоком можно, чтоб без дополнительных гаргарушек с адресами. Типа подал единицу на вход блока 1 и на ноге микрухи 1 появилась единица, ну и со входами так же? Вообще было бы шикарно.:)
 
pan писал(а):даже нужно.
Даже и незнаю что ответить. Но попытаюсь.
Адресов имеется восемь штук - выбирай любой, подавай на вход необходимый.
Для уменьшения "веса блока" отсутствуют всякие ненужные изначально, на мой взгляд, плюшки.
Если есть необходимость работы с входами/выходами побитно - посмотрите примеры выше, есть готовые блоки.
Пример   PCF8574_v5 - работа микрухи ОДНОВРЕМЕННО на вход и выход,  PCF8574_v7 - пятизначный семисегментный дисплей со статической индикацией, т.е. у каждой PCF8574 свой индикатор(оцените размер программы, сравните с другими решениями на сдвиговых регистрах). 
Если вставлять изначально все восемь входов/выходов, то добавится 16(!) переменных в проекте на каждый блок!!! Хотя это и биты, но занимают в памяти переменных каждая байт!
Для каждого случая - своё решение, а к данному блоку можно прицепить снаружи всё необходимое в данном проекте. 
Сугубо моё мнение.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

PCF8574

#6

Сообщение pan » 21.07.2017{, 08:43}

адреса убрать в параметры
Sancho писал(а):можно прицепить снаружи всё необходимое в данном проекте
  кто знает тот прикрутит и допилит. а для многих нуна "ножки" к блоку прилепить)

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#7

Сообщение Sancho » 21.07.2017{, 09:09}

pan писал(а):адреса убрать в параметры
Если я использую ОДИН блок, но в разных циклах для разных адресов???
 
pan писал(а):кто знает тот прикрутит и допилит. а для многих нуна "ножки" к блоку прилепить)
Я старался сделать максимально доходчивое, подробное описание. С примерами.
Но, думаю, придётся сделать парочку входных/выходных дополнительных блоков....
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

PCF8574

#8

Сообщение pan » 21.07.2017{, 09:34}

просто блок в том виде как есть, больше для работы с шиной i2c для всех устройств, чем конкретно для этой микры)

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#9

Сообщение Sancho » 22.07.2017{, 08:28}

pan писал(а):просто блок в том виде как есть, больше для работы с шиной i2c для всех устройств, чем конкретно для этой микры)
 = Последняя строчка в описании.  
Просто так получилось, что указанная микросхема одна из простейших в серии I2C.

БЛОКИ ОБНОВЛЕНЫ. ДОБАВЛЕНО ДВА:  INPUT, OUTPUT.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

PCF8574

#10

Сообщение krom23 » 22.07.2017{, 13:25}

Спасибо за блоки Sancho. Вы пишете в описании: "Адрес задаётся в формате от 0x38 до 0x3F  или от 57 до 63 включительно." Вы имеете в виду адрес микросхемы или чего? У меня адрес 0x27, его я задать не смогу? Извините за глупые вопросы.

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#11

Сообщение Sancho » 22.07.2017{, 18:00}

krom23 писал(а):У меня адрес 0x27, его я задать не смогу?
Подключили блок/микросхему. Отсканировали с помощью FLProg или пересчитали адрес по даташитам и установленным перемычкам вручную. Теперь два варианта:
1. Если в формате FLProg, т.е. шестнатиричном, НЕХ, то пишем 0х.., где .. полученные два символа.
2. Если считали сами или как иначе, то можно в десятичном.
Например, 00011101 - это в hex 1D, а в десятичном 29.
Адрес PCF8574 может находится при разных вариантах перемычек в диапазоне от 0x38 до 0x3F  или от 56 до 63 включительно, т.е. максимум восемь штук на одной шине I2C.
Откуда у Вас такие адреса?
Последний раз редактировалось Sancho 22.07.2017{, 18:31}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

PCF8574

#12

Сообщение pan » 22.07.2017{, 18:51}

Sancho, может в описание добавить возможные варианты адресов при определенном состоянии перемычек

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

PCF8574

#13

Сообщение krom23 » 22.07.2017{, 19:21}

Цитата Sancho () Откуда у Вас такие адреса? Плата для LCD, а вот табличка адресов-перемычек из паспорта микросхемы
Вложения
1972082.png

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#14

Сообщение Sancho » 22.07.2017{, 19:29}

pan писал(а):может в описание добавить возможные варианты адресов при определенном состоянии перемычек
Сделаю, хорошо.

Добавлено (22.07.2017, 19:29)
---------------------------------------------
krom23 писал(а):Плата для LCD, а вот табличка адресов-перемычек из паспорта микросхемы
Весь вопрос в НАЗВАНИИ микросхемы - есть буква А или нет.
В последнее время без буквы не встречалось.
ИНАЧЕ, у Вас без буквы, поэтому смело берите из таблицы, с условием - если в Вашей таблице "+" перемычки нет, "-" запаяна.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

PCF8574

#15

Сообщение krom23 » 22.07.2017{, 19:38}

Видимо адрес зависит от литеры в номинале и/или от партии/производителя. Для плат LCD самые распространённые это 27, значительно реже 3F, про такие только на форуме слышал. Я так понял можно любой адрес, главное чтоб он совпал с адресом микросхемы?
Мысли встретились. С буквой "Т".
Последний раз редактировалось krom23 22.07.2017{, 19:41}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#16

Сообщение Sancho » 22.07.2017{, 20:06}

krom23 писал(а):Для плат LCD самые распространённые это 27, значительно реже 3F
27 - это адреса, если микросхема НА ПЛАТЕ PCF8574, 3F - PCF8574A, остальные литеры не принципиально, без запаяных перемычек.
Данные адреса подразумевают отсутствие перемычек НА ОБЩИЙ, т.е. единицы в адресе при подсчёте. Запайка перемычек на этих платах переводит выводы установки адресов в 0(они имеют изначальную подтяжку к +(1)).
Надеюсь, теперь понятно описал.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#17

Сообщение Sancho » 25.07.2017{, 10:24}

Плата, с которой проводились эксперименты. Была слегка модифицирована для удобства...
Адреса для двух типов используемых микросхем.
Вложения
7411288.jpg
Последний раз редактировалось Sancho 25.07.2017{, 10:27}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

PCF8574

#18

Сообщение fsergei70 » 03.08.2017{, 18:21}

Огромное спасибо за блок, вот и в flprog появилась эта возможность. Я в своё время нечто подобное видел здесь    https://www.youtube.com/watch?v=9JKGStB3hik&t=1318s               Даже тему на форуме создавал но никто не откликнулся. Вообще канал у автора видео интересный, думаю многим понравится. Последнее что он делал это осциллограф из ардуино.

Добавлено (03.08.2017, 18:21)
---------------------------------------------
Как говорится аппетит приходит во время еды. Это я про то, что не плохо было бы энкодер через эту микруху прикрутить.
Последний раз редактировалось fsergei70 03.08.2017{, 01:22}, всего редактировалось 1 раз.

Bposter
Рядовой
Сообщения: 32
Зарегистрирован: 02.05.2018{, 18:30}
Репутация: 0
Имя: Сергей

PCF8574

#19

Сообщение Bposter » 04.05.2018{, 21:25}

Смотрел примеры из темы и нече не понял, может кто покажет пример как на ардуине использовать пин 7 как кнопку а на PCF8574 на пине P0 зажечь диод?

Думал что так но нет(
Вложения
1.png

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PCF8574

#20

Сообщение Sancho » 04.05.2018{, 22:02}

Bposter писал(а):
04.05.2018{, 21:25}
Смотрел примеры из темы и нече не понял, может кто покажет пример как на ардуине использовать пин 7 как кнопку а на PCF8574 на пине P0 зажечь диод?
Думал что так но нет(
Sancho писал(а):
17.07.2017{, 10:33}
Физически работа выхода почти соответствует
схеме с открытым коллектором и по + питания токооганичивающий резистор(не более 100мкА). Снять логическую единицу с бОльшим током не получится.
Светодиод с токоограничивающим резистором - между + и выходом микрухи.
Отсканировать сканером I2C для установления точного адреса.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

Вернуться в «Расширители портов»