kirra.cat 1 10 мая, 2020 Опубликовано 10 мая, 2020 (изменено) · Жалоба Добрый день. Сейчас думаю над устройством, где есть микроконтроллер, к которому подключены 8-SLAVE SPI. Т.к. мне все это SLAVE одновременно не нужны, да и в примененом мной микроконтроллере нет столько SPI, хочу мультиплексировать линии. Типа вот такой вот штуки должно получится Решил нагородить из стандартной логики SN74HC138 и SN74HC151 некий мультиплексор/демультиплексор, который выглядит примерно так (если плохо видно, есть во вложении схема Test.pdf): Предполагаю, что выставив 3-битный адрес устройства (линии SELA, SELB, SELC) в нужное число от 0 до 7, я выберу необходимый мне SLAVE. У меня собственно вопросы такие: 1. Нужны ли буферы (типа SN74HC244) после мультиплексора/демультиплексора? 2. Какие могут быть неприятности в таком решении? 3. Не считается такой костыль из стандартной логики чем-то жутко плохим? 4. Вообще, рабочее это решение/схема? :) -- С уважением, Kirra Изменено 10 мая, 2020 пользователем kirra.cat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба 0. Мультиплексировать SCLK, MOSI, MISO не нужно. Эта логика встроена во все ваши ведомые SPI-устройства. Достаточно мультиплексировать только FSS. Сооответственно пункт 1 отпадает, пункт 2 - слишком много лишних компонентов, 3 - нет, не считается, но конкретно ваше решение избыточно. 4 - да, рабочее, но можно обойтись всего одной внешней микросхемой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба Сергей уже ответил практически. Можно использовать, если не жалко выводов (8 штук), цифровые выходы микроконтроллера для формирования сигнала SSx (у Вас FSS). Следует учесть, что при длинных проводниках возможны наводки на сигнальные линии, которые могут привести к сбою работы логики интерфейса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба 23 минуты назад, Сергей Борщ сказал: 4 - да, рабочее, но можно обойтись всего одной внешней микросхемой. А если Slave умеют переводить MISO в третье состояние, если они не выбраны сигналом FSS, то вообще ничего дополнительно не нужно. Включайте прямо как по цветной картинке... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба 11 минут назад, mdmitry сказал: Сергей уже ответил практически. Можно использовать, если не жалко выводов (8 штук), цифровые выходы микроконтроллера для формирования сигнала SSx (у Вас FSS). А если слэйвы умеют объединяться в daisy-chain, то и 8 шт. SS-ов не нужно, хватит одного (или вообще 0). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kirra.cat 1 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба Спасибо за ответы. Я когда рисовал эту схему, следовал следующими соображениями: т.к. каждый SPI уходит через соединитель дальше в прибор, то линия должна быть помехоустойчивой. И на мой взгляд, 8 проводников подключенных к одной точке менее помехозащищены, нежели линия точка-точка. Может у меня просто такой стререотип выработался. Конечно, можно мультиплексировать только FSS, а остальные сигналы оставить просто соединёнными между собой. Но в таком случае мне потребуется буфер перед каждым разъемом, чтобы не оставлять порты микроконтроллера подключенные напрямую в недра прибора. А тут подумал, почему бы не поставить микросхемы 138 и 151 (ток они могут дать около 10 мА), и не ставить буфер перед разъемом. Но если это решение рабочее, тогда буду думать, как его лучше прилепить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyroman 2 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба Можно использовать мультиплексор типа MCP23S17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 10 мая, 2020 Опубликовано 10 мая, 2020 · Жалоба 1 hour ago, kirra.cat said: Я когда рисовал эту схему, следовал следующими соображениями: т.к. каждый SPI уходит через соединитель дальше в прибор, то линия должна быть помехоустойчивой. И на мой взгляд, 8 проводников подключенных к одной точке менее помехозащищены, нежели линия точка-точка. Может у меня просто такой стререотип выработался. Конечно, можно мультиплексировать только FSS, а остальные сигналы оставить просто соединёнными между собой. Но в таком случае мне потребуется буфер перед каждым разъемом, чтобы не оставлять порты микроконтроллера подключенные напрямую в недра прибора. А тут подумал, почему бы не поставить микросхемы 138 и 151 (ток они могут дать около 10 мА), и не ставить буфер перед разъемом. Изобразите структурную схему Вашего прибора и посмотрите что и как должно быть соединено. Возможно, что нужен только буфер на микроконтроллер. И ещё, какая электромагнитная обстановка внутри прибора? Иногда блоки связывают между собой RS-485 для повышения помехоустойчивости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться