Arlleex 187 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Собственно, почему там не обычные сдвиговые регистры, а по отдельным фронтам защелка, по отдельным - выдача на линию... Ведь, вроде бы, по одному фронту вообще все хорошо выходит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба ... по отдельным фронтам защелка, по отдельным - выдача на линию... Насколько я помню, там по одному и тому же фронту и защелкивание данных от передатчика, и выдача данных приемнику. Просто у Slave - устройства линии разные на прием и на передачу - MOSI и MISO. Или я вопроса не понял ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба SPI - вот, по разным фронтам CLK (синяя и красная линии) происходит так называемая "защелка" и "сдвиг". Но ведь D-триггер, входящий в состав регистра сдвига (основного рабочего органа SPI-автомата), по одному фронту "защелкивает", одновременно сдвигая данные... А SPI - не по одному, а по двум. Вот вопрос и в том, почему это так, да и наводит на мысль, что там не обычный сдвиговый регистр. Хотелось бы докопаться до истины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба SPI - вот, по разным фронтам CLK (синяя и красная линии) происходит так называемая "защелка" и "сдвиг". В одном и том же режиме и фронт один и тот же. В разных режимах разные фронты. Но ведь одновременно в разных режимах никто не работает ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Нет, не один и тот же. Вот берем любой режим. Пусть CPOL = 0, CPHA = 0. По переднему фронту CLK - защелка данных, по заднему - установка новых данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Так сложилось исторически. Не смогли производители договорится об одном единственном стандарте. Поэтому каждый производитель процессора с SPI вынужден делать возможность настраивать фронты по-разному. Не нужно искать логики и смысла абсолютно во всём. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Я ищу в этом логику в поиске какого-то утаенного от меня скрытого смысла. Ну я думал в этом есть какой-то хитрый план, начиная от помехозащищенности и заканчивая универсализацией... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Там действительно и сдвиговый регистр, и защёлка. По обеим фронтам для того, чтобы убрать задержку распространения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Herz, конкретика - лучшее, что может быть сейчас =) И зачем убирать задержку распространения? Без нее и сдвиговый регистр работать не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Затем... Представим, передаем данные, меняющиеся по фронту, и сами такты. И по дороге такты слегка отстали, емкость там большая или еще чего. Получаем данные на приемной стороне непосредственно перед фронтом тактового сигнала. Нарушение времени предустановки. А так - защелкнули срезом, с гарантией, что достаточно и времени предустановки и времени удержания. Это только внутри регистра или в ПЛИС данные надежно выскакивают после фронта такта. :) В ПЛИС об этом думает компилятор или укладчик, как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Кстати, нашел еще кое-что связанное с этим, метастабильностью называется. Подобный изврат с SPI - что-то типа один из методов борьбы с ним... http://geektimes.ru/post/254934/ - тут подробнее. Интересно, конечно, как в железе реализуется раздельное управление фронтами. Думаю, я еще вернусь к этому вопросу =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Кстати, нашел еще кое-что связанное с этим, метастабильностью называется. Вот именно. Специалисты по ПЛИС в этом разбираются. И мучаются иногда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба Я ищу в этом логику в поиске какого-то утаенного от меня скрытого смысла. Ну я думал в этом есть какой-то хитрый план, начиная от помехозащищенности и заканчивая универсализацией... Herz, конкретика - лучшее, что может быть сейчас =) И зачем убирать задержку распространения? Без нее и сдвиговый регистр работать не будет. Не очень понятно, что вас смущает. Устроено, как раз, по здравому смыслу: один фронт клока DRIVE EDGE, второй - SAMPLE EDGE, по DRIVE EDGE и мастер, и слейв выставляют свои данные на линии (MOSI и MISO соответственно), по SAMPLE EDGE забирают. Никаких коллизий не возникает, все успевают, всё работает слаженно. А если один фронт, то представьте себе, что, например, мастер выдаёт и забирает данные по одному и тому же фронту: вот выставил он данные на MOSI, выдал фронт на SCK, но в этот момент - если этот же фронт для мастера является и семплирующим - данные от слейва на MISO уже должны уверенно (т.е. соблюдением tSU и учётом tPD) стоять! Как слейв в этой ситуации узнает, что он должен выдавать данные - он ведь не может телепатировать от мастера, что тот сейчас будет выдавать фронт? В этом случае просто придётся от слейва данные гнать с задержкой на один такт. Это ни разу не упрощение, а наоборот усложнение логики и ухудшение скорости обмена. Вот как-то так. Если, конечно, я правильно понял ваш вопрос. Если нет, не обессудьте. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 223 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба По стандарту, т.е. в оригинале Motorola, снаружи интерфейса всё и всеми двигается по единому одному перепаду тактового сигнала, а внутри всех устройств все принятые ими данные переписываются из его сдвиговых регистров в какие-либо их внутренние буферы, стробируются, и т.п., по единому противоположному его перепаду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться