Jump to content

    
Sign in to follow this  
Kitsok

SPI на 12 МГц через длинные провода

Recommended Posts

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

Мои предложения.

1.Разделите быстрые датчики и медленные.

Тогда Ваши требования снизятся на 1-2, а то и 3 порядка.

2. На быстрые датчики можно ставить свои контроллеры.

3. Выстройте систему блочно. Иначе процесс будет бесконечным. Чем больше сделаете, тем больше проблем и тем дальше от конца работ.

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

 

Если с FIFO, то лучше FPGA или местный uC. Т.е. распределенные контроллеры.

Рекомендую поизучать Verilog. Он похож на С.

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

 

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

 

Буде выглядеть (очень хочется надеяться) вот так:

http://youtube.com/watch?v=YUMBEWBN0Pg

Share this post


Link to post
Share on other sites
Буду какой-нибудь стартер кит искать... Без железа как-то не изучается...

Это правильно.

Еще вариант.

Если есть коллеги, которые уже наваяли кучу железа. У них всегда найдется, что отдать приятно хорошему человеку, а выбросить жалко.

Share this post


Link to post
Share on other sites
Это правильно.

Еще вариант.

Если есть коллеги, которые уже наваяли кучу железа. У них всегда найдется, что отдать приятно хорошему человеку, а выбросить жалко.

 

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

 

На всякий случай: Коллеги из Москвы, может у кого-нибудь завалялся ненужный более стартер-кит для каких-нибудь доставабельных несложных CPLD? :-)

Share this post


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

 

На всякий случай: Коллеги из Москвы, может у кого-нибудь завалялся ненужный более стартер-кит для каких-нибудь доставабельных несложных CPLD? :-)

Скажите, это в форуме по ПЛИСам.

Если бы в Питере, я Вам помог, а в Москве нет зацепок.

Share this post


Link to post
Share on other sites

В общем-то, идея работает, но криво, поэтому появилась новая ;)

 

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

 

Идея показала свою в целом состоятельность, если убрать подтверждения ;) Такое ногодрыжество вполне сносно работает аж до 10 МГц, дальше не хватает производительности контроллера. Ну и на этих 10 МГц, естественно, все остальные задачи курят, т.е. МК занимается фактически только приемом данных.

 

В итоге стало понятно, что читать байты по прерываниям, да вручную - не есть гут, и нужно получать задержанные данные, возможно выравнивать их до байта и запихивать в контроллер, синхронизируя выдачу бит по клоку, по которому синхронизируются регистры вывода. Тут проблем с таймингом быть не должно, поскольку расстояние очень не большое (ну может пару сантиметров).

 

Идея пока недообдумана, нужно рисовать ;)

 

Велосипед не изобретаю?

Share this post


Link to post
Share on other sites

хотел применить NCV7608 в каскаде несколько таких в пределах 30 метров, SPI до 5MHz,

но если проблема в приёме возникнет с ними, разрулить это на контроллере -проблеммно я смотрю, а делать на плис тактирование MISO- CLK_RET , это плис

Share this post


Link to post
Share on other sites

Приятно почитать себя самого через 6 лет.

 

Докладываю:

Идея с CPLD был верной, задачка решилась, проект закрылся, зато еще один ребенок свет родился, пока эти годы прошли ;)

 

Спасибо еще раз всем за помощь.

Share this post


Link to post
Share on other sites

Чувствую себя тупым хвойным деревом "Дуб".

Простите меня, пожалуйста, что я так трудно дохожу.

Беру таймаут на подумать и порисовать.

 

На всякий случай, предпосылки такие:

1. Заранее не известна длина кабелей между модулями.

2. Заранее не известно количество каскадированных регистров. Есть максимальное количество, которое обусловлено размерами буферов в приложении в контроллере.

 

Похоже, самым простым способом понять будет попробовать 9-битную посылку.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this