Необходимо:
1. Убедиться в наличии питания на соответствующем выводе ИК приёмника.
2. Проверить осциллографом наличие пачек импульсов на выходе ИК приёмника
при нажатии на кнопку пульта ДУ.
В отсутствии ИК посылок на выходе ИК приёмника должно присутствовать
постоянное напряжение 5В. 1 раз в секунду должна наблюдаться короткая пачка
инверсных импульсов - загрузка данных в LCD (выход ИК приёмника запараллелен
со входом DI индикатора).
При нажатии на кнопку пульта на выходе ИК приёмника должна наблюдатся пачка
инверсных прямоугольных импульсов общей длительностью около 50 мс и
амплитудой 5В. При удержании кнопки должны наблюдатся импульсы "повтора" с
периодом 110 мс и длительностью около 10мс.
Если импульсы с ИК приёмника поступают на вход МК, а устройство не реагирует
на пульт, то существует очень маленькая вероятность того, что тактовая
частота внутреннего RC генератора конкретного экземпляра МК сильно
отличается от 4.8 МГц. Я проверял прошивку на нескольких экземплярах МК в
корпусах SOT8 и DIP с разными пультами и добился надёжного декодирования при
значительном разбросе длительностей кодовых импульсов.
Во вложении (RC_Samp-TIC5231_3W_v2.zip) находится тестовая прошивка, с
помощью которой я настраивал подпрограмму декодирования ИК посылок.
При включении устройства на короткое время появляется заставка "tSt.rc",
затем экран очищается и тестер переходи в режим ожидания ИК посылок.
Программа измеряет длительности пар Импульс/Пауза и отображает их на
дисплее. Измерение и отображение реализовано в режиме «стробирования». При
первом нажатии на кнопку пульта отображаются длительности первой пары, при
втором – второй пары и т.д. После определения паузы большей 13.5 ms
(переполнение регистра таймера) измерение начинается снова с первого
импульса.
На рисунке (RC_Samp-Display.gif) представлены типичные значения для
стартового импульса пульта, работающего по протоколу NEC. Все цифры
отображаются в шестнадцатеричном виде. Расшифруем: номер импульса – 1,
длительность импульса – $A9 (169) тактов таймера, длительность паузы – $52
(82) тактов таймера. Период измерительного таймера равен 53.3 мкс , поэтому
длительность импульса равна 169*53.3 мкс = 9,008 мс, а паузы – 82*53,3 мкс =
4,37 мс. Надо иметь в виду, что самое старшее знакоместо индикатора TIC5231
может отображать только единицу, поэтому корректно отображаются номера
импульсов до 31 ($1F). После этого отображение номера импульса начинается с
нуля (32-ой импульс) по «второму кругу».
Для того чтобы начать измерение с первого импульса, не «прокручивая» всю
последовательность, надо удерживать кнопку пульта до тех пор пока не
отобразиться пауза длительностью FF, после чего сразу отпустить кнопку.
Счётчик импульсов обнулится и после следующего нажатия на кнопку пульта на
дисплее отобразятся длительности первой пары И/П.
Если длительность первого (стартового) импульса и первой паузы получились
больше чем $A0 и $40 тактов таймера, то посылка декодируется нормально. Если
меньше, то значит частота внутреннего RC генератора конкретного экземпляра
МК сильно отличается от 4.8 МГц в меньшую сторону. МК лучше заменить. Можно
скорректировать константы сравнения в исходном тексте прошивки. Но для этого
мне нужны результаты измерений, полученные с помощью вышеописанного тестера.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4