Jump to content

    

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

Глобально Вы задумали. :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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this