Кот Lancer писал(а):Тогда надо думать, как сделать из ПК осцилограф... у вас случайно проверенной программы и схемы адаптера не завалялось?
Вот архив программы самого простого осциллографа
osc.rar Распакуйте в лубую папку... и наслаждайтесь)))
Вот адаптер для компьютера.
http://www.illari.ru/electro/osc/ Только я делаю проще:

Можно поставить диоды в адаптер... чтобы случайно не спалить звуковую карту... А можно просто два переменных резистора... крутим на 1/3 ... короче чтобы на вход компьютера постыпало не более 2 вольт. Впринципе ничего страшного не будет если подать на вход ПК 5 вольт... но тогда мы не увидем импульсов т.к. при большом сигнале звуковая карта "перегружается"))) Да и не желательно подавать повышенное напряжение на линейный вход... ПК жалко ...
Короче подключили к ПК, подкрутили резисторы и смотрим:
Кот Lancer писал(а):Уже думал - нашел, где собака зарыта; поставил скорость 4800 бод, сократил интервал между пакетами до 3 мс - ничего не изменилось... Начинать уже сотреть, что такое манчестерское кодирование?!))
Вот теперь вы понимаете почему я отказался от идеи передачи UART в чистом виде по
аналоговому радиоканалу...
Расскажу подробней.

Если бы мы использовали
цифровые радиомодули, с обработкой входного/выходного сигнала, то нам не важно как наши пакеты идут по радиоканалу... Закинул байт по UART на TX ... а на RX считали принятый байт.
Но ваши радиомодули
аналоговые. Они работают по принципу обычного FM приёмника... Разница только в том что FM приёмник работает на 88...108 Мгц с девиацией 75 кГц, а ваши модули работают на 433 Мгц с девиацией 35 кГц. Больши они ничем не отличаются )))
Передатчик: собран на обычном синтезаторе 433 Мгц с управляемым опорным кварцевым генератором... Подаём импульсы на опорный генератор... частота опорного генератора меняется... в зависимости от частоты опорного генератора меняется частота на выходе синтезатора (частота синтезатора зависит от частоты опорного генератора)... а далее усилитель и антенна:
Приёмник: обычный супергетеродинный приёмник с одним преобразованием (причём даже ПЧ 10,7 Мгц - такая же как в обычном FM приёмнике)... обычный синтезатор в гетеродине... затем обычный квадратурный детектор... затем обычный компаратор, который усиливает и ограничивает сигнал до 5 V...

Т.е. передавать UART по вашим модулям - это всеравно что передавать UART с помощью обычного "FM жучка" на обычный FM приёмник...

Или с помощью обычной рации с ЧМ.
Поэтому все что пишут про импульсы это правда. При передачи дли-и-и-и-нного импульса появляется постоянная составляющая... и поэтому появляются ошибки... Вот почему я отказался от идеи передавать UART в чистом виде по радиоканалу, а использую манчестер.
Как с этим бороться? Вариантов много.
вариант 1 паузы межлу посылками (байтами) должны быть как можно короче... в идеале bly или два бита... Примерно так:

Но даже это не спасёт ситуацию... так как количество импульсов в одном байте разное... а значит появляется постоянная составляющая и ... ошибки...
вариант 2 передавать манчестером... с помощью UART. Для этого перед тем как передать байт... например 00000000 мы его сначала переводим в манчестер:
00000000 >> 0101010101010101 , где |01| = 0, |10| = 1.
Получаем два байта: 0101010101010101 >> 01010101 и 01010101, затем закидываем поочереди два байта в UDR... получаем примерно такую картину:

В приёмнике делаем обратную операцию: 01010101 и 01010101 >> 0101010101010101 >> 00000000
А чтобы совсем избавится от постоянной составляющей, то делаем паузы между пакетами минимальные... И ещё хорошо чтобы при отсутствии данных, наш радиоканал был заполнен "пустыми" пакетами... передача пакетов идёт непрерывно... тогда вообще никакой постоянной составляющей! )) Всё проходит чётко.
Вот и всё. И никаких постоянных составляющих у нас нет. Я именно так и делаю... только я ещё дополнительно фильтрую шумы.. ошибки и т.д и т.п. .... Но это уже по желанию.
