Как всегда - прижало
В этот раз нужно сделать передачу данных с одного МК на другой по радиоканалу (провод не проложить, ИК не пройдет, расстояние около 100 м., 1-2 кирпичные стены).
Для решения проблемы были пущены в ход давно завалявшиеся в закромах модули WL101-341 и WL102-341. Антенки намотал спиралькой проводом 1мм. на оправке 3мм. 21 виток (вычитал в одной статье такие параметры).
Хочу сказать, что шум у них действительно ох*тельный - ловят, наверное, даже электромагнитное излучение американского марсохода
Кодировка следующая: Начало передачи определяется установкой ЛОГ0 в течении 60мс., далее идёт 1 байт синхронизации (8 раз меняем лог уровни каждые 20мс.), далее пачка данных, затем пачка инвертированных данных и завершается все выставлением ЛОГ1 в течении 20мс. (чтоб дать нормально распознать команду начала приема данных).
Данные кодируются следующим образом: если передается ЛОГ0, то в течении 30мс. выставляется ЛОГ0, а затем в течении 20мс. ЛОГ1. Если передаем ЛОГ1, то в течении 30мс. выставляется ЛОГ1, а затем в течении 20мс. ЛОГ0. Сделано так для того, чтоб не задерживаться в одном логическом состоянии на долго (иначе можно получить ложную команду начала приема данных либо превысить максимальную длительность установки одного логического состояния модулями радиосвязи (есть у них такое ограничение)).
Приемником проверяется наличие сигнала начала передачи, правильность прохода синхроимпульсов, соответствие принятых данных принятым инвертированным данным (просто инвертируем инвертированные данные и проверяем соответствие принятым неинвертированным данным
Все было быстро собрано на макетных платах STM32 на рабочем столе. Результат меня обрадовал, но не на долго. Информация на МК передавалась как часы (для моих целей хватает за уши), но только на расстоянии до ~3-ёх метров. Пробовал растягивать антенны - результат нулевой. Затем уменьшил длительность импульсов в 100 раз и ..... приемник затих. Затем увеличил в 10 раз и связь восстановилась, одновременно и ускорился отклик приемника (по началу видно было задержку между нажатием на кнопку начала передачи и загоранием светодиода на приемнике).
Начал грешить на помехи с питания приемника от USB. Подрубил его к двум батарейкам и поставил по керамике на вход питания на каждый модуль - результата нет. Хотел было погрешить на отсутствие кварцев на МК, но потом сообразил, что если приемник принимает сигналы на маленьком расстоянии, то дело не в таймингах, а в самих модулях.
Знает ли кто-нибудь решение данной проблемы? Я с радиосвязью сталкиваюсь впервые, поэтому опыта в наладке таких устройств нет никакого



