SmarTrunk 0 14 июля, 2012 Опубликовано 14 июля, 2012 · Жалоба С одновибратором - это интересное решение. Если у МК нет свободной ноги для выхода CS и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 14 июля, 2012 Опубликовано 14 июля, 2012 · Жалоба а чем софтовый UART не подходит? во времена аврок 1200 делали и даже работало %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SmarTrunk 0 14 июля, 2012 Опубликовано 14 июля, 2012 · Жалоба Но ведь программно реализованный интерфейс загружает МК, а аппаратный передает данные в фоновом режиме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 18 30 июля, 2012 Опубликовано 30 июля, 2012 · Жалоба Во-первых, всем огромное спасибо, что не оставили в беде и обсуждаете - я как раз отлаживал это все по-старинке, но, пока это ни к чему хорошему не привело. У меня две атмеги 328, обе на 16МГц тактовой. Оптокоплер - быстрый, должен до 100МБит тянуть, то есть такт можно по нему посылать, но я так не делал. Данные с посылщика я пока группировал по 16байт. Могу меньше, даже в 8байт с байтовым CRC можно вписаться. Проблемы в том, что 1. посыльщик изредка перезагружается... 2. иногда глючит оптокоплер, наверное его пробивает :( 3. приемник сильно занят другой работой, 4. время отправки посылки тоже очень важно, то есть важно не договориться о том, что посылаем каждую милисекунду, а, что посылщик шлет обычно два раза в милисекунду, но изредка, может послать когда захочет, и приемник должен принять. Пока я делал так, получаю на одну ногу прерывание, дальше по другой ноге софтверный SPI c 4МГц тактовой, все можно уложить в 16мкс, но, для приемника даже 16мкс - очень критично, он не может в произвольный момент остановиться и сказать все, я только слушаю. iiv, я правильно понял, что прибито гвоздями только число линий в интерфейсе, а с платой можно и поиграться? да, у приемника можно хоть все SPI-ные ноги куда-то пристроить. Сильно больше 4-х ног у меня нет, линий - только 2, прибиты гвоздями сквозь толстенную коробку с трансформаторным маслом :( Тогда можно поставить одновибратор с перезапуском (в простейшем случае состоящий из диода+резистора+конденсатора), который пачку импульсов SCK растянет в длинный SS. Если правильно выбрать CPOL/CPHA, всё будет хорошо. Для устранения проблемы байтовой сихронизации достаточно будет гарантировать паузу между байтами больше времени выдержки одновибратора. Можно — между пакетами, внутри пакта все байты пойдут одной пачкой, если успевать кормить SPI на передаче, синхронизм врядли успеет куда-то деться, а успеет — на то CRC. идейно, спасибо, буду пробовать, может получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться