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

Мультиплексирование SPI

Добрый день.

Сейчас думаю над устройством, где есть микроконтроллер, к которому подключены 8-SLAVE SPI. Т.к. мне все это SLAVE одновременно не нужны, да и в примененом мной микроконтроллере нет столько SPI, хочу мультиплексировать линии. Типа вот такой вот штуки должно получится

Untitled989.thumb.png.41b1ff37b350f3eef184b44fa38ddd28.png

Решил нагородить из стандартной логики SN74HC138 и SN74HC151 некий мультиплексор/демультиплексор, который выглядит примерно так (если плохо видно, есть во вложении схема Test.pdf):

Предполагаю, что выставив 3-битный адрес устройства (линии SELA, SELB, SELC) в нужное число от 0 до 7, я выберу необходимый мне SLAVE.

Untitled990.thumb.png.4296757d705de95b427bab67b91873b0.png

У меня собственно вопросы такие:

1. Нужны ли буферы (типа SN74HC244) после мультиплексора/демультиплексора?

2. Какие могут быть неприятности в таком решении?

3. Не считается такой костыль из стандартной логики чем-то жутко плохим?

4. Вообще, рабочее это решение/схема? :)

 

--

С уважением, Kirra

Изменено пользователем kirra.cat

Поделиться сообщением


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

0. Мультиплексировать SCLK, MOSI, MISO не нужно. Эта логика встроена во все ваши ведомые SPI-устройства. Достаточно мультиплексировать только FSS. Сооответственно пункт 1 отпадает, пункт 2 - слишком много лишних компонентов, 3 - нет, не считается, но конкретно ваше решение избыточно. 4 - да, рабочее, но можно обойтись всего одной внешней микросхемой.

Поделиться сообщением


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

Сергей уже ответил практически. Можно использовать, если не жалко выводов (8 штук), цифровые выходы микроконтроллера для формирования сигнала SSx (у Вас FSS). Следует учесть, что при длинных проводниках возможны наводки на сигнальные линии, которые могут привести к сбою работы логики интерфейса.

Поделиться сообщением


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

23 минуты назад, Сергей Борщ сказал:

 4 - да, рабочее, но можно обойтись всего одной внешней микросхемой.

А если Slave умеют переводить  MISO в третье состояние, если они не выбраны сигналом FSS, то вообще ничего дополнительно не нужно. Включайте прямо как по цветной картинке... 

Поделиться сообщением


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

11 минут назад, mdmitry сказал:

Сергей уже ответил практически. Можно использовать, если не жалко выводов (8 штук), цифровые выходы микроконтроллера для формирования сигнала SSx (у Вас FSS).

А если слэйвы умеют объединяться в daisy-chain, то и 8 шт. SS-ов не нужно, хватит одного (или вообще 0).

Поделиться сообщением


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

Спасибо за ответы.
Я когда рисовал эту схему, следовал следующими соображениями: т.к. каждый SPI уходит через соединитель дальше в прибор, то линия должна быть помехоустойчивой. И на мой взгляд, 8 проводников подключенных к одной точке менее помехозащищены, нежели линия точка-точка. Может у меня просто такой стререотип выработался.

Конечно, можно мультиплексировать только FSS, а остальные сигналы оставить просто соединёнными между собой. Но в таком случае мне потребуется буфер перед каждым разъемом, чтобы не оставлять порты микроконтроллера подключенные напрямую в недра прибора. А тут подумал, почему бы не поставить микросхемы 138 и 151 (ток они могут дать около 10 мА), и не ставить буфер перед разъемом.

Но если это решение рабочее, тогда буду думать, как его лучше прилепить.

Поделиться сообщением


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

1 hour ago, kirra.cat said:

Я когда рисовал эту схему, следовал следующими соображениями: т.к. каждый SPI уходит через соединитель дальше в прибор, то линия должна быть помехоустойчивой. И на мой взгляд, 8 проводников подключенных к одной точке менее помехозащищены, нежели линия точка-точка. Может у меня просто такой стререотип выработался.

Конечно, можно мультиплексировать только FSS, а остальные сигналы оставить просто соединёнными между собой. Но в таком случае мне потребуется буфер перед каждым разъемом, чтобы не оставлять порты микроконтроллера подключенные напрямую в недра прибора. А тут подумал, почему бы не поставить микросхемы 138 и 151 (ток они могут дать около 10 мА), и не ставить буфер перед разъемом.

 

Изобразите структурную схему Вашего прибора и посмотрите что и как должно быть соединено. Возможно, что нужен только буфер на микроконтроллер. И ещё, какая электромагнитная обстановка внутри прибора? Иногда блоки связывают между собой RS-485 для повышения помехоустойчивости.

Поделиться сообщением


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...