Исходные данные
Мега 8515 работает от 3.3В принимает через int0-pd2 сигнал
от цифрового устройства работающего от АА батарейки (1,55В)
Сигнал примерно 40кгц частотой - мега по дефолту 1Мгц
Выставляю MCUCR например на 0b00000010 - прерывание по спаду!
Значит после срабатывания прерывания некоторое время на pd2
уровень должен быть 0! Теперь в обработчике прерывания
первой же инструкцией сохраняю в небольшой буфер друг за дружкой
значения Порта Д и потом их неспешно изучаю на компе!
Так какого же мое удивление когда кроме 0 на pd2
обнаруживаю иногда 1!!!! Это как так - произошел спад с 1 до 0
ноль должен держаться некоторое время а сканирование порта инструкцией PIND
показывает там 1???
Порт меги включен DDR на вход и PortD = 0 вольт и никто в него из программы не пишет 1 - я проверил!
Полтора вольта достаточно чтоб мега считала его 1 (даташит стр 223-233 -
типикал атмега характеристикс и гистерезис)
На проводах ниче не падает - токи микроскопические - сопротивление провода
полома! Помех близких нет! Кондер по питанию 104ый и 220mkf!
Контроллер не ребутиться просто так! Без кварца!
Цифрового осцила нет в хозяйстве!
Поставил транзистор ВС337 для усиления сигнала- 10Ком коллектором на плюс и 15Ком на базу! Еммитер на землю! Не помогло!
Пробовал подтягивать выход устройства 500Ком или 1Мом резистором к плюсу (устройство микромощное - токи микроамперные) - без толку!
Думал помеха пробегает какая - пробовал кондер на землю ставить на 1000пФ - без толку!
Просканировал контроллером поток на предмет самого короткого импульса - более 100 тактов контроллера!
То есть не может сигнал измениться с 0 до 1 за несколько тактов - на это уходят сотни тактов МК
Весь мозг сломал!
Если не разобраться с Этим получается что ингода при подсчете длин импульсов и длин пауз между ними
в буфере иногда обнаруживается два импульса низкого уровня без стоящего между ними высокого импульса! Бред какойто!



