Перейти к содержанию

74hc595 не один на SPI


Рекомендуемые сообщения

Потихоньку разрабатываю устройство на атмеге16(не суть) к которой на шину SPI планирую подключить W5500 и регистры сдвига 74hc595 для управления релюхами (~16 шт.).

И понимаю, что скорее всего не получится. У W5500 есть ножка SS, при высоком уровне на которой она игнорирует всё на шине, у 74hc595 такой функции я не нашёл. То есть не получится?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Было бы желание. Я на один SPI вешал SD-карту и гирлянду WS2812b, "развязывал сигналы при помощи транзистороного коммутатора. В вашем случае можно использовать MOSFET: когда сигналом SS активируется W5500, мосфет запирается и не пропускает CLK на регистры, когда SS деактивирует W5500, мосфет открывается и пропускает CLK на регистры. Затрат - транзистор да резистор.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Только что, yaroslav.s сказал:

11-я ножка - защёлка

Вообще да, совсем забыл, что там двойной регистр...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

44 минуты назад, yaroslav.s сказал:

11-я ножка - защёлка

Насколько я понял, если дёрнуть 11 ножку на +, то из регистра выводятся данные на параллельный выход, и регист очищается. То есть в регист прилетит куча данных, передаваемых другим устройствам (причём будет храниться последний байт, предыдущие уйдут на 9 ножку), на параллельном выходе ничего меняться не будет до тех пор, пока не дернёшь 11 ножку...

Стоп! Я понял как надо! После передачи данных другим устройствам, передаю столько байт, сколько сдвиговых регистров подключено по цепочке (другие устройства игнорируют эти данные) и дёргую 11 ноги всем сразу. Мысли правильные?

 

Ссылка на комментарий
Поделиться на другие сайты

Да. Единственное - не ошибитесь с количеством отправляемых данных и их очерёдностью.
Ну и вешать реле напрямую на выход перебор. Нужна uln.

Текущий сетап: BBB-AD-H6.1-Nataly2014-AudioPro

Ссылка на комментарий
Поделиться на другие сайты

Только что, yaroslav.s сказал:

Да. Единственное - не ошибитесь с количеством отправляемых данных и их очерёдностью.
Ну и вешать реле напрямую на выход перебор. Нужна uln.

Не напрямую конечно, через транзистор, с защитным диодом и т.д. :)

SPI mode 0 будет нормально работать с этой микросхемой?

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, DarkDigger сказал:

После передачи данных другим устройствам, передаю столько байт, сколько сдвиговых регистров подключено по цепочке (другие устройства игнорируют эти данные) и дёргую 11 ноги всем сразу.

Только это надо делать не после всякой передачи другим, а когда надо обновлять состояние регистров, ведь до тех пор все равно, что за мусор в их сдвиговой части... 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

11 часов назад, DarkDigger сказал:

W5500 и регистры сдвига 74hc595 для управления релюхами

У меня подключено аналогичным образом, только на одной шине с EEPROM. Работает все отлично. Подключено вот так

image.png.d0713e754f65b9d0821e16bba3a50031.png

LED_DATA выход данных на второй регистр.

Изменено пользователем BARS_
Ссылка на комментарий
Поделиться на другие сайты

Вот как раз на днях столкнулся с проблемой - данные, отправляемые на 595-е регистры, управляющие реле, бились случайным образом. Не мог понять почему. А потом вспомнил, что у меня на той же шине еще пара регистров, которые управляют семисегментным дисплеем. И данные, периодически летящие обновлять дисплей, "пересекались" с данными, идущими на реле, если в этот момент с ними был обмен. Для дисплея это было не фатально, т.к. довольно быстро ему прилетает новая порция данных. А вот реле обновляются редко, после нажатия кнопок. И случается такая коллизия.
В "настоящих" SPI-устройствах был бы сигнал nSS, который этого не допустит. А я поправил код, введя переменную-флаг занятости шины SPI. Когда данные отправляются в реле, флаг = 1. И пока он равен 1, обновление дисплея запрещено. Все заработало как надо.

Может быть информация окажется полезной :) 

С уважением, Михаил, EEP Lab

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, aitras сказал:

В "настоящих" SPI-устройствах был бы сигнал nSS, который этого не допустит

А как наличие этого сигнала влияет на кривой доступ к SPI со стороны программы? А в 595 нога RCLK вполне себе заменяет CS.

 

1 час назад, aitras сказал:

Когда данные отправляются в реле, флаг = 1. И пока он равен 1, обновление дисплея запрещено.

Вообще-то это стандартная процедура доступа к шинам данных. Пока идет работа с одним девайсом, остальным работать запрещено.

Ссылка на комментарий
Поделиться на другие сайты

11 hours ago, BARS_ said:

Пока идет работа с одним девайсом, остальным работать запрещено.

Разве при наличии 2 ведомых устройств состояния nSS1 = 0 и nSS2 = 1 не запрещает аппаратно ведомому 2 принимать данные?

Хотя если во время посылки между байтами вклинится вторая передача, то nSS1 останется опущенным в 0 и тоже будет участвовать в обмене :umnik2:

С уважением, Михаил, EEP Lab

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, aitras сказал:

Разве при наличии 2 ведомых устройств состояния nSS1 = 0 и nSS2 = 1 не запрещает аппаратно ведомому 2 принимать данные?

Запрещает, но не запрещает слать чушь на шину...

Ссылка на комментарий
Поделиться на другие сайты

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...