реклама на сайте
подробности

 
 
> watchdog, atmega88pa
max_mart
сообщение Jul 24 2012, 18:16
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 248
Регистрация: 30-09-11
Пользователь №: 67 474



Всем привет.

Собрал устройство на atmega88pa. Оно находится все время в режиме power-down, просыпается по изменению состояния одной из ножек и по прерыванию от watchdog(WDIE). Работает от 2 батареек типа ААА(напряжение 3В). Но наши современные батарейки полный отстой и хороших найти трудно(с падением тока падает и напряжение). Сначала все работало отлично: при нажатии кнопки, контроллер делал что надо и по прерыванию watchdog(каждые 8S) тоже выполнял свои функции(напряжение было 3В). Но как только напряжение упало до 2.72В watchdog сначало работал, но плохо(мог проснуться и через 8 секунд, а мог и через 1 минуту или вообще заглохнуть), потом напряжение снизилось до 2.7В и все помер!!! Хотя прерывание по кнопкам, как и работало, так и работает без каких либо проблем.
Подскажите, пожалуйста, какая может быть беда с watchdog и как ее преодолеть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SON.OF.STONE
сообщение Jul 26 2012, 11:33
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 26-07-12
Пользователь №: 72 913



1. Попробовать написать пробную программу в которой watchdog работает в режиме сброса и посмотреть, есть ли сброс от него. Скорее всего сброса не будет - у этой серии (atmega*8pa) уже попадались такие "фрукты" причем иногда была неисправность в прескалере(!) сторожевого таймера - сброс не проходил при определенных его значениях. Если сброс проходит - попробовать запустить прерывание от сторожевого таймера и проверить его прохождение. Все манипуляции рекомендуется проделывать при разных питающих напряжениях - от 2.5В до 5В - так можно понять где глюк - в железе (т. е. в чипе) или в софте.
2. Если у вас микроконтроллер работает от внутреннего генератора то наверняка ноги для подключения кварцевого резонатора свободны. Подключите туда часовой кварц (без конденсаторов!) и настройте Timer2 для работы в асинхронном режиме от внешнего кварца. При максимальном значении предделителя (Tosc/1024) прерывание по переполнению таймера будет происходить как раз каждые 8 секунд (только спящий режим надо брать не PowerDown а PowerSave - самый прикол что это получается даже экономичнее чем со сторожевым таймером раза в 4).
3. Еще один способ заставить микроконтроллер просыпаться из PowerDown- это использование внешней RC цепочки (паралельно соединенный танталовый или керамический конденсатор и резистор на пару мегоом). Я так делал на старых AVR (типа ATmega8) у которых небыло асинхронных PCINT'ов и небыло возможности поставить часовой кварц, т. к. использовалось тактирование от кварцевого резонатора. Для этого необходимо подключить RC цепочку к любому свободному входу запроса прерывания INT (для новых микросхем AVR сгодится вообще любой свободный пин любого порта, т. к. у них по всем портам PCINT'ы). Вход запроса прерывания конфигурировать на срабатывание от низкого уровня сигнала (для INT) и настраивать как выход с логической 1. Непосредственно перед уходом в PowerDown перевести этот пин в режим входа с высоким импедансом (DDR*.*=0; PORT*.*=0; -> в такой последовательности чтобы не подсадить конденсатор переключением порта на вывод низкого уровня). Как только конденсатор разрядится до порогового уровня логического нуля - будет сгенерировано прерывание.


Цитата
Очень интересный факт наблюдается. По топотреблению видел, что watchdog работает(просыпался каждые 8 секунд), но только почему-то не управляет светодиодом, должен по флагу включать и выключать его(если флаг=0, то включить; если 1, товыключить). Напряжение от блока питания 3.3В

странно...без флага работает!!!Если просто включать и выключать светодиод через определенное время!!!???


скинь код! Тут скорее всего чисто программная ошибка...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- max_mart   watchdog   Jul 24 2012, 18:16
- - _Артём_   Цитата(max_mart @ Jul 24 2012, 21:16) пот...   Jul 24 2012, 18:34
|- - SmarTrunk   watchdog работает от своего собственного внутренне...   Jul 24 2012, 18:49
- - max_mart   BOD - отключен. Тактирование RC. Без нажатии кноп...   Jul 24 2012, 19:01
|- - _Артём_   А на какой частоте мега работает? Не нарушаются ли...   Jul 24 2012, 19:28
- - max_mart   8 МГц - внутренний RC Speed Grade: – 0 - 4 MHz@1....   Jul 24 2012, 19:39
|- - _Артём_   Цитата(max_mart @ Jul 24 2012, 22:39) Spe...   Jul 24 2012, 19:44
- - max_mart   Спасибо огромное. Но что-то как-то странно в typic...   Jul 24 2012, 19:51
|- - _Артём_   Цитата(max_mart @ Jul 24 2012, 22:51) Ука...   Jul 24 2012, 20:04
- - max_mart   Спасибо огромное!!! Завтра попробую. И...   Jul 24 2012, 20:09
- - max_mart   Попробовал проще: запитал от блока питания на 3.3В...   Jul 26 2012, 09:48
|- - Палыч   Цитата(max_mart @ Jul 26 2012, 13:48) Под...   Jul 26 2012, 10:22
- - max_mart   Очень интересный факт наблюдается. По топотреблени...   Jul 26 2012, 10:42
|- - _Артём_   Цитата(max_mart @ Jul 26 2012, 13:42) стр...   Jul 26 2012, 15:48
- - max_mart   уже все супер!!! Решил!!! ...   Jul 26 2012, 20:17
- - Палыч   Цитата(max_mart @ Jul 27 2012, 00:17) Но ...   Jul 27 2012, 05:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01436 секунд с 7
ELECTRONIX ©2004-2016