Страница 1 из 1

Сопряжение двух микроконтроллерных систем

Добавлено: Сб ноя 01, 2008 19:54:33
Ra
Добрый вечер.

Вопрос такого плана: есть некоторый девайс на контроллере (предположительно, на Атмеловской меге 8,16, аль 32).

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

Посему собственно вопрос, а даже два:
1) Предполагаю юзать SPI шину, т.к. в девайсе уже 2 периферийные микрухи на ней висят - думаю от нее отвести дорожки к IDC-разъему, оттуда коротким шлейфом - к плате клавиатуры.
Но, может, это не лучший вариант? Если есть вариант, более подходящий в данном случае (возможно из соображений стабильности, помехоустойчивости или еще чего), то буду очень рад услышать ваш совет.
По идее, вариантов не так много - либо SPI, либо I2C, больше аппаратно контроллер ничего не держит (кроме уарта, но это нежелательно).

2)Очень волнует вопрос сопряжения двух контроллерных систем. Т.к. никогда не делал таких вот двойных устройств. Какие возможны грабли, и какие вариант их обойти? Как быть с тактированием?
Центральный контроллер тактируется от 16-20 МГц кварца, будет ли достаточно просто поставить аналогичный кварц на клавиатуру, соединить ее по SPI с центральным, соединить земли-питания, и просто работать как с еще одним SPI-слейвом?

Заранее благодарен.

Добавлено: Сб ноя 01, 2008 20:02:48
tych
Дорогу осилит идущий. То чтовы написали наверняка будет достатчоно. Просто надо начать конструировать и дело двинется.

Добавлено: Сб ноя 01, 2008 20:29:34
Ra
Разумеется. Просто чтобы не переделывать по сотне раз, решил сначала уточнить у тех, кто с таковым уже сталкивался. Есть куча неприятных вещей о которых мало пишут и которые проявляются только в собранном девайсе а не на бумажках и не в моделях - как то: рассогласования линий связи, неучтенная их индуктивность, помехи по питанию(черт бы их побрал!)... У меня пока, к сожалению, еще не очень много опыта в борьбе именно с такими вещами, когда на бумажке все отлично, а на деле - странные глюки, поэтому решил подстраховаться и заранее узнать о возможных проблемах.

Добавлено: Сб ноя 01, 2008 20:36:21
tych
Ra писал(а):решил подстраховаться и заранее узнать о возможных проблемах.
Это правильно.

Но пока не увидим как и что вы делаете подсказать что-тотрудновато ИМХО.

Добавлено: Сб ноя 01, 2008 20:52:48
Ra
А каких данных нехватает? проблема просто весьма общего плана: есть две платы устройтва на микроконтроллерах (для определенности - на атмеловских мегах, тактирующиеся внешними кварцами). Одна - центральная, в которой реализован весь функционал девайса, вторая - его интерфейс пользователя, в данном случае - сенсорная клавиатура. в корпусе устройства они находятся на небольшом расстоянии, соединены шлейфом, длина которого 5-7 см. Стоит вопрос их сопряжения.
Такое часто может втретится, почти в любых девайсах.

Добавлено: Сб ноя 01, 2008 23:12:47
Aheir
Если у Вас нет особых требований к устройству в плане электромагнитной совместимости и оно не предполагает работу в эпицентре грозового фронта на скоростях десятки Гбит/с, то многие упомянутые Вами эффекты можно в расчет не принимать. А так - можно и свой протокол сочинить последовательный, по паре проводков, а можно и просто МК порт в порт соединить, если настроение есть. Вариантов масса, короче говоря. :)

Добавлено: Сб ноя 01, 2008 23:51:55
Ra
Спасибо за ответы.

Никаких особых требований нет, и если можно будет не изобретать велосипед, а отвести от уже существующей в девайсе шины SPI проводки шлейфом на пару см к сенсорной панельке, то это будет именно то что мне нужно.

Добавлено: Вс ноя 02, 2008 18:29:12
Aheir
Думаю, так и стоит сделать, тем более, что Вы все равно будете разводить этот порт на плате для программирования. Потом цепляете туда шлейф, да и все.

Добавлено: Вс ноя 02, 2008 18:32:26
Ra
Спасибо!
Как раз сейчас экспериментирую с емкостными сенсорами.
До недавних пор считал что их где то покупают =)
Потом увидел статейку где рассказывают как сделать их самому, причем всего то из пластинки фольгированного текстолита - сразу загорелся заменить в девайсе жесткие кнопки на модные сенсоры )

Добавлено: Пн ноя 03, 2008 00:19:57
pavel123
А ссылочку на статейку?? :))

Добавлено: Пн ноя 03, 2008 00:23:50
Ra
Вот работа какого-то китайца http://elm-chan.org/works/capsens/report_e.html, а вот тут немного по-русски сказано на эту тему(там в конце статьи):
http://kazus.ru/articles/44.html

Чего-то пока не получилось =/ Зараза, не отдебагить даже нормально, все что есть из средств вывода инфы - светодиод, и поди пойми - то ли в прошивке дело, то ли аппаратно что-то сбоит...

Re: Сопряжение двух микроконтроллерных систем

Добавлено: Пн ноя 03, 2008 05:46:25
Ватсон
Ra писал(а):Добрый вечер.

Вопрос такого плана: есть некоторый девайс на контроллере (предположительно, на Атмеловской меге 8,16, аль 32).
...

Заранее благодарен.
По-уму делается так: берётся сайпрессовский (cypress) контроллер с функцией Cap-Sense и выполняет всю работу, в 99% случаев его производительности хватает за глаза. Если же производительности его не хватает, с помощью SPI или UART он подключается к хосту (той же атмеге) и отдаёт данные по элементарному протоколу. Вот и всё.

Добавлено: Пн ноя 03, 2008 19:11:24
Aheir
Не, ну если так подходить к вопросу, то таких микросхем дофига. У того же Freescale'a, например.

Добавлено: Пн ноя 03, 2008 19:13:37
Ra
Да не, к чему лишние микрухи... На Атмеле собрал, работают сенсоры.

Добавлено: Пт ноя 21, 2008 17:47:08
day177
программку не подкините?