Перейти к содержанию
    

Добрый день уважаемые СПЕЦИАЛИСТЫ

 

Поделитесь пожалуйста опытом по связыванью Атмеги32 и батарейки Необходимо чтоб при выключении питания ОЗУ AVR не сбрасывалось или сбрасывалось в случае повреждения (севшая батарейка)

 

Если несложно - пару ссылок с исходниками или дельных советов.

 

Счас собрал схему и написал прогу которая:

 

1. Мерит сигнал свидетельствующий о работе источника (12 вольтовая шина устроцства) с пом. АЦП и усыпляет контроллер если напряжение падает (источник выключаеться).

 

2. Атмега уходит в Павердаун и будиться вочдогом каждые 2 секунды.

 

3. По пробуждению мерим с пом АЦП тот же сигнал Если источник не включен - отдыжаем дальше.

 

Существуют проблеммы:

 

1. Иногда вместо того чтоб уснуть Атмега глючит или делает чтото нетак и потребление резко возрастает.

2. Потребление в слипе - 300 микроампер вместо обещаных <10

3. Предлагат выключать Вочдог - но как тогда будить Атмегу - ваще непонимаю ...

4. Взял Атмегу 32 Л У нее вроде пониже питание Запустил на 8 мегагерц. Стало постабильнее но всеравно иногда (раз на 1000-й) память повреждаеться

 

Думаю я чтото делаю нетак У кого есть опят - очень прошу - поделитесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т. к. вотчдог работает на внутреннем генераторе 1 МГц, то и потребляет поэтому.

 

Я в своих проектах периодически пробуждаю МК либо по прерыванию от внешнего вотчдога (0,5 мкА), либо по прерыванию от асинхронного таймера, но для этого нужен внешний кварц 32768 Гц.

Кроме того, при засыпании желательно поотключать ненужную периферию:

- аналоговый компаратор (источник опорного потребляет);

- АЦП;

- привести выходы в такое состояние, чтобы не было утечки от обесточенной внешней периферии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению внешний поставить немогу

Асинхронный таймер занят другим програмным делом =)

 

Нащет внешних ног и переферии.

 

Пробовал гасить все таимера АЦП UART и Ан. Комп.

 

Сберег 20-30 микроампер.

 

Порты отключаю так

clr Temp

out DDRA, Temp

out DDRB, Temp

out DDRC, Temp

out DDRD, Temp

 

Может нада ещо чтото

 

Хотелось бы скинуть потребление микроампер до 60 -80

 

Нащет схемы - 5 вольт и 3- х вольтовая батарейка развязаны диодами

Ресет микроконтроллра подвязан 3кОм к точке диодов

 

Больше к этой точке ничего неподвязано.

 

В датащите обещали <10 микроампер А я даже 100 немогу.

 

Может гдето бока ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, асинхронный таймер жрёт меньше вочдогового. На м48 в пауэрдаун и внутреннем RC@8МГц, при пробуждении раз в сек и выполнении 1000 циклов, потребление было 7мкА@3-3,6В. Резко потребление растёт при 4В. 7мкА на 3В и около 70-80мка на 4,2В при прочих равных. Во как.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день уважаемые СПЕЦИАЛИСТЫ

Поделитесь пожалуйста опытом по связыванью Атмеги32 и батарейки Необходимо чтоб при выключении питания ОЗУ AVR не сбрасывалось или сбрасывалось в случае повреждения (севшая батарейка)

Для этого используются микропроцессорные супервизоры. Функциональность их очень разнообразна. Посмотрите продукцию (супервизоры) фирмы Maxim, либо другие. Так же в качестве удержания микроконтроллера в рабочем состоянии, после выключения питания, можно использовать ионистор, перед которым включаете диод в разрыв по питанию. Если схема малопотребляющая, не более 1mA, а емкость ионистора 1F энергии его должно хватить не менее чем на четверо суток.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, а нельзя его просто будить внешним прерыванием, от появления

12В (просто через высокомный делитель)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Желательно также отключить fuse-биты:

OCDEN, JTAGEN и BODEN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Порты отключаю так

clr Temp

out DDRA, Temp

out DDRB, Temp

out DDRC, Temp

out DDRD, Temp

Другими словами, переключаете на вход? Тогда наступаете на мои грабли. Проверить бы надо внимательно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Порты отключаю так

clr Temp

out DDRA, Temp

out DDRB, Temp

out DDRC, Temp

out DDRD, Temp

Другими словами, переключаете на вход? Тогда наступаете на мои грабли. Проверить бы надо внимательно...

Совверно. Надо на выход. И пуллапы отключить, если включены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо за ссылку !!!

Счас попробую сконфигурить все что можно на выходы и заземлить ...

 

Всеже нащет входа в СлипМод

 

Остаеться проблемма

Надо бы подумать над програмной и аппаратной реализацией этой штуковины

Ато у АЦП бывают помехи всякие и все такое.

 

Очень нехочиться ставить всякие там Супервизоры и т. п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Счас попробую сконфигурить все что можно на выходы и заземлить ...

 

Ага, в "1" на выход и заземлить. ;О) "Никогда не повторяйте этот трюк дома"

Тут или одно, или другое. Вместе либо опасно, либо смысла нет. Да и ноги потом могут понадобиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо всем за помощь

 

Перестал конфигурить выводы на вход

Оставил то что было по программе

 

Добился потребления в 200 микроампер

 

Есть одна проблемма Похоже последняя

 

Вопросс вот в чем

 

Стал я работать не по АЦП которое мериет 12 вольт а по аналоговому компаратору который сравнивает Батарейку и 5 вольт

 

Засыпать Атмега стала быстрее и вообще все стало намного лучше =)

 

Проблемма в том что когда контроллер усыпает первый раз он потребляет на 50 микроампер больше. А когда полсле сброса по ВД чуть меньше 200

Наверно чтото из переферии остаеться работать.

 

Никто незнает можно ли програмно вызвать в Атмеге сбросс идентичный аппаратному ( с обнулением всех регистров и Т. Д.)

 

Ато искать что мне занулить и занулять лень и тянет быстродействие

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо всем за помощь

 

Перестал конфигурить выводы на вход

Оставил то что было по программе

 

Добился потребления в 200 микроампер

 

Есть одна проблемма Похоже последняя

 

Вопросс вот в чем

 

Стал я работать не по АЦП которое мериет 12 вольт а по аналоговому компаратору который сравнивает Батарейку и 5 вольт

 

Засыпать Атмега стала быстрее и вообще все стало намного лучше =)

 

Проблемма в том что когда контроллер усыпает первый раз он потребляет на 50 микроампер больше. А когда полсле сброса по ВД чуть меньше 200

Наверно чтото из переферии остаеться работать.

 

Никто незнает можно ли програмно вызвать в Атмеге сбросс идентичный аппаратному ( с обнулением всех регистров и Т. Д.)

 

Ато искать что мне занулить и занулять лень и тянет быстродействие

У ATmega32:

– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby

and Extended Standby.

Выберите самый преемлемый для вашего устройства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

To BVU

Давно выбрал режим PowerDown

Толька вот немогу добиться от него < 10 Микроампер как говориться в документации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день уважаемые СПЕЦИАЛИСТЫ

 

Поделитесь пожалуйста опытом по связыванью Атмеги32 и батарейки Необходимо чтоб при выключении питания ОЗУ AVR не сбрасывалось или сбрасывалось в случае повреждения (севшая батарейка)

 

Если несложно - пару ссылок с исходниками или дельных советов.

 

Счас собрал схему и написал прогу которая:

 

1. Мерит сигнал свидетельствующий о работе источника (12 вольтовая шина устроцства) с пом. АЦП и усыпляет контроллер если напряжение падает (источник выключаеться).

 

2. Атмега уходит в Павердаун и будиться вочдогом каждые 2 секунды.

 

3. По пробуждению мерим с пом АЦП тот же сигнал Если источник не включен - отдыжаем дальше.

 

Существуют проблеммы:

 

1. Иногда вместо того чтоб уснуть Атмега глючит или делает чтото нетак и потребление резко возрастает.

2. Потребление в слипе - 300 микроампер вместо обещаных <10

3. Предлагат выключать Вочдог - но как тогда будить Атмегу - ваще непонимаю ...

4. Взял Атмегу 32 Л У нее вроде пониже питание Запустил на 8 мегагерц. Стало постабильнее но всеравно иногда (раз на 1000-й) память повреждаеться

 

Думаю я чтото делаю нетак У кого есть опят - очень прошу - поделитесь

 

 

A не забыл ли ты выключить опорник АЦП (ADMUX=0, ADCSR=0 - в такой последовательности, до этого ацп должен быть включен)?

 

Аналоговый компаратор (ACSR|=(1<<ACD))?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...