Всем доброго дня! Не могу решить возникшую проблему с опросом DHT22 микроконтроллером aTMEGA328P. Краткое описание: имеется самодельная плата с МК ATMEGA328P PU, необходимой обвязкой, внешним кварцем 16мГц, несколькими выводами, к одному из которых (нога №15, pin D9) подключен DHT22 с подтягивающим резистором 10kOm между плюсом и "сигналом". Также подключен NEXTION-дисплей Прошиваю схему через "Arduino as ISP", сначала залив загрузчик, затем - скетч. Все работает идеально. Выключаю питание платы, жду 5 сек., включаю - работает все, кроме DHT22 (показания датчика не обновляются). Делаю RESET кнопкой - DHT22 вновь просыпается и работает нормально. Отключаю питание - включаю питание - DHT опять висит. Reset кнопкой - DHT опять работает. Заливаю этот скетч в фабричную ардуину - все работает бес сбоев. Буду безмерно благодарен всем, кто поможет решить проблему. Заранее спасибо!!!
Зачем так делать? Бинарник либо содержит загрузчик, либо нет. Если загрузчика в бинарнике нет, то после заливки через ISP загрузчик сотрется. Если МК программируется через ISP, к чему тогда заливать загрузчик?
на RESET подтяжка есть, 10kOm; монтаж правильный, сверял неоднократно. Да и другие датчики на этой плате работают нормально, пробовал с разными скетчами.
Когда происходит такая шляпа, я в самом начале программы все интерфейсные пины перевожу на выход. Они прижимаются к земле, тем самым исключается какая-либо возможность наводки на эти линии. Совсем недавно воевал с SI4060 - с подключённым ЛА обмен идёт как надо, отключаю ЛА - трансивер чудит и никак не хочет работать.
Могу предположить только неправильную разводку платы.В соседней теме обсуждали уже.Выставили во фьюзах СКРОТ и заработало. У вас какие фьюзы стоят?Фото платы есть?Лодыря как грузили?Такое авно и на навесном монтаже работает не то что на макетке.Что то Вы темните.
а как пробовал? Вешай на пин ресета конденсатор, чтобы дольше ресет держал. Внешний 10к резистор убери, чтобы емкость у конденсатора не задирать.
Фото платы прикладываю. Лодыря гружу через "Arduino as ISP" в IDE. По фьюзам ничего сказать не могу, так глубоко я в тему пока что не влезал. Темнить не намеревался, мне бы проблему решить...
Вот первое что бросилось а глаза—зачем туда Кварц вынесли? Получился контур с немалой индуктивностью. Неужели нельзя его было прям у ног засандалить? Там и gnd рядом есть шоб кондеры 22 пик повесить?Не ну я просто всегда сам так делаю. Уже думал что это «Отче наш» для всех и каждого. Вообще накосячить с разводкой плат под ардуиноподобные устройства сложно— но можно! Несколько человек в.т.ч и я делаем такие устройства. Так там правило N1 миимально короткие проводники от и до кварца. И вообще минимально короткие проводники. Ну и внешний резет тоже закон!
Я, конечно, попробую переделать плату с учетом рекомендаций по длине дорожек, но не уверен, что моя проблема кроется именно в этом. На этой плате я пробовал множество разных скетчей и тестировал работу разных датчиков. Все работает прекрасно, кроме DHT22. Но, безусловно, соглашусь, что правила соблюдать нужно.
читай даташит на предмет того, при каком напряжении на ресете МК будет находиться в режиме ресета. Затем по стандартной формуле расчета постоянной времени RC цепочки рассчитываешь значение конденсатора. Внутренний резистор ресета есть в даташите. На память он 30-50 кОм. я так подозреваю, что при подаче питания он очень долго раскачивается. А при ресете осциллятор не останавливается. Тут или фьюзами выставлять время на раскачку осциллятора, либо пересаживаться на внутренний RC генератор. Ну или полностью переделывать плату. А я-то думал, что у меня кварц далеко сидит (30 МГц!) А тут он вообще за буйки заброшен))