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

 
 
> SPI на 12 МГц через длинные провода
Kitsok
сообщение Nov 20 2007, 17:41
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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, земля и сигналы будут перевиты.

Поскольку ни образования, ни опыта в высокочастотной электронике у меня нету, прощу помощь уважаемых знатоков - поможет ли затея с буфером и резисторами?

Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Dec 5 2007, 23:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Плохая схема. Счетчик должен сбрасываться не сам по себе, а сигналом от мастера. Т.н. фреймовая синхронизация нужна. Иначе любая помеха по CLK и синхронизм приема пропал. ХЗ чего после этого HC595 принимать будет.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 6 2007, 08:27
Сообщение #3


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(rezident @ Dec 6 2007, 02:18) *
Счетчик должен сбрасываться не сам по себе, а сигналом от мастера.

Точно так.
Если автор темы защелкнет данные с 595, то ладно.
А если данные не считаны, а уже сброс ?
У меня вопросы к автору темы:
- зачем потребовался 595 (разве uC недостаточно, в нем уже есть приемный сдвигатель)
- Вы считаете параллельный интерфейс предпочтительнее, чем последовательный smile.gif
- зачем эта погоня за высокими тактовыми
- Вы думали насчет интерфейса типа SSP в LPC.
Для справки по LPC:
- это расширенный SPI, совместимый с Microwire, c TI и т.д.
- за счет FIFO uC возможнен обмен между мастером и слейвом до 128 <-> 128 бит без участия uC и без прерываний тоже (зарядили раз и сразу все -запустили-все считали за раз или постепенно).
Поставили бы плиску (CPLD хватит за глаза) и жили спокойно (минимальные размеры, универсальность, бегать с паяльниками и оциллогафами не надо, никаких переделок плат - все вопросы решаются перепрограммированием плиски). smile.gif
Это мое мнение, я его Вам не навязываю. biggrin.gif
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Dec 6 2007, 11:30
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 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 заняты под используемый АЦП.
Цитата
- Вы считаете параллельный интерфейс предпочтительнее, чем последовательный smile.gif

Отнють. Я вообще предпочитаю 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 хватит за глаза) и жили спокойно (минимальные размеры, универсальность, бегать с паяльниками и оциллогафами не надо, никаких переделок плат - все вопросы решаются перепрограммированием плиски). smile.gif
Это мое мнение, я его Вам не навязываю. biggrin.gif


Во-первых, спасибо большое за то, что Вы (да и все) высказываете свое мнение. Я - не профессионал, и поэтому без Вашей помощи, наверное, вообще не дошел бы то сегодняшних результатов. Это очень важно и я благодарен, что Вы терпите мой тупизм wink.gif

Что касается CPLD, то да, мысль в этом направлении ходит. Идея в том, чтобы на CPLD сделать синхронный приемник с FIFO, с параллельным интерфейсом к uC.
Проблема в том, что я не знаю, с чего начать двигаться в сторону CPLD, и пока не очевидны преимущества CPLD перед рассыпухой, если не считать FIFO и конечную вероятность потери данных.

Цитата(rezident @ Dec 6 2007, 12:09) *
Kitsok, Вы до сих пор не описали, зачем вообще нужна такая скорость и подобный сериализатор/десериализатор? Или я где-то это пропустил?
Может Вы просто очередной "изобретатель" бегущей строки?


Я выше описал, для чего нужны 12 МГц.
Конечная цель всего устройства - это дешевый интерфейс ввода-вывода к компьютеру для использования в любительском авиационном симуляторе. Т.е. много кнопок-тумблеров-галетников-энкодеров-клавиатур-АЦП по вводу и светодиодов-индикаторов-реле-шаговых моторов-сельсин-приемников по выводу.

Сериализатор-десериализатор нужен для реализации синхронного приемника с параллельным вводом в контроллер. Штатных средств контроллера не хватает.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 6 2007, 12:26
Сообщение #5


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Kitsok @ Dec 6 2007, 14:30) *
Высокая тактовая частота вырисовывается из следующих соображений:
1. Длина выходной цепочки (макс.) - 4096 регистров.
2. Длина входной цепочки (макс.) - 2048 регистров.

Глобально Вы задумали. biggrin.gif

Цитата(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) *
Я - не профессионал, и поэтому без Вашей помощи, наверное, вообще не дошел бы то сегодняшних результатов. Это очень важно и я благодарен, что Вы терпите мой тупизм wink.gif

Да ладно Вам прибедняться. Мы все друг у друга учимся (чему-нибудь и как-нибудь). biggrin.gif

Цитата(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) *
Конечная цель всего устройства - это дешевый интерфейс ввода-вывода к компьютеру для использования в любительском авиационном симуляторе. Т.е. много кнопок-тумблеров-галетников-энкодеров-клавиатур-АЦП по вводу и светодиодов-индикаторов-реле-шаговых моторов-сельсин-приемников по выводу.

И как это будет выглядеть, когда все сигналы получите и отправите.
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Dec 6 2007, 13:37
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Цитата(alexander55 @ Dec 6 2007, 15:26) *
Глобально Вы задумали. biggrin.gif
Мои предложения.
1.Разделите быстрые датчики и медленные.
Тогда Ваши требования снизятся на 1-2, а то и 3 порядка.
2. На быстрые датчики можно ставить свои контроллеры.
3. Выстройте систему блочно. Иначе процесс будет бесконечным. Чем больше сделаете, тем больше проблем и тем дальше от конца работ.

Собственно, за исключением вот этой проблемы с клоком все остальное сделано, поэтому переделывать - это проще с нуля все сделать с другой архитектурой. Кроме этого, использование контроллеров сильно удорожит систему.

Цитата
Если с FIFO, то лучше FPGA или местный uC. Т.е. распределенные контроллеры.
Рекомендую поизучать Verilog. Он похож на С.

Буду какой-нибудь стартер кит искать... Без железа как-то не изучается...

Цитата
И как это будет выглядеть, когда все сигналы получите и отправите.


Буде выглядеть (очень хочется надеяться) вот так:
http://youtube.com/watch?v=YUMBEWBN0Pg
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 6 2007, 13:47
Сообщение #7


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Kitsok @ Dec 6 2007, 16:37) *
Буду какой-нибудь стартер кит искать... Без железа как-то не изучается...

Это правильно.
Еще вариант.
Если есть коллеги, которые уже наваяли кучу железа. У них всегда найдется, что отдать приятно хорошему человеку, а выбросить жалко.
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Dec 6 2007, 14:40
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Цитата(alexander55 @ Dec 6 2007, 16:47) *
Это правильно.
Еще вариант.
Если есть коллеги, которые уже наваяли кучу железа. У них всегда найдется, что отдать приятно хорошему человеку, а выбросить жалко.


К огромному сожалению, в моем круге общения разработчиков электроники (не виртуальных, а реальных) нет совсем...

На всякий случай: Коллеги из Москвы, может у кого-нибудь завалялся ненужный более стартер-кит для каких-нибудь доставабельных несложных CPLD? :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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