Easyelectronics.ru

Электроника для всех
Текущее время: 21 окт 2018, 09:01

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 13:37 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
Задумка такова - есть мастер SPI и много слейвов. Количество слейвов заранее неизвестно, максимальное - 32. Слейвы подключаются через плату расширения, на одной плате - 8 слейвов. Платы расширения могут включаться каскадом друг в друга.

Вход платы расширения: MOSI, MISO, SCK, SEL
Выход платы расширения: MOSI_OUT, MISO, SCK, SEL

Вход MOSI второй платы расширения подключается на выход MOSI_OUT первой платы раширения.

SCK, MISO – напрямую на слейвы, MOSI – через коммутатор 74HC157. При активном SEL (0) коммутатор пропускает на выход MOSI с выхода переполнения сдвигового регистра 74HC595 (пин 9), при неактивном (1) – пропускает MOSI как есть.

Выходы SELx отключенны пока активируется нужный SELx (благодаря инвертору U2).
Вложение:
SPI_EXT.png
SPI_EXT.png [ 65.39 Кб | Просмотров: 1296 ]

Сценарий работы.

Активируем SELx нужного слейва - подаем на SEL 0 и выводим в SPI 32-х битное число с 0-м битом в нужной позиции..

Отпускаем SEL (подаем 1), на одном из SELx оказывается активный (0) уровень. Если адрес больше 7 – он уйдет на следующую плату расширения через MOSI_QH / MOSI_OUT.

Передаем данные выбранному слейву, на текущей плате уйдет на MOSI, на следующих – на MOSI_OUT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 14:51 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 5007
Цитата:
Задумка такова - есть мастер SPI и много слейвов. Количество слейвов заранее неизвестно, максимальное - 32.

Курсовая работа?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 15:01 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
u37 писал(а):
Цитата:
Задумка такова - есть мастер SPI и много слейвов. Количество слейвов заранее неизвестно, максимальное - 32.

Курсовая работа?

С чего вдруг? Реальный проект.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 20:05 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2381
Вай-вай, зачем SPI? Может, RS485/422, или на совсем худой конец I2C? Они позволяют очень просто подключать на одну линию несколько устройств и легко каскадировать их. Поверх RS485 чаще всего работает Modbus, можно так же DMX, MIDI.
То есть, если это не курсовик, а реальное применение для некоей сети, то ваш метод на сдвиговых регистрах - это метод 70-80-х годов прошлого века, когда ЭВМ были на перфокартах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 22:40 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
BusMaster писал(а):
Вай-вай, зачем SPI? Может, RS485/422, или на совсем худой конец I2C? Они позволяют очень просто подключать на одну линию несколько устройств и легко каскадировать их. Поверх RS485 чаще всего работает Modbus, можно так же DMX, MIDI.
То есть, если это не курсовик, а реальное применение для некоей сети, то ваш метод на сдвиговых регистрах - это метод 70-80-х годов прошлого века, когда ЭВМ были на перфокартах.

RS485 - сразу добавьте к слейву стоимость и футпринт трансивера, отпадает.
I2C - как раздавать адреса слейвам, если их много одинаковых и всякие джамперы не вариант, тоже отпадает.

Это никакой не курсовик. И сеть ограничена 4-мя платами расширения по 8 слейвов на каждой. Растояние между крайними точками - 50 см.

Чем плох метод на сдвиговых регистрах, кромет того что он 70-80-х годов прошлого века?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 22:50 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2381
Да тем и плох, что это не понять что такое. Лично я, даже после трехкратного прочтения чето не врубился в вашу затею. Извините, может, объясните как-то на пальцах, по простому, чего вы желаете получить на выходе каждого модуля? Заодним, проследив сигналы, вы может и сами чего проясните для себя.
Что касается RS482/422 - это общепринятый способ построения сетей. Адрес задается перемычками, переключателями или программно. Трансивер стоит не дороже вашего бутерброда микросхем.
Следующий по уровню способ - езернет, но это уже для вип-клиентов, если можно так сказать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 23:14 
Старожил

Зарегистрирован: 04 окт 2012, 00:23
Сообщения: 2521
Откуда: Москва
MOSI MISO SCK - Всем и сразу . CS - через дешифратор BIN- BCD


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 04 апр 2018, 23:59 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
BusMaster писал(а):
Да тем и плох, что это не понять что такое. Лично я, даже после трехкратного прочтения чето не врубился в вашу затею. Извините, может, объясните как-то на пальцах, по простому, чего вы желаете получить на выходе каждого модуля? Заодним, проследив сигналы, вы может и сами чего проясните для себя.

Описано подробнее некуда. Каждый модуль - это слейв SPI. Принимает запрос, отдает на него ответ. Что непонятно, спрашивайте.

BusMaster писал(а):
Что касается RS482/422 - это общепринятый способ построения сетей. Адрес задается перемычками, переключателями или программно. Трансивер стоит не дороже вашего бутерброда микросхем.

Трансивер на каждый слейв, неприемлемо увеличит футпринт и стоимость.

BusMaster писал(а):
Следующий по уровню способ - езернет, но это уже для вип-клиентов, если можно так сказать

Речь вообще то о модульности в рамках 1 метра, вы еще оптику предложите :)

Цель - много дешевых слейвов, малое расстояние, отсутствие необходимости задания адреса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 00:00 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
ILYAUL писал(а):
MOSI MISO SCK - Всем и сразу . CS - через дешифратор BIN- BCD

А можно подробнее, как передавать CS на следующую плату расширения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 01:33 
Старожил

Зарегистрирован: 04 окт 2012, 00:23
Сообщения: 2521
Откуда: Москва
Да хотя бы так или ищите BIN->BCD c входом EN


Вложения:
images.png
images.png [ 7.67 Кб | Просмотров: 1001 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 02:15 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
ILYAUL писал(а):
Да хотя бы так или ищите BIN->BCD c входом EN

Вход и выход у платы расширения - SPI. Нужно по SPI передать сигнал CS с мастера на любую из плат расширения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 10:46 
Старожил

Зарегистрирован: 23 мар 2017, 14:45
Сообщения: 3743
Я так делал. Только у меня не каскадно было, а параллельно. Сдвиговый регистр в каждом слейве как дешифратор его адреса. Все сажались впараллель на одном шлейфе.
Всё прекрасно работало.

BusMaster писал(а):
ваш метод на сдвиговых регистрах - это метод 70-80-х годов прошлого века, когда ЭВМ были на перфокартах.
Ну и что? - диод прибор еще древнее. Все диоды теперь повыкидывать что ли? :))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 12:33 
Старожил

Зарегистрирован: 04 окт 2012, 00:23
Сообщения: 2521
Откуда: Москва
turnon писал(а):
ILYAUL писал(а):
Да хотя бы так или ищите BIN->BCD c входом EN

Вход и выход у платы расширения - SPI. Нужно по SPI передать сигнал CS с мастера на любую из плат расширения.

SPI интерфейс это 3 - 4 сигнала . Если у Вас не предусмотрен CS - мне Вас искренне жаль


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 18:54 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
ILYAUL писал(а):
turnon писал(а):
ILYAUL писал(а):
Да хотя бы так или ищите BIN->BCD c входом EN

Вход и выход у платы расширения - SPI. Нужно по SPI передать сигнал CS с мастера на любую из плат расширения.

SPI интерфейс это 3 - 4 сигнала . Если у Вас не предусмотрен CS - мне Вас искренне жаль

С чего вы решили что не предусмотрен CS, вы схему и описание читали хотя бы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 19:09 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 1101
И где у вас CS на схеме или в описании? Смотрю и в упор не вижу. Поиск текста тоже не видит. А вы почему-то говорите что он есть.
Зачем вы вообще "коммутируете" MOSI, когда он может быть к слэйвам в параллель подключен всегда? Мастер ведь у вас один только.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 20:27 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2381
Ну вот - и не только я один не смог понять затеи топикстартера. Для чего сдвиговые регистры? Вариант daisy-chain, то есть, каскадирования?
До 32 слейвов - это 5 линий дешифрации при выборе слейва. Прикиньте - тянуть 3+5=8 параллельных линий данных. И это ТС еще жалуется на лишнее место от трансивера RS485. А тут ему не жалко ширины разъемов и количества проводов.
Возможно, ТС пытается как-то передать номер слейва по последовательной линии, оттого и возник этот бутерброд 595-го регистра и 157-го мультиплексора? Но уж поверьте, это чето из области какой-то жутко замудренной перемудренной выдумки, вероятно, от незнания других вариантов.
Для небольших расстояний - UART или USRT с наложенной поверх него адресацией, как в Modbus. Либо I2C со встроенной адресацией. Кстати, I2C есть в обычном VGA-проводе при подсоединении монитора, это как пример передачи на метр-полтора.

Топикстартеру при любом раскладе придется как-то решать вопрос с адресом любого подключаемого модуля.
Например, в DMX-совместимых устройствах адрес устройства в самом простом случае устанавливается миниатюрными DIP-переключателями.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 21:50 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
BusMaster писал(а):
Ну вот - и не только я один не смог понять затеи топикстартера. Для чего сдвиговые регистры? Вариант daisy-chain, то есть, каскадирования?
До 32 слейвов - это 5 линий дешифрации при выборе слейва. Прикиньте - тянуть 3+5=8 параллельных линий данных. И это ТС еще жалуется на лишнее место от трансивера RS485. А тут ему не жалко ширины разъемов и количества проводов.
Возможно, ТС пытается как-то передать номер слейва по последовательной линии, оттого и возник этот бутерброд 595-го регистра и 157-го мультиплексора? Но уж поверьте, это чето из области какой-то жутко замудренной перемудренной выдумки, вероятно, от незнания других вариантов.

Вы читали описание?

"Вход платы расширения: MOSI, MISO, SCK, SEL
Выход платы расширения: MOSI_OUT, MISO, SCK, SEL"
Какие 8 параллельных линий данных?

BusMaster писал(а):
Для небольших расстояний - UART или USRT с наложенной поверх него адресацией, как в Modbus.

Та же проблема что и в I2C - необходимость заботиться о выдаче уникальных адресов слейвам.
К тому же UART для слейва - ценный прикладной интерфейс, лучге его не занимать.

BusMaster писал(а):
Либо I2C со встроенной адресацией.

Что такое встроенная адресация?

BusMaster писал(а):
Топикстартеру при любом раскладе придется как-то решать вопрос с адресом любого подключаемого модуля. Например, в DMX-совместимых устройствах адрес устройства в самом простом случае устанавливается миниатюрными DIP-переключателями.

Не придется. В SPI для этого есть линия CS (SEL). Да и если бы пришлось - вариант с DIP-переключателяи совершенно неприемлем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 22:09 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
NStorm писал(а):
И где у вас CS на схеме или в описании? Смотрю и в упор не вижу. Поиск текста тоже не видит. А вы почему-то говорите что он есть.

SEL.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 22:17 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2381
ёбаный бегемот, с двадцатого раза вроде вкурил. ТС пытается встроить выбор модуля в саму шину SPI методом вставки предшествующего 32-битного позиционного адреса (в инверсном виде). Затем идут данные, которые должны пройти через все 32 девайса.
Пакет выглядит так: инверсный позиционный адрес (0хFF FF FF FD), данные (XX XX XX... ). Так? Ну ёпт, ну че, нельзя было так объяснить?
Для такого вида связи будет нехилый оверхед данных и непостоянная длинна до разных модулей в цепи. То есть, в ближний к мастеру модуль в цепи данные придут сразу. А до последнего модуля первый байт данных доберется только после 32-х "холостых" байтов.


Последний раз редактировалось BusMaster 05 апр 2018, 22:22, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 22:22 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
NStorm писал(а):
Зачем вы вообще "коммутируете" MOSI, когда он может быть к слэйвам в параллель подключен всегда? Мастер ведь у вас один только.

Опрос слейва выполняется за два шага.

Первый шаг - установка SELx нужного слейва. Для этого SEL платы расширения устанавливаем в 0, выводим в SPI 32-х битное число, выход переполнения сдвигового регистра MOSI_QH в это время соединен со входом MOSI других плат расширения, такм образом обеспечиваентся передача адреса слейва на все платы расширения. Поднимаем SEL платы расширения (1), активируется нужный слейв (SELx).

Второй шаг - непосредственно передача данных выбранному слейву. MOSI_QH в это время отключен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 22:25 
Заглядывает иногда

Зарегистрирован: 18 окт 2014, 00:39
Сообщения: 138
BusMaster писал(а):
ёбаный бегемот, с двадцатого раза вроде вкурил. ТС пытается встроить выбор модуля в саму шину SPI методом вставки предшествующего 32-битного позиционного адреса (в инверсном виде). Затем идут данные, которые должны пройти через все 32 девайса.
Пакет выглядит так: инверсный позиционный адрес (0хFF FF FF FD), данные (XX XX XX... ). Так? Ну ёпт, ну че, нельзя было так объяснить?

Да, верно. Но ваше объяснение было бы мне совершенно непонятно. Я не настоящий электронщик :)

BusMaster писал(а):
Для такого вида связи будет нехилый оверхед данных и непостоянная длинна до разных модулей в цепи. То есть, в ближний к мастеру модуль в цепи данные придут сразу. А до последнего модуля первый байт данных доберется только после 32-х "холостых" байтов.

После 32-х "холостых" битов, а не байтов. Лишние 4 байта погоды не делают в этом сценарии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 22:32 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2381
Так у вас эти модули потребляют данные в каком виде? Им нужен 8-битный БАЙТ или однобитный БИТ? Если БАЙТ, то чтобы передать БАЙТ через SPI, нужно 8 тактов, и по регистру он будет проходить за 8 тактов. Умножьте 8 тактов регистра на 32 регистра (модуля) и получите 256 тактов или БИТ, или в байтах это будет ровно 32 БАЙТА. Ой, да в любом случае, при прогоне через 8-разрядный регистр потребуется 8 тактов, или 1 БАЙТ по SPI.
Позиционный адрес, который является по сути положением одного БИТА - он конечно будет из 32 БИТ или 4 БАЙТ.
А вот чтобы БАЙТЫ данных добрались до модуля, потребуется 8 х (число регистров в цепи до интересующего модуля).

Ааа, стоп, вот еще фишка. Чтобы прогнать позиционный адрес по 32-м модулям, потребуется тоже 32 БАЙТА. Или я опять че-то не понимаю? Сколько будет 595-х регистров вообще?
Кароче, прогон любого, даже одного бита через один 595-й регистр занимает 8 тактов, или 1 БАЙТ данных.
Вобщем, на схеме нарисовано одно, а на словах описывается другое. Чето как то так.
Вот насколько было бы проще понять, если бы схема была нарисована полной и правильно.


Последний раз редактировалось BusMaster 05 апр 2018, 22:49, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 22:47 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 1101
Мне вот только после объяснения BusMaster стало понятно. Поражаюсь тому, как он сам понял ))

Имхо называйте вещи своими именами - не SELx на выходе будет, а обычный CS как надо у SPI. Как бы мы должны были догадаться что SELx у вас к слэйвам на CS подключается, если это изначально в первом сообщении не было написано? А то я из описания думал сначала что у вас без CS протокол используется, а только SEL со стороны мастера выбирается коммутация платы и слэйва по MOSI.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 23:00 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2381
Да я и сам то еще не всё понял. Я медленно, последовательными приближениями начинаю малость въезжать.
Что понял на этот момент:
- есть 4 одинаковых платы.
- на каждой такой плате стоит ОДИН 595-й регистр, параллельные выходы которого подключены к входам CS восьми SPI-слейвов, расположенных по 8 штук на плате, а последовательный выход уходит на следующую в цепи плату.
- позиционный (инверсный) код выбора SPI-слейва (сигнал CS) состоит из 32 БИТ, прогоняемых через 595-й регистр на каждой плате, итого 4 регистра.
- после этого идут байты данных, которые проходят через максимум 4 платы, то есть максимум через 4 регистра.
- на каждой плате с последовательного выхода регистра сигнал MOSI распараллеливается на 8 слейвов
- этот сигнал принимает тот слейв, для которого CS = 0 во время выбора позиционного адреса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Покритикуйте схему каскадной платы расширения SPI
СообщениеДобавлено: 05 апр 2018, 23:08 
Старожил

Зарегистрирован: 04 окт 2012, 00:23
Сообщения: 2521
Откуда: Москва
BusMaster писал(а):
Да я и сам то .....

ДА! Это круче чем с 4 дешифратора


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB