|
SPI на 12 МГц через длинные провода |
|
|
|
Nov 20 2007, 17:41
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Добрый день!
Любительским образом разрабатываю устройство ввода-вывода для строительства "картонных кабин" для авиасимуляторщиков.
Непосредственно устройства ввода (кнопки, тумблеры, энкодеры) и вывода (светодиоды, 7-сегментные индикаторы) подключаются к сдвиговым регистрам ('165 и '595), регистры каскадированы и подключены к контроллеру, к SPI-порту через преобразователь уровней 3.3<->5 ADG3304 и инвертор '04 (нужен для инвертирования CS для '165. Частота SPI выбрана равной 12 МГц из соображений производительности контроллера, периода опроса энкодеров и т.д.
Имеется разведенная плата, на ней - ветка из 8 '165 и 8 '595. Дальше шина оканчивается разъемом RJ-45, где имеется 4 сигнала и 4 "земли". Предполагается подключать дальше цепочкой следующие платы с регистрами(модули), делая таким образом длинную цепочку из сдвиговых регистров. Последовательных резисторов на сигнальных линиях , впрочем как и подтяжек не стоит.... При подключении оконечных устройств непосредственно к плате никаких проблем нет, все работает как и задумано.
Опыты показали, что если подключить к этому RJ-45 произвольной длины (от 5 сантиметоров до 2 метров) кабель, то вся работа шины останавливается. Осцилографом еще не смотрел, но предполагаю завалы фронтов и, возможно, звон. Я так предполагаю, что если уж кабель вызывает отказ работы шины, то никакими ухищирениями со стороны модуля ситуацию исправить не получится, и нужно переделывать схему и переразводить плату.
Как решение предполагаю установку подтягивающих к +5 резисторов, буфера типа '125 и проходных резисторов 20-50 ом. Аналогичную схему планирую также ставить на всех последующих модулях. Соединяться все это хозяйство будет неэкранированной витой парой CAT5, земля и сигналы будут перевиты.
Поскольку ни образования, ни опыта в высокочастотной электронике у меня нету, прощу помощь уважаемых знатоков - поможет ли затея с буфером и резисторами?
Заранее спасибо!
|
|
|
|
|
 |
Ответов
|
Nov 21 2007, 07:50
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
rezident,alexander55
По LVDS почитаю, но с одной стороны - 12 МГц, не перебор-ли, а с другой - насколько это удорожит систему и как передать общую землю через 4-парник? Ведь как я понял, используются дифф. пары, а у меня 4 сигнала. Хотя, два из них инвертированны.... В общем, буду думать.
bms Поскольку данные у меня как бы от крайнего регистра, то его надо змейкой пустить? И CS, наверное, тоже стоит так-же?
Про резисторы понял. Подтяг не нужно?
А вот про размножение клока - это сложно.... 4-парный кабель - это максимум 4 платы, т.е. на плате (при ограничении в 2048 регистров - это по 512 регистров на плату.... Либо делать плату размножителя клоков отдельную... В общем, буду думать, с точки зрения разъемов не очень понятно, как это сделать. Платы-то последовательно соединяются..
Спасибо большое за ответы!!!
|
|
|
|
|
Nov 21 2007, 20:47
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 11-08-05
Пользователь №: 7 545

|
Цитата(Kitsok @ Nov 21 2007, 10:50)  bms Поскольку данные у меня как бы от крайнего регистра, то его надо змейкой пустить? И CS, наверное, тоже стоит так-же?
Про резисторы понял. Подтяг не нужно?
А вот про размножение клока - это сложно.... 4-парный кабель - это максимум 4 платы, т.е. на плате (при ограничении в 2048 регистров - это по 512 регистров на плату.... Либо делать плату размножителя клоков отдельную... В общем, буду думать, с точки зрения разъемов не очень понятно, как это сделать. Платы-то последовательно соединяются.. Спасибо большое за ответы!!! Размножать клок можно непосредственно на плате. Схематично вариант такого размножения показан на рисунке. Ставите на входе каждой платы буфер-повторитель, через него заводите на регистры данные и размножаете клоки. Один из клоков и данные с последнего регистра выводите во внешний мир через резисторы согласования. Таким образом можно соединить сколько угодно плат. Резисторы подтяжки не нужны. Выравнивание клока и данных в этом случае получится автоматически - т.к. всё это будет передаваться через один 4-х парный кабель. Важно данные и клок протаскивать через один и тот же корпус буфера, т.е. берёте например счетверённый буфер, как на рисунке. Нельзя использовать разные корпуса (например не счетверённый корпус, а четыре отдельных корпуса), поскольку в этом случае разные корпуса будут иметь разные задержки и при большом числе плат данные и клок могут сильно "разъехаться" во времени. А в пределах одного (счетверённого например) корпуса задержки по всем буферам будут одинаковые.
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 22 2007, 10:56
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(zltigo @ Nov 22 2007, 11:47)  Добавлю еще, что даже при задержках "скомпенсированных" на многочисленных буферах СLK и MOSI проблема разбега CLK и MISO стоит в полный рост, ибо составляет суммарную задержку передачи CLK туда и MISO обратно. Да, конечно. Вот простой расчетик. При длине кабеля 2 м, сигнал проходит растояние 4 м. Если сигнал распространяется со скоростью света 300 т.км/с, задержка составит 13,3 нс. Если учесть индуктивность кабеля и задержки чиповые (3-10 нс), то это значение может удвоиться-утроиться. Прикиньте, какой это фазовый сдвиг на 12 МГц. Более четверти до половины периода. Уже есть над чем задуматься.
|
|
|
|
|
Nov 22 2007, 11:37
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 22 2007, 13:56)  Да, конечно. Вот простой расчетик. При длине кабеля 2 м, сигнал проходит растояние 4 м. Если сигнал распространяется со скоростью света 300 т.км/с, задержка составит 13,3 нс. Если учесть индуктивность кабеля и задержки чиповые (3-10 нс), то это значение может удвоиться-утроиться. Прикиньте, какой это фазовый сдвиг на 12 МГц. Более четверти до половины периода. Уже есть над чем задуматься.  Прошу прощения за нескромный вопрос, но может быть существуют какие-то устоявшиеся решения проблемы с разбегом? Или SPI совсем не предназначен для таких дел?
|
|
|
|
|
Nov 22 2007, 11:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Kitsok @ Nov 22 2007, 13:37)  Или SPI совсем не предназначен для таких дел? Не предназначен. Цитата Прошу прощения за нескромный вопрос, но может быть существуют какие-то устоявшиеся решения проблемы с разбегом? Устоявшиеся  . Для случаев, когда нужно пропускать/буферизировать десяткомегагерцовые SPI использую, например, 9bit посылки при этом лишний бит и лишний такт используется для компенсации задержки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 22 2007, 12:07
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(zltigo @ Nov 22 2007, 14:53)  Не предназначен. Устоявшиеся  . Для случаев, когда нужно пропускать/буферизировать десяткомегагерцовые SPI использую, например, 9bit посылки при этом лишний бит и лишний такт используется для компенсации задержки. Интересный ход. А как при этом определить, в каком бите у нас что пришло?
|
|
|
|
|
Nov 22 2007, 12:25
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Kitsok @ Nov 22 2007, 14:07)  Интересный ход. А как при этом определить, в каком бите у нас что пришло? На "трансляторе" производится стробирование принимаемых данных входной тактовой и таким образом вносится гарантированный сдвиг ровно на один бит. Передавать будете в первых восьми битах а принимать в последних восьми. P.S. А вообще так SPI c TTL уровнями использовать это махровое радиолюбительство  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 22 2007, 13:56
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(zltigo @ Nov 22 2007, 15:25)  На "трансляторе" производится стробирование принимаемых данных входной тактовой и таким образом вносится гарантированный сдвиг ровно на один бит. Передавать будете в первых восьми битах а принимать в последних восьми. P.S. А вообще так SPI c TTL уровнями использовать это махровое радиолюбительство  . "Транслятор" - это как я понимаю, просто "И"? И ставить его надо в той точке, где сдвиг составляет аккурат пол-фазы? Поправьте плиз, если не так, я что-то механику процесса не понимаю. P.S. дык на профессионализм и не претендую ни разу.
|
|
|
|
|
Nov 22 2007, 14:36
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Kitsok @ Nov 22 2007, 16:56)  "Транслятор" - это как я понимаю, просто "И"? И ставить его надо в той точке, где сдвиг составляет аккурат пол-фазы? Поправьте плиз, если не так, я что-то механику процесса не понимаю. Не правильно, попробую перевести слова нашего уважаемого гуру на простой язык. /*На "трансляторе" производится стробирование принимаемых данных входной тактовой и таким образом вносится гарантированный сдвиг ровно на один бит. */ Транслятор - это регистр сдвига, но с дополнительным битом. Можно посмотреть на примере LPC2xxx. Это значит. Выставлен формат не 8 бит, а 9 бит или даже более. /*Передавать будете в первых восьми битах а принимать в последних восьми.*/ Это значит, что мастер полезную информацию передает без смещения, а принятую информацию рассматривает как сдвинутую на 1 бит, т.к. самый первый принятый бит пройдет со смещением на такт из-за задержек. Т.е. формально принятый первый бит для мастера - это еще не информация. Цитата(Kitsok @ Nov 22 2007, 16:56)  P.S. дык на профессионализм и не претендую ни разу. Не обижайтесь. PS. Надеюсь, не запутал Вас окончательно.
|
|
|
|
|
Nov 22 2007, 15:56
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 22 2007, 17:36)  Не правильно, попробую перевести слова нашего уважаемого гуру на простой язык.
/*На "трансляторе" производится стробирование принимаемых данных входной тактовой и таким образом вносится гарантированный сдвиг ровно на один бит. */
Транслятор - это регистр сдвига, но с дополнительным битом. Можно посмотреть на примере LPC2xxx. Это значит. Выставлен формат не 8 бит, а 9 бит или даже более.
/*Передавать будете в первых восьми битах а принимать в последних восьми.*/ Это значит, что мастер полезную информацию передает без смещения, а принятую информацию рассматривает как сдвинутую на 1 бит, т.к. самый первый принятый бит пройдет со смещением на такт из-за задержек. Т.е. формально принятый первый бит для мастера - это еще не информация. Не обижайтесь. PS. Надеюсь, не запутал Вас окончательно. Запутал окончательно  Да и день тяжелый был, поэтому попробую еще проще, поправьте плиз. Есть длинная цепочка сдвиговых регистров, работающих, допустим на ввод, т.е. от ближайшего к контроллеру регистра идет MISO. Регистры все 8-битрые, параллельный ввод - последовательный вывод. Допустим, регистр выдает данные данные по фронту CLK, мастер забирает их по спаду. Вдоль цепочки растет сдвиг по фазе Проблема: если цепочка достаточно длинная, да еще и буферы на CLK стоят, то пока фронт "доедет" до последнего регистра, и тот выдаст данные на свой серийный выход, мастер уже давно опустил CLK и ожидает на входе получить бит. По мере удаления от мастера разбег увеличивается, и получается так, что очередной регистр пропускает бит от соседа. Пока правильно? Как решение - поставить посредине 9-битный регистр? Вот тут я уже нахожусь в клинах.... Если на мастере выставить 9 бит, то по вводу вроде особых проблем нет, а вот по выводу? Этот 9-й бит вылезет на первом-же регистре.... Ткните, пожалуйста, носом в ссылку, где эта проблема разбирается, если такие ссылке в природе есть... P.S. Я и не обижаюсь. Хоть и МИФИ заканчивал, занимаюсь ну совсем не электроникой. Ну то есть, даже рядом не валялось  Да и в МИФИ два семестра всего электроники-то было....
|
|
|
|
|
Nov 23 2007, 06:21
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Kitsok @ Nov 22 2007, 18:56)  Запутал окончательно  Да уж. Попробую еще раз и еще проще и от печки. SPI - синхронный интерфейс, т.е. синхронизация ведется по CLK мастера. Мастер и слэйв обмениваются информацией фиксированной длины. Для слэйва задержки неактуальны, т.к. входные данные (от мастера) и тактовая частота CLK (от мастера) имеют одинаковые задержки. Для мастера задержка актуальна, т.к. входные данные (от слэйва) и тактовая частота (мастера) имеют значительную задержку. Т.к. передающий механизм (и принимающий) регистры сдвига, то для мастера новая информация появится позже на 1 такт CLK (точнее раньше, но будет стоять). Т.е. мастер принимает информацию со сдвигом на 1 такт CLK. А решение этой проблемы приведено выше. PS. Проще уже никак.
|
|
|
|
|
Nov 28 2007, 13:56
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 23 2007, 09:21)  Для мастера задержка актуальна, т.к. входные данные (от слэйва) и тактовая частота (мастера) имеют значительную задержку. Т.к. передающий механизм (и принимающий) регистры сдвига, то для мастера новая информация появится позже на 1 такт CLK (точнее раньше, но будет стоять). Т.е. мастер принимает информацию со сдвигом на 1 такт CLK. А решение этой проблемы приведено выше. PS. Проще уже никак. Смотрите, у меня сейчас стоит цепочка из 8 регистров ('165) - слейвов. CLK инвертирован относительно того, который идет на '595, все работает, т.е. мастер получает ожидаемую информацию в ожидаемое время (не помню уже точно, по-моему, спада CLK). Проблема возникнет когда цепочка будет настолько длинная, что задержка распространения CLK до регистра + время на переключение регистра превысит пол-периода CLK. Вот в этом случае - да, бит потеряется. Правильно я понимаю?
|
|
|
|
|
Nov 28 2007, 14:14
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Kitsok @ Nov 28 2007, 16:56)  Смотрите, у меня сейчас стоит цепочка из 8 регистров ('165) - слейвов. CLK инвертирован относительно того, который идет на '595, все работает, т.е. мастер получает ожидаемую информацию в ожидаемое время (не помню уже точно, по-моему, спада CLK). Т.е. у Вас есть запас пол периода. Слэйв сдвинется раньше, чем требуется мастеру. Цитата(Kitsok @ Nov 28 2007, 16:56)  Проблема возникнет когда цепочка будет настолько длинная, что задержка распространения CLK до регистра + время на переключение регистра превысит пол-периода CLK. Вот в этом случае - да, бит потеряется. Правильно я понимаю? Почти. Проблема возникнет когда цепочка будет настолько длинная, что задержка распространения CLK до регистра + время на переключение регистра + время распространения данных от слэйва до мастера превысит Ваш запас. Вот в этом случае - да, бит потеряется.
|
|
|
|
|
Nov 29 2007, 08:14
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 28 2007, 17:14)  Проблема возникнет когда цепочка будет настолько длинная, что задержка распространения CLK до регистра + время на переключение регистра + время распространения данных от слэйва до мастера превысит Ваш запас. Вот в этом случае - да, бит потеряется. Ну вот это я понимаю вроде Так вот вопрос - а как поможет 9-битная посылка? Да, будет запас у нас в период, и бит не потеряется, а "сдвинется". Но без обратной связи ведь не определить, на каком именно регистре произошла потеря?
|
|
|
|
|
Nov 29 2007, 08:40
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Kitsok @ Nov 29 2007, 11:14)  Ну вот это я понимаю вроде  Замечательно. Лед тронулся, господа ...(И. и П.) Цитата(Kitsok @ Nov 29 2007, 11:14)  Так вот вопрос - а как поможет 9-битная посылка? Да, будет запас у нас в период, и бит не потеряется, а "сдвинется". Это значит, что это надо учесть. Цитата(Kitsok @ Nov 29 2007, 11:14)  Но без обратной связи ведь не определить, на каком именно регистре произошла потеря? Если Вы хотите анализировать (кто виноват и что делать (Чернышевский)), то посылайте заранее известную выдачу от слэйва.
|
|
|
|
|
Nov 29 2007, 09:20
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 29 2007, 11:40)  Это значит, что это надо учесть. Для того, чтобы это учесть, нужно знать какой бит в каком 9-битном слове является не номером N, а номером N+1, а этого без обратной связи, не узнать. Цитата Если Вы хотите анализировать (кто виноват и что делать (Чернышевский)), то посылайте заранее известную выдачу от слэйва. Слейв - это просто регистры, к которым подключены кнопки, тумблеры и энкодеры. MOSI, исходящее от мастера, никогда не попадает никаким образом на MISO  Цепочки регистров на ввод и на вывод не связаны никак. Вот поэтому я и не могу понять, как поможет 9-битная посылка.
|
|
|
|
|
Nov 29 2007, 10:31
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Да уж... Цитата(Kitsok @ Nov 29 2007, 12:20)  Для того, чтобы это учесть, нужно знать какой бит в каком 9-битном слове является не номером N, а номером N+1, а этого без обратной связи, не узнать. Биты или сдвинуты все или не сдвинуты не один. Это фиксированная величина для конкретного слейва. Что за обратная связь я не понимаю. Цитата(Kitsok @ Nov 29 2007, 12:20)  Слейв - это просто регистры, к которым подключены кнопки, тумблеры и энкодеры. Понял Вас. Слейву информация от мастера не нужна. Цитата(Kitsok @ Nov 29 2007, 12:20)  MOSI, исходящее от мастера, никогда не попадает никаким образом на MISO  А кто Вам такое мог сказать ? Цитата(Kitsok @ Nov 29 2007, 12:20)  Цепочки регистров на ввод и на вывод не связаны никак. Вот поэтому я и не могу понять, как поможет 9-битная посылка. Объясняю, на Вашем примере. 1. По сигналу выбора слейв устройства, Вы пишете состояние кнопкок, тумблеров и энкодеров в регистр сдвига слейва (я так думаю). 2. По сигналу CLK передаваемая от мастера информация игнорируется слейвом. Это мы выяснили. 3. По сигналу CLK информация в регистре сдвига сдвигается, и поступает в мастер. 4. По своему же CLK мастер сдвигает принятую информацию. А теперь контрольные вопросы Вам, чтобы понять, где мы находимся. А. Что будет: - если информация от слейва на момент сдвига мастером еще не дошла - а если уже дошла. Б. Меняется ли задержка прихода информации для конкретного слейв устройства.
|
|
|
|
|
Nov 29 2007, 11:54
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 29 2007, 13:31)  Биты или сдвинуты все или не сдвинуты не один. Это фиксированная величина для конкретного слейва. Что за обратная связь я не понимаю.  Вот тут я не понимаю. Получается, что если у меня сейчас работает с восемью 74HC165, то будет работать и с 8000? Сомневаюсь. Цитата Понял Вас. Слейву информация от мастера не нужна. А кто Вам такое мог сказать ? Это медицинский факт Цитата Объясняю, на Вашем примере. 1. По сигналу выбора слейв устройства, Вы пишете состояние кнопкок, тумблеров и энкодеров в регистр сдвига слейва (я так думаю). 2. По сигналу CLK передаваемая от мастера информация игнорируется слейвом. Это мы выяснили. Совершенно верны оба два утверждения Цитата 3. По сигналу CLK информация в регистре сдвига сдвигается, и поступает в мастер. 4. По своему же CLK мастер сдвигает принятую информацию. По тому-же CLK, только инвертированному. Или задержку при прохождении через инвертор тоже имеет смысл здесь учесть? Цитата А теперь контрольные вопросы Вам, чтобы понять, где мы находимся. А. Что будет: - если информация от слейва на момент сдвига мастером еще не дошла Бит потеряется где-то между двух регистров(n и n+1) посредине цепочки. В том месте, где на n задержка прохождения CLK еще меньше полупериода, а на n+1 - уже больше. Ключевой момент. Если Вам удастся мне объяснить, прав я или нет, то буду признателен чрезвычайно Цитата - а если уже дошла. То не потеряется Цитата Б. Меняется ли задержка прихода информации для конкретного слейв устройства. Я этот вопрос не понимаю, у меня одно слейв устройство, состоящее из длинного каскада сдвиговых регистров. Мне так кажется, что в цепочки из N-регистров по 8 бит каждый, и если считать бит номер 0 "ближайшим" к мастеру, то время прихода k-того бита зависит от длины проводов и от N. Цитата(Сергей Борщ @ Nov 29 2007, 14:25)  Привесьте в хвост цепочки еще один регистр, на входе которого выставьте заранее известное значение (0xA5). В принимаемом сигнале ищите эту комбинацию как маркер конца. Можно взять не A5 а какую-либо из последовательностей Баркера или Уилларда(?). Или еще лучше - формировать биты такой последовательности с прямого и инвесного выходов делителя на 2 сигнала загрузки входов регистра. Тогда на каждом цикле считывания будете иметь инвертированный маркер, существенно ниже вероятность спутать его с такой же комбинацией входных сигналов. А не поможет. Конец я найду, т.е. узнаю количество подключенных регистров. Но мне нужно выцепить конкретный теряющийся бит, поэтому нужно загнать в крайний регистр тестовую последовательность двойной максимально возможной длины и анализировать ее.
|
|
|
|
|
Nov 29 2007, 13:15
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Nov 29 2007, 15:20)  Т.е. Вы хотите сказать, что у Вас SPI не 8 битный, а 8*n битный. Ответьте на этот вопрос. Эээхм... Да. Объяснюсь. CS поднимается один раз перед передачей 4 кб (и, соответственно, приема 1 кб). На протяжении всех этих 4 кб мастер генерит CLK без сдвигов и задержек. Цитата(Сергей Борщ @ Nov 29 2007, 15:14)  Куда ему теряться? Проблема в том, что в зависимости от длины вашей цепочки вы можете получить на вход последовательность, задержанную на n бит, где n прямо пропорционально длине цепочки и может принимать значения от 0 до забора. Вам просто нужно принимать на байт больше и по положению маркера вычислять сдвиг принятых данных. Если я правильно понял. Вот и я не знаю. Здравый смысл подсказывает, что при небесконечной скорости света и наличии задержек при переключениях в микросхемах, цепочка не может работать при бесконечной длине. Но логика не подсказывает, где именно и какой произойдет сбой. Образно я вижу так - фронт сигнала (по которому должен происходить сдвиг в регистре) доезжает до некого k-того регистра с задержкой (относительно мастера) в полпериода. Т.е. когда тот k-тый регистр только выдвинул бит, мастер уже ожидает... стоп. Мастер далеко. Дыра что-ли получается в битовой последовательности? Ну не получается представить... ;(
|
|
|
|
|
Nov 29 2007, 15:31
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(rezident @ Nov 29 2007, 17:55)  Я вам еще в посте #22 объяснил как решается эта проблема. Каждый приемник (и мастера и слейва) тактируется своим собственным CLK. CLK приемника мастера этот тот же CLK, сгенерированный его собственным передатчиком, но прошедший путь до конца цепочки (с которого берется MISO) и обратно - CLK_RET. Такой способ используется во всех скоростных эмуляторах , которые работают с JTAG на десятках-сотнях МГц. Мне бы хотелось для начала осознать в деталях проблему О Вашем решении я помню. Только не очень представляю, как это реализовать с тем контроллером, который есть у меня (AT91SAM7S256). Программный SPI делать? Ну вот на это я точно не готов... Цитата(alexander55 @ Nov 29 2007, 17:18)  Хочется услышать результат (не зажимайте информацию). Вы меня заинтриговали.  Всепренепременнейше Цитата Параллелить со своими CS. Т.е. грубо хотя бы 1000 регистров - 1000 CS?
|
|
|
|
Сообщений в этой теме
Kitsok SPI на 12 МГц через длинные провода Nov 20 2007, 17:41 rezident Может стоит для такого случая LVDS-драйверы/приемн... Nov 20 2007, 18:52        Сергей Борщ Цитата(Kitsok @ Nov 22 2007, 13:37) Прошу... Nov 22 2007, 11:51               Kitsok Чувствую себя тупым хвойным деревом "Дуб... Nov 23 2007, 19:09                      Сергей Борщ Цитата(Kitsok @ Nov 29 2007, 13:54) Но мн... Nov 29 2007, 12:14                          rezident Цитата(Kitsok @ Nov 29 2007, 20:31) О Ваш... Nov 29 2007, 15:42                           Kitsok Цитата(rezident @ Nov 29 2007, 18:42) Нап... Nov 30 2007, 11:45                            alexander55 Цитата(Kitsok @ Nov 30 2007, 14:45) Это м... Nov 30 2007, 12:16                             Kitsok Цитата(alexander55 @ Nov 30 2007, 15:16) ... Nov 30 2007, 12:26                              alexander55 Цитата(Kitsok @ Nov 30 2007, 15:26) Вот я... Nov 30 2007, 12:45                               Kitsok Цитата(alexander55 @ Nov 30 2007, 15:45) ... Nov 30 2007, 14:01                                Сергей Борщ Цитата(Kitsok @ Nov 30 2007, 16:01) всегд... Nov 30 2007, 14:19                                alexander55 Цитата(Kitsok @ Nov 30 2007, 17:01) Не вс... Dec 3 2007, 07:36                                 Kitsok [quote name='alexander55' date='Dec 3 ... Dec 3 2007, 08:02                                  alexander55 Цитата(Kitsok @ Dec 3 2007, 11:02) ВОТ... Dec 3 2007, 08:08                                   Kitsok Цитата(alexander55 @ Dec 3 2007, 11:08) К... Dec 3 2007, 23:16                                    Kitsok Подумал и выдумал вот такую схему.
Наверху - с... Dec 5 2007, 23:09                          alexander55 Цитата(Kitsok @ Nov 29 2007, 18:31) Т.е. ... Nov 30 2007, 05:52                       alexander55 Цитата(alexander55 @ Nov 29 2007, 15:20) ... Nov 29 2007, 13:21                        Kitsok Цитата(alexander55 @ Nov 29 2007, 16:21) ... Nov 29 2007, 13:52                         alexander55 Цитата(Kitsok @ Nov 29 2007, 16:52) И вед... Nov 29 2007, 14:18                    Сергей Борщ Цитата(Kitsok @ Nov 29 2007, 11:20) Слейв... Nov 29 2007, 11:25            zltigo Цитата(Kitsok @ Nov 22 2007, 15:56) ... Nov 22 2007, 16:18             Kitsok Цитата(zltigo @ Nov 22 2007, 19:18) Так р... Nov 22 2007, 20:49              zltigo Цитата(Kitsok @ Nov 22 2007, 22:49) Но дл... Nov 22 2007, 22:57        alexander55 Цитата(Kitsok @ Nov 22 2007, 14:37) Прошу... Nov 22 2007, 12:15 rezident В синхронных системах приема-передачи кроме выравн... Nov 23 2007, 17:51 rezident Господа, вы уже начинаете поражать отсутствием воо... Nov 30 2007, 14:18 rezident Плохая схема. Счетчик должен сбрасываться не сам п... Dec 5 2007, 23:18 Kitsok Цитата(rezident @ Dec 6 2007, 02:18) Плох... Dec 5 2007, 23:54 alexander55 Цитата(rezident @ Dec 6 2007, 02:18) Счет... Dec 6 2007, 08:27  Kitsok Цитата(alexander55 @ Dec 6 2007, 11:27) Т... Dec 6 2007, 11:30   alexander55 Цитата(Kitsok @ Dec 6 2007, 14:30) Высока... Dec 6 2007, 12:26    Kitsok Цитата(alexander55 @ Dec 6 2007, 15:26) Г... Dec 6 2007, 13:37     alexander55 Цитата(Kitsok @ Dec 6 2007, 16:37) Буду к... Dec 6 2007, 13:47      Kitsok Цитата(alexander55 @ Dec 6 2007, 16:47) Э... Dec 6 2007, 14:40       alexander55 Цитата(Kitsok @ Dec 6 2007, 17:40) К огро... Dec 7 2007, 05:27        Kitsok В общем-то, идея работает, но криво, поэтому появи... Mar 18 2008, 14:36 rezident Kitsok, Вы до сих пор не описали, зачем вообще нуж... Dec 6 2007, 09:09 Terrabyte хотел применить NCV7608 в каскаде несколько таки... Feb 19 2014, 20:20 Kitsok Приятно почитать себя самого через 6 лет.
Доклад... Apr 25 2014, 20:12 svetlika Чувствую себя тупым хвойным деревом "Дуб... Jun 5 2014, 04:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|