Jump to content

    
Sign in to follow this  
kirra.cat

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

Recommended Posts

Добрый день.

Сейчас думаю над устройством, где есть микроконтроллер, к которому подключены 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

Edited by kirra.cat

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
23 минуты назад, Сергей Борщ сказал:

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

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

Share this post


Link to post
Share on other sites
11 минут назад, mdmitry сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
1 hour ago, kirra.cat said:

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this