реклама на сайте
подробности

 
 
> Зачем в SPI синхронизация по разным фронтам
Arlleex
сообщение Sep 17 2015, 16:17
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Собственно, почему там не обычные сдвиговые регистры, а по отдельным фронтам защелка, по отдельным - выдача на линию...
Ведь, вроде бы, по одному фронту вообще все хорошо выходит...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
kovigor
сообщение Sep 17 2015, 16:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Arlleex @ Sep 17 2015, 19:17) *
... по отдельным фронтам защелка, по отдельным - выдача на линию...

Насколько я помню, там по одному и тому же фронту и защелкивание данных от передатчика, и выдача данных приемнику. Просто у Slave - устройства линии разные на прием и на передачу - MOSI и MISO. Или я вопроса не понял ?
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Sep 17 2015, 16:48
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



SPI - вот, по разным фронтам CLK (синяя и красная линии) происходит так называемая "защелка" и "сдвиг".
Но ведь D-триггер, входящий в состав регистра сдвига (основного рабочего органа SPI-автомата), по одному фронту "защелкивает", одновременно сдвигая данные... А SPI - не по одному, а по двум. Вот вопрос и в том, почему это так, да и наводит на мысль, что там не обычный сдвиговый регистр. Хотелось бы докопаться до истины.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Sep 17 2015, 17:01
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Arlleex @ Sep 17 2015, 19:48) *
SPI - вот, по разным фронтам CLK (синяя и красная линии) происходит так называемая "защелка" и "сдвиг".

В одном и том же режиме и фронт один и тот же. В разных режимах разные фронты. Но ведь одновременно в разных режимах никто не работает ...
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Sep 17 2015, 17:14
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Нет, не один и тот же.
Вот берем любой режим. Пусть CPOL = 0, CPHA = 0.
По переднему фронту CLK - защелка данных, по заднему - установка новых данных.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Sep 17 2015, 17:22
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Так сложилось исторически. Не смогли производители договорится об одном единственном стандарте. Поэтому каждый производитель процессора с SPI вынужден делать возможность настраивать фронты по-разному. Не нужно искать логики и смысла абсолютно во всём.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Sep 17 2015, 17:29
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Я ищу в этом логику в поиске какого-то утаенного от меня скрытого смысла. Ну я думал в этом есть какой-то хитрый план, начиная от помехозащищенности и заканчивая универсализацией...
Go to the top of the page
 
+Quote Post
Herz
сообщение Sep 17 2015, 17:42
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Там действительно и сдвиговый регистр, и защёлка. По обеим фронтам для того, чтобы убрать задержку распространения.
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Sep 17 2015, 17:46
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Herz, конкретика - лучшее, что может быть сейчас =) И зачем убирать задержку распространения? Без нее и сдвиговый регистр работать не будет.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 17 2015, 18:34
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Затем... Представим, передаем данные, меняющиеся по фронту, и сами такты. И по дороге такты слегка отстали, емкость там большая или еще чего. Получаем данные на приемной стороне непосредственно перед фронтом тактового сигнала. Нарушение времени предустановки. А так - защелкнули срезом, с гарантией, что достаточно и времени предустановки и времени удержания.
Это только внутри регистра или в ПЛИС данные надежно выскакивают после фронта такта. sm.gif В ПЛИС об этом думает компилятор или укладчик, как-то так.
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Sep 17 2015, 18:39
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Кстати, нашел еще кое-что связанное с этим, метастабильностью называется. Подобный изврат с SPI - что-то типа один из методов борьбы с ним...
http://geektimes.ru/post/254934/ - тут подробнее.
Интересно, конечно, как в железе реализуется раздельное управление фронтами. Думаю, я еще вернусь к этому вопросу =)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 17 2015, 18:45
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Arlleex @ Sep 17 2015, 21:39) *
Кстати, нашел еще кое-что связанное с этим, метастабильностью называется.

Вот именно. Специалисты по ПЛИС в этом разбираются. И мучаются иногда.
Go to the top of the page
 
+Quote Post
dxp
сообщение Sep 18 2015, 03:36
Сообщение #13


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Arlleex @ Sep 17 2015, 23:29) *
Я ищу в этом логику в поиске какого-то утаенного от меня скрытого смысла. Ну я думал в этом есть какой-то хитрый план, начиная от помехозащищенности и заканчивая универсализацией...



QUOTE (Arlleex @ Sep 17 2015, 23:46) *
Herz, конкретика - лучшее, что может быть сейчас =) И зачем убирать задержку распространения? Без нее и сдвиговый регистр работать не будет.

Не очень понятно, что вас смущает. Устроено, как раз, по здравому смыслу: один фронт клока DRIVE EDGE, второй - SAMPLE EDGE, по DRIVE EDGE и мастер, и слейв выставляют свои данные на линии (MOSI и MISO соответственно), по SAMPLE EDGE забирают. Никаких коллизий не возникает, все успевают, всё работает слаженно.

А если один фронт, то представьте себе, что, например, мастер выдаёт и забирает данные по одному и тому же фронту: вот выставил он данные на MOSI, выдал фронт на SCK, но в этот момент - если этот же фронт для мастера является и семплирующим - данные от слейва на MISO уже должны уверенно (т.е. соблюдением tSU и учётом tPD) стоять! Как слейв в этой ситуации узнает, что он должен выдавать данные - он ведь не может телепатировать от мастера, что тот сейчас будет выдавать фронт? В этом случае просто придётся от слейва данные гнать с задержкой на один такт. Это ни разу не упрощение, а наоборот усложнение логики и ухудшение скорости обмена.

Вот как-то так. Если, конечно, я правильно понял ваш вопрос. Если нет, не обессудьте. sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Plain
сообщение Sep 18 2015, 09:05
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



По стандарту, т.е. в оригинале Motorola, снаружи интерфейса всё и всеми двигается по единому одному перепаду тактового сигнала, а внутри всех устройств все принятые ими данные переписываются из его сдвиговых регистров в какие-либо их внутренние буферы, стробируются, и т.п., по единому противоположному его перепаду.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 21:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01468 секунд с 7
ELECTRONIX ©2004-2016