|
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, земля и сигналы будут перевиты.
Поскольку ни образования, ни опыта в высокочастотной электронике у меня нету, прощу помощь уважаемых знатоков - поможет ли затея с буфером и резисторами?
Заранее спасибо!
|
|
|
|
|
 |
Ответов
|
Dec 6 2007, 08:27
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(rezident @ Dec 6 2007, 02:18)  Счетчик должен сбрасываться не сам по себе, а сигналом от мастера. Точно так. Если автор темы защелкнет данные с 595, то ладно. А если данные не считаны, а уже сброс ? У меня вопросы к автору темы: - зачем потребовался 595 (разве uC недостаточно, в нем уже есть приемный сдвигатель) - Вы считаете параллельный интерфейс предпочтительнее, чем последовательный - зачем эта погоня за высокими тактовыми - Вы думали насчет интерфейса типа SSP в LPC. Для справки по LPC: - это расширенный SPI, совместимый с Microwire, c TI и т.д. - за счет FIFO uC возможнен обмен между мастером и слейвом до 128 <-> 128 бит без участия uC и без прерываний тоже (зарядили раз и сразу все -запустили-все считали за раз или постепенно). Поставили бы плиску (CPLD хватит за глаза) и жили спокойно (минимальные размеры, универсальность, бегать с паяльниками и оциллогафами не надо, никаких переделок плат - все вопросы решаются перепрограммированием плиски). Это мое мнение, я его Вам не навязываю.
|
|
|
|
|
Dec 6 2007, 11:30
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Dec 6 2007, 11:27)  Точно так. Если автор темы защелкнет данные с 595, то ладно. А если данные не считаны, а уже сброс ? ... то ничего не произойдет в течении следующих 8 циклов клока. Если же я не успел считать данные с 595 в течении этого времени, то данные безвозвратно потеряны, и ничего с этим сделать нельзя, поскольку даже если бы я управлял клоком цепи '165 (мог бы остановить его), все равно мнгновенно остановить клок я бы не успел, поскольку C != inf. Цитата У меня вопросы к автору темы: - зачем потребовался 595 (разве uC недостаточно, в нем уже есть приемный сдвигатель) В нем есть аж 2 приемных сдвигателя - в SPI и в SSC. Приемник SPI не может синхронизироваться в мастер-режиме от приходящего клока, а пины SSC заняты под используемый АЦП. Цитата - Вы считаете параллельный интерфейс предпочтительнее, чем последовательный  Отнють. Я вообще предпочитаю PDC, но жизнь заставляет.... Цитата - зачем эта погоня за высокими тактовыми Высокая тактовая частота вырисовывается из следующих соображений: 1. Длина выходной цепочки (макс.) - 4096 регистров. 2. Длина входной цепочки (макс.) - 2048 регистров. 3. Частота опроса входной цепочки должна быть 384 раза в секунду (исходя из максимальной скорости вращения энкодера, который может быть подключен к любому регистру в цепочке) 4. Поскольку клок у нас генерится SPI, то 384 раза в секунду должны также передаться 4096 байт Вот отсюда и 12 мегагерц. Цитата - Вы думали насчет интерфейса типа SSP в LPC. Нет, в сторону LPC я вообще не думал, мне бы с SAM7S разобраться бы до конца. Цитата Для справки по LPC: - это расширенный SPI, совместимый с Microwire, c TI и т.д. - за счет FIFO uC возможнен обмен между мастером и слейвом до 128 <-> 128 бит без участия uC и без прерываний тоже (зарядили раз и сразу все -запустили-все считали за раз или постепенно). Ну прямо скажем, возможности SAM7S в этом плане получше. Я вообще прерывания не использую. Зарядил ПДП на все 4 килобайта по передаче и 2 кб по приему - и курю бамбук, отдавая время другим задачам. Как пришли данные - так их обработал и дальше в путь. Цитата Поставили бы плиску (CPLD хватит за глаза) и жили спокойно (минимальные размеры, универсальность, бегать с паяльниками и оциллогафами не надо, никаких переделок плат - все вопросы решаются перепрограммированием плиски). Это мое мнение, я его Вам не навязываю.  Во-первых, спасибо большое за то, что Вы (да и все) высказываете свое мнение. Я - не профессионал, и поэтому без Вашей помощи, наверное, вообще не дошел бы то сегодняшних результатов. Это очень важно и я благодарен, что Вы терпите мой тупизм Что касается CPLD, то да, мысль в этом направлении ходит. Идея в том, чтобы на CPLD сделать синхронный приемник с FIFO, с параллельным интерфейсом к uC. Проблема в том, что я не знаю, с чего начать двигаться в сторону CPLD, и пока не очевидны преимущества CPLD перед рассыпухой, если не считать FIFO и конечную вероятность потери данных. Цитата(rezident @ Dec 6 2007, 12:09)  Kitsok, Вы до сих пор не описали, зачем вообще нужна такая скорость и подобный сериализатор/десериализатор? Или я где-то это пропустил? Может Вы просто очередной "изобретатель" бегущей строки? Я выше описал, для чего нужны 12 МГц. Конечная цель всего устройства - это дешевый интерфейс ввода-вывода к компьютеру для использования в любительском авиационном симуляторе. Т.е. много кнопок-тумблеров-галетников-энкодеров-клавиатур-АЦП по вводу и светодиодов-индикаторов-реле-шаговых моторов-сельсин-приемников по выводу. Сериализатор-десериализатор нужен для реализации синхронного приемника с параллельным вводом в контроллер. Штатных средств контроллера не хватает.
|
|
|
|
|
Dec 6 2007, 12:26
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Kitsok @ Dec 6 2007, 14:30)  Высокая тактовая частота вырисовывается из следующих соображений: 1. Длина выходной цепочки (макс.) - 4096 регистров. 2. Длина входной цепочки (макс.) - 2048 регистров. Глобально Вы задумали. Цитата(Kitsok @ Dec 6 2007, 14:30)  3. Частота опроса входной цепочки должна быть 384 раза в секунду (исходя из максимальной скорости вращения энкодера, который может быть подключен к любому регистру в цепочке) 4. Поскольку клок у нас генерится SPI, то 384 раза в секунду должны также передаться 4096 байт
Вот отсюда и 12 мегагерц. Мои предложения. 1.Разделите быстрые датчики и медленные. Тогда Ваши требования снизятся на 1-2, а то и 3 порядка. 2. На быстрые датчики можно ставить свои контроллеры. 3. Выстройте систему блочно. Иначе процесс будет бесконечным. Чем больше сделаете, тем больше проблем и тем дальше от конца работ. Цитата(Kitsok @ Dec 6 2007, 14:30)  Я - не профессионал, и поэтому без Вашей помощи, наверное, вообще не дошел бы то сегодняшних результатов. Это очень важно и я благодарен, что Вы терпите мой тупизм  Да ладно Вам прибедняться. Мы все друг у друга учимся (чему-нибудь и как-нибудь). Цитата(Kitsok @ Dec 6 2007, 14:30)  Что касается CPLD, то да, мысль в этом направлении ходит. Идея в том, чтобы на CPLD сделать синхронный приемник с FIFO, с параллельным интерфейсом к uC. Если с FIFO, то лучше FPGA или местный uC. Т.е. распределенные контроллеры. Цитата(Kitsok @ Dec 6 2007, 14:30)  Проблема в том, что я не знаю, с чего начать двигаться в сторону CPLD Рекомендую поизучать Verilog. Он похож на С. Цитата(Kitsok @ Dec 6 2007, 14:30)  Конечная цель всего устройства - это дешевый интерфейс ввода-вывода к компьютеру для использования в любительском авиационном симуляторе. Т.е. много кнопок-тумблеров-галетников-энкодеров-клавиатур-АЦП по вводу и светодиодов-индикаторов-реле-шаговых моторов-сельсин-приемников по выводу. И как это будет выглядеть, когда все сигналы получите и отправите.
|
|
|
|
|
Dec 6 2007, 13:37
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Dec 6 2007, 15:26)  Глобально Вы задумали. Мои предложения. 1.Разделите быстрые датчики и медленные. Тогда Ваши требования снизятся на 1-2, а то и 3 порядка. 2. На быстрые датчики можно ставить свои контроллеры. 3. Выстройте систему блочно. Иначе процесс будет бесконечным. Чем больше сделаете, тем больше проблем и тем дальше от конца работ. Собственно, за исключением вот этой проблемы с клоком все остальное сделано, поэтому переделывать - это проще с нуля все сделать с другой архитектурой. Кроме этого, использование контроллеров сильно удорожит систему. Цитата Если с FIFO, то лучше FPGA или местный uC. Т.е. распределенные контроллеры. Рекомендую поизучать Verilog. Он похож на С. Буду какой-нибудь стартер кит искать... Без железа как-то не изучается... Цитата И как это будет выглядеть, когда все сигналы получите и отправите. Буде выглядеть (очень хочется надеяться) вот так: http://youtube.com/watch?v=YUMBEWBN0Pg
|
|
|
|
|
Dec 6 2007, 13:47
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Kitsok @ Dec 6 2007, 16:37)  Буду какой-нибудь стартер кит искать... Без железа как-то не изучается... Это правильно. Еще вариант. Если есть коллеги, которые уже наваяли кучу железа. У них всегда найдется, что отдать приятно хорошему человеку, а выбросить жалко.
|
|
|
|
|
Dec 6 2007, 14:40
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Dec 6 2007, 16:47)  Это правильно. Еще вариант. Если есть коллеги, которые уже наваяли кучу железа. У них всегда найдется, что отдать приятно хорошему человеку, а выбросить жалко. К огромному сожалению, в моем круге общения разработчиков электроники (не виртуальных, а реальных) нет совсем... На всякий случай: Коллеги из Москвы, может у кого-нибудь завалялся ненужный более стартер-кит для каких-нибудь доставабельных несложных CPLD? :-)
|
|
|
|
Сообщений в этой теме
Kitsok SPI на 12 МГц через длинные провода Nov 20 2007, 17:41 rezident Может стоит для такого случая LVDS-драйверы/приемн... Nov 20 2007, 18:52 bms Достаточно сделать две вещи:
1. Клок от "маст... Nov 20 2007, 20:25 alexander55 Рекомендую посмотреть
http://www.gaw.ru/html.cgi/t... Nov 21 2007, 06:39  Kitsok rezident,alexander55
По LVDS почитаю, но с одной ... Nov 21 2007, 07:50   bms Цитата(Kitsok @ Nov 21 2007, 10:50) bms
П... Nov 21 2007, 20:47    gte Цитата(bms @ Nov 21 2007, 23:47) времени.... Nov 22 2007, 07:24     zltigo Цитата(gte @ Nov 22 2007, 09:24) А данные... Nov 22 2007, 08:47      alexander55 Цитата(zltigo @ Nov 22 2007, 11:47) Добав... Nov 22 2007, 10:56       Kitsok Цитата(alexander55 @ Nov 22 2007, 13:56) ... Nov 22 2007, 11:37        Сергей Борщ Цитата(Kitsok @ Nov 22 2007, 13:37) Прошу... Nov 22 2007, 11:51        zltigo Цитата(Kitsok @ Nov 22 2007, 13:37) Или S... Nov 22 2007, 11:53         Kitsok Цитата(zltigo @ Nov 22 2007, 14:53) Не пр... Nov 22 2007, 12:07          zltigo Цитата(Kitsok @ Nov 22 2007, 14:07) Интер... Nov 22 2007, 12:25           Kitsok Цитата(zltigo @ Nov 22 2007, 15:25) На ... Nov 22 2007, 13:56            alexander55 Цитата(Kitsok @ Nov 22 2007, 16:56) ... Nov 22 2007, 14:36             Kitsok Цитата(alexander55 @ Nov 22 2007, 17:36) ... Nov 22 2007, 15:56              alexander55 Цитата(Kitsok @ Nov 22 2007, 18:56) Запут... Nov 23 2007, 06:21               Kitsok Чувствую себя тупым хвойным деревом "Дуб... Nov 23 2007, 19:09               Kitsok Цитата(alexander55 @ Nov 23 2007, 09:21) ... Nov 28 2007, 13:56                alexander55 Цитата(Kitsok @ Nov 28 2007, 16:56) Смотр... Nov 28 2007, 14:14                 Kitsok Цитата(alexander55 @ Nov 28 2007, 17:14) ... Nov 29 2007, 08:14                  alexander55 Цитата(Kitsok @ Nov 29 2007, 11:14) Ну во... Nov 29 2007, 08:40                   Kitsok Цитата(alexander55 @ Nov 29 2007, 11:40) ... Nov 29 2007, 09:20                    alexander55 Да уж...
Цитата(Kitsok @ Nov 29 2007, 12... Nov 29 2007, 10:31                     Kitsok Цитата(alexander55 @ Nov 29 2007, 13:31) ... Nov 29 2007, 11:54                      Сергей Борщ Цитата(Kitsok @ Nov 29 2007, 13:54) Но мн... Nov 29 2007, 12:14                      alexander55 Цитата(Kitsok @ Nov 29 2007, 14:54) Бит п... Nov 29 2007, 12:20                       Kitsok Цитата(alexander55 @ Nov 29 2007, 15:20) ... Nov 29 2007, 13:15                        rezident Цитата(Kitsok @ Nov 29 2007, 18:15) Т.е. ... Nov 29 2007, 14:55                         Kitsok Цитата(rezident @ Nov 29 2007, 17:55) Я в... Nov 29 2007, 15:31                          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 Kitsok Цитата(rezident @ Dec 6 2007, 02:18) Плох... Dec 5 2007, 23:54       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
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|