Вопрос по ИК-модему для Serial (вечный байт 255)

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Приветствую, all.

Это, как вы можете видеть, стандартный вариант генератора на 555 по примеру "astable mode" из "калькулятора 555", подогнанный на следующие параметры:

- duty как можно ближе к 50%

- сделать как можно ближе к 38 кГц, исходя из того что у меня конденсаторы только 1.8 нФ и 0.1 мкФ.

Самовольное изменение схемы: конденсатор на выводе 5 не 10 нФ а 100 нФ, т. к. другого у меня не было. Влияет?

Отличия от "astable mode":

- управление по 4 выводу (активная единица). И т. к. арда держит линии сериала в состоянии HIGH, полагаю что там логика активный ноль, поэтому по входу инвертор.

На той стороне просто интегральный приёмник (VS1838, резистор, конденсатор по питанию). Если почитать ДШ, то видно что у приёмника ОК N-типа, то есть активный ноль, поэтому выход идёт просто в Rx.

Отличия от Serial:

- воткнуто в A1, A0 как SoftwareSerial. Системным требованиям соответствует (на обоих проводах есть в пинмапе надпись PCINT).

Жалобы:

1. Приняв единичную посылку, сериал приёмника сходит с ума и начинает вечно повторять последний принятый байт, приходится флушить сериал.

2. Любой посланный байт читается как 255, но количество байтов никогда не читается неправильно. Посылаю один - приходит чётко один, из чего заключаю что проблема не в передатчике. Итак, чем же оно с#ка больное? Какое у него заболевание?

Работает одинаково, пробовались скорости 2400, 1200, 600. Одинаково.

Оригинальная статья: http://forum.arduino.cc/index.php?topic=10555.0 (Хочу сделать внешний генератор чтобы не трогать настройки T2. Проект готовится для управления контроллером TLC5940, в котором все таймеры будут забиты под завязку, так что отводить T2 под какую-то несущую 38 кГц я не хочу.)

SLKH
Offline
Зарегистрирован: 17.08.2015

1. временно отодвинуть всё народное творчество и соединить выход мк-передатчика со входом мк-приемника проводом - проверить программное обеспечение.

2. подавать на базу Q1 постоянные ноли или единицы. убедиться, что в статике сигналы на входе генератора и выходе IR-приемника совпадают.

3. посмотреть осциллографом, что творится на выходе TSOP при приеме на разных скоростях.

4. тогда не знаю.  

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Спасибо за ответ, попробую.

Но пока что 1 - порядок, 2 - порядок, 3 - нет возможности.

На данный момент буду двигаться в сторону покупки хотя-бы простецкого лог. анализатора с Али...

SLKH
Offline
Зарегистрирован: 17.08.2015

Voodoo Doll пишет:

Спасибо за ответ, попробую.

Но пока что 1 - порядок, 2 - порядок, 3 - нет возможности.

На данный момент буду двигаться в сторону покупки хотя-бы простецкого лог. анализатора с Али...

двухлучевой осциллограф сразу дал бы кучу информации, анализатор тоже.

 

есть у мя некоторые предположения:

- частота генератора не 38, TSOP при получении пакетов не успевает срабатывать даже на 600, хотя по мануалу вроде бы должен. Стоит попробовать 300 бод.

 

Что ещё можно придумать?

- слепить на ардуине простой программный частотомер и отладить генератор. 

- функцию tone() несложно допилить, чтобы она выдавала пакеты длиной сколько надо микросекунд - подать на светодиод пакеты разной длительности, посмотреть, какие проходят.