Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Тактирование в Atmega8A
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
-=MISHA=-
Устройство - тахометр с ЖКИ.
Контроллер должен тактироваться от кварца 32768Гц и находится в режиме Power-save.
По таймеру, каждую секунду, должен просыпаться и считать количество отработанных часов.
При этом ЖКИ выключен.
Но есть проблема - когда нажимаешь на кнопку включается ЖКИ
и информация на него должна выводиться быстро. А часового кварца не достаточно.
Есть желание включать внутренний RC-генератор и выключать при переходе в режим Power-save.
Такое возможно?



Палыч
Цитата(-=MISHA=- @ Oct 18 2010, 11:05) *
Контроллер должен тактироваться от кварца 32768Гц .... А часового кварца не достаточно.
Часовой кварц применён с целью: "не заморачиваться" с точностью хода часов? Почему бы не применить кварц на более высокую частоту (не часовой), но предусмотреть калибровку Ваших устройств по точности измерения времени?
rx3apf
Цитата(-=MISHA=- @ Oct 18 2010, 11:05) *
А часового кварца не достаточно.
Есть желание включать внутренний RC-генератор и выключать при переходе в режим Power-save.
Такое возможно?

Так и нужно сделать, а часовой кварц (на тех же выводах) использовать для тактирования Timer2. Просыпаться по прерываниям от этого таймера и от кнопки. Но учесть особенности работы Timer2 в асинхронном режиме - из обработчика прерываний нельзя выходить раньше очередного такта генератора (как обходить - подробно описано в даташите).

Цитата(Палыч @ Oct 18 2010, 12:06) *
Часовой кварц применён с целью: "не заморачиваться" с точностью хода часов? Почему бы не применить кварц на более высокую частоту (не часовой), но предусмотреть калибровку Ваших устройств по точности измерения времени?

Человек стремится получить минимальное энергопотребление, и тут даже тактирование от часового кварца не лучший вариант, RC-генератор для того и сделан.
-=MISHA=-
Цитата(Палыч @ Oct 18 2010, 12:06) *
Часовой кварц применён с целью: "не заморачиваться" с точностью хода часов? Почему бы не применить кварц на более высокую частоту (не часовой), но предусмотреть калибровку Ваших устройств по точности измерения времени?

Я забыл сказать, что тахометр будет питаться от генератора, который выдает ток до 60мкА.
Он будет питать устройство и подзаряжать 3х вольтовую батарею.
Если тактировать высокочастотным кварцем, то потребление слишком большое для данного генератора.


Цитата(rx3apf @ Oct 18 2010, 12:12) *
Так и нужно сделать, а часовой кварц (на тех же выводах) использовать для тактирования Timer2. Просыпаться по прерываниям от этого таймера и от кнопки. Но учесть особенности работы Timer2 в асинхронном режиме - из обработчика прерываний нельзя выходить раньше очередного такта генератора (как обходить - подробно описано в даташите).

Как же тогда настроить Atmega? Установить во фьюзах тактирования от внутреннего RC-генератора? В спящем режиме контроллер сам выберет часовой кварц?
Палыч
Цитата(-=MISHA=- @ Oct 18 2010, 12:21) *
Как же тогда настроить Atmega? Установить во фьюзах тактирования от внутреннего RC-генератора? В спящем режиме контроллер сам выберет часовой кварц?
Например, тактировать от RC-генератора, а Timer2 от часового кварца.
rx3apf
Цитата(-=MISHA=- @ Oct 18 2010, 12:21) *
Я забыл сказать, что тахометр будет питаться от генератора, который выдает ток до 60мкА.
Он будет питать устройство и подзаряжать 3х вольтовую батарею.
Если тактировать высокочастотным кварцем, то потребление слишком большое для данного генератора.

Кстати, при таком бюджете потребления, если взять "правильный" индикатор, его можно было бы даже не отключать.


Цитата
Как же тогда настроить Atmega? Установить во фьюзах тактирования от внутреннего RC-генератора? В спящем режиме контроллер сам выберет часовой кварц?

Тактирование - RC, Timer2 настроить для работы в асинхронном режиме с внешним кварцем, разрешить прерывания таймера (переполнение или компаратор, как удобнее), прескалер установить тоже как удобнее. В паузах выдавать idle (настроив режим как power save, но не как power down !). Таймер будет продолжать работать, потребляя довольно скромно (даже в первых m8, при питании 3.6V потребление было меньше 10 uA, новые жрут гораздо меньше). По событию просыпаемся, RC-генератор сам включается (мгновенно), и можно делать что угодно. Потом опять idle и так далее...
-=MISHA=-
Цитата(Палыч @ Oct 18 2010, 12:30) *
Например, тактировать от RC-генератора, а Timer2 от часового кварца.

Понял. Спасибо всем за помощь! Буду пробовать.
ArtemKAD
Цитата
Потом опять idle и так далее...

Только не idle, а SLEEP... А так все остальное примерно правильно. Единственное 10мкА это при отключенном BOR-е т.к. он жрет явно больше... В новых чипах (с индексом Р или РА) BOR может отключаться автоматом при входе в SLEEP.
rx3apf
Цитата(ArtemKAD @ Oct 18 2010, 18:54) *
Только не idle, а SLEEP...

А, ну да, что-то задумался. Команда sleep, разумеется. И да, BOR и WDT жрут...
=GM=
Народ, мелкий вопрос в тему. Как вы измеряете маленькие токи потребления? У меня связка МК и чип приемопередатчика 433 МГц. МК в пауер-даун потребляет 0,1 мкА, а чип в стендбае потребляет 0,05 мкА. В сумме получается около 0,15 мкА, ну чуть больше, т.к. питание 3В, а не 2.2. Для измерения есть только старенький тестер шлумбергер 7150, но он берёт где-то от 1 мкА. Как быть?
demiurg_spb
Цитата(=GM= @ Oct 19 2010, 15:06) *
Как быть?
Можно шунт последовательно вкрячить и на нём падение напряжения измерять...
=GM=
0,15 мкА* 1 кОм = 0,15 мВ

Усилить? А смещение? Как потом под измерение подвести измерительную базу?
Клим
Цитата(=GM= @ Oct 19 2010, 19:23) *
0,15 мкА* 1 кОм = 0,15 мВ

Усилить? А смещение? Как потом под измерение подвести измерительную базу?

Если интересует потребление в статике или среднее - проще всего использовать ионистор. Замерить напряжение в один момент времени, затем через определенный интервал - дальше простая арифметика.
KKV2003
А почему именно 1 КОм? А если 100 КОм?

И еще один момент. RC-генератор построен так, что конденсатор подключен к земле. Если к нему параллельно подключить еще один - будет больше емкость, меньше частота. А коммутировать можно с помощью этой же Меги rolleyes.gif

То есть если нужно помедленнее - перевел ножку на вывод ( например к земле притянул ). Если побыстрее - ножку на ввод и пусть болтается...

Вот такая арифметика.
=GM=
На 100 кОм будет падение 15 мВ, можно измерить достаточно точно, но как подключить МК? В первый момент после включения он находится не в слипе, значит потребляет ток, скажем, 0,1 мА, падение на 100 кОм составит 10В, а питать можно только от 5В. Значит, МК не заработает. Куда деваться?

Надеюсь, насчёт конденсатора вы шутите :-). Во-первых, есть 2% ограничение атмела на скорость изменения клока. Подключая конденсатор в некий период времени, вы можете превзойти это ограничение. Во-вторых, атмелы имеют предделитель клока, можно легко получить клок в широком диапазоне, начиная от сотни герц. Кстати, есть определённая процедура смены клока, если вы не в курсе.
ae_
Цитата(=GM= @ Oct 21 2010, 18:03) *
На 100 кОм будет падение 15 мВ, можно измерить достаточно точно, но как подключить МК? В первый момент после включения он находится не в слипе, значит потребляет ток, скажем, 0,1 мА, падение на 100 кОм составит 10В, а питать можно только от 5В. Значит, МК не заработает. Куда деваться?

Зашунтировать токо-измерительный резистор диодом Шоттки в прямом направлении, тогда при старте падение на резисторе не превысит 200мВ, а когда МК уйдёт в sleep, диод не будет оказывать влияния на измерения.
KKV2003
Ну диод Шотки тоже не прост. И может при 15 мВ тоже что-нибудь пропускать. Я бы взял обычный...
=GM=
Номер пройдёт, если ток утечки диода много меньше 0,15 мкА и не гуляет в тепле-холоде.

Раз спецы молчат, решил сам что-нибудь придумать. Поставлю-ка 1 кОм и к нему инструментальный усилитель присобачу с Ку=10000. Один наноампер даст 1,5 мВ, 150нА - 1,5В. Вполне можно мерить, к тому же , легко оценить погрешность измерения всех 3-х компонентов: сопротивление, ИУ, милливольтметр.
sds1
Цитата(-=MISHA=- @ Oct 18 2010, 13:05) *
Устройство - тахометр с ЖКИ.
Контроллер должен тактироваться от кварца 32768Гц и находится в режиме Power-save.
По таймеру, каждую секунду, должен просыпаться и считать количество отработанных часов.
При этом ЖКИ выключен.
Но есть проблема - когда нажимаешь на кнопку включается ЖКИ
и информация на него должна выводиться быстро. А часового кварца не достаточно.
Есть желание включать внутренний RC-генератор и выключать при переходе в режим Power-save.
Такое возможно?




Ну поставьте микросхему (часов) например PCF8563, и ток маленький и по прерыванию разбудет процик.
ILYAUL
Цитата(sds1 @ Oct 21 2010, 20:53) *
Ну поставьте микросхему (часов) например PCF8563, и ток маленький и по прерыванию разбудет процик.

А прерывания задать 1 раз в час и не надо дёргаться каждую секунду
sds1
Цитата(ILYAUL @ Oct 22 2010, 00:09) *
А прерывания задать 1 раз в час и не надо дёргаться каждую секунду



Ну почему один раз в час?
Programmable clock output for peripheral devices: 32.768 kHz, 1024 Hz,
32 Hz and 1 Hz
ILYAUL
Цитата(sds1 @ Oct 21 2010, 22:29) *
Ну почему один раз в час?
Programmable clock output for peripheral devices: 32.768 kHz, 1024 Hz,
32 Hz and 1 Hz

Потому что , "
Цитата
просыпаться и считать количество отработанных часов


Я не знаю если в PCF8563 отдельный выход прерывания , сужу по DS1337 в котором этот выход (их там 2) можно настроить на любое время срабатывания.
sds1
Цитата(ILYAUL @ Oct 22 2010, 00:37) *
Потому что , "

Я не знаю если в PCF8563 отдельный выход прерывания , сужу по DS1337 в котором этот выход (их там 2) можно настроить на любое время срабатывания.



Нога номер 7, програмируемый выход.
Так же после спячки можно посмотреть в самой микросхеме сколько времени прошло.
Клим
Цитата(sds1 @ Oct 21 2010, 19:53) *
Ну поставьте микросхему (часов) например PCF8563, и ток маленький и по прерыванию разбудет процик.

Зачем ?
В третьем сообщении уже ответили - таймер2 в асинхронном режиме с часовым кварцем. Сам контроллер от внутреннего RC. Зачем лишняя микросхема ?
ILYAUL
Цитата(Клим @ Oct 22 2010, 08:31) *
Зачем ?
В третьем сообщении уже ответили - таймер2 в асинхронном режиме с часовым кварцем. Сам контроллер от внутреннего RC. Зачем лишняя микросхема ?

Насколько я помню , была почти огромнейшая тема посвящённая сну, внутренним часам , внешним часам и что в итоге выгоднее. Можно поискать в этом же форуме.
Клим
Цитата(ILYAUL @ Oct 22 2010, 08:26) *
Насколько я помню , была почти огромнейшая тема посвящённая сну, внутренним часам , внешним часам и что в итоге выгоднее. Можно поискать в этом же форуме.

Согласен - что выгоднее - отдельная тема, но в данном случае вопрос стоял как можно использовать часовой и внутренний РЦ-генератор.
Для Меги8А - может, внешний RTC будет и выгоднее по потреблению, но для меги88па - заявлено 0,75мка в спящем режиме с включенными часами.
ILYAUL
Цитата(Клим @ Oct 22 2010, 09:42) *
Согласен - что выгоднее - отдельная тема, но в данном случае вопрос стоял как можно использовать часовой и внутренний РЦ-генератор.
Для Меги8А - может, внешний RTC будет и выгоднее по потреблению, но для меги88па - заявлено 0,75мка в спящем режиме с включенными часами.

Задача стоит считать отработанные часы + кнопка, замечу это достаточно большой интервал, что бы вообще связываться с Timer2 в асинхронном режиме и тем более устанавливать на такую задачу mega , хоть и c picorower. Tiny и внешние часы.
rx3apf
Цитата(ILYAUL @ Oct 22 2010, 10:00) *
Задача стоит считать отработанные часы + кнопка, замечу это достаточно большой интервал, что бы вообще связываться с Timer2 в асинхронном режиме и тем более устанавливать на такую задачу mega , хоть и c picorower. Tiny и внешние часы.

При озвученном бюджете потребления можно даже и старыми, относительно прожорливыми по генератору, кристаллами обойтись. Младшие меги будут дешевле, чем tiny с внешним RTC (который сам по себе типично стоит дороже M8).
ILYAUL
Цитата(rx3apf @ Oct 22 2010, 11:32) *
При озвученном бюджете потребления можно даже и старыми, относительно прожорливыми по генератору, кристаллами обойтись. Младшие меги будут дешевле, чем tiny с внешним RTC (который сам по себе типично стоит дороже M8).

Честно говря просмотрел всё ёщё раз , но бюджет не нашёл. Или Вы что-то другое имели под бюджетом.
Кстати и ЖКИ можно с I2C применить , что существенно сократит затраты на написание кода и ножек.
rx3apf
Цитата(ILYAUL @ Oct 22 2010, 11:52) *
Честно говря просмотрел всё ёщё раз , но бюджет не нашёл.

60 uA на питание и подзарядку батареи.
Цитата
Кстати и ЖКИ можно с I2C применить , что существенно сократит затраты на написание кода и ножек.

Можно. К сокращению потребления это отношения не имеет, правда...
ILYAUL
Цитата(rx3apf @ Oct 22 2010, 11:56) *
60 uA на питание и подзарядку батареи.

Можно. К сокращению потребления это отношения не имеет, правда...

Нет , не согласный я biggrin.gif
Смотрите ,питание от генератора -60 uA. Этот ток расходуется или на питание (пусть будет пока по автору топика) меги или подзаряд батарейки.
При нажатии на кнопку - включится и жки - не знаю ни один жк с токами до 60 uA, логично предположить , что тут должна подключится батарея и отдать "накопленную" энергию.
А это другие токи. Отсюда логично предположить , что 60 uA = IsleepMega+IchangBat. При рабочем режиме ток значения не имеет.
DS1337 1,5uA Standbay
rx3apf
Цитата(ILYAUL @ Oct 22 2010, 12:42) *
Нет , не согласный я biggrin.gif
Смотрите ,питание от генератора -60 uA. Этот ток расходуется или на питание (пусть будет пока по автору топика) меги или подзаряд батарейки.
При нажатии на кнопку - включится и жки - не знаю ни один жк с токами до 60 uA,

Сегментные TICxxx - до 50 uA, реально ~25 uA@3.6V. Если взять индикатор с внешним тактированием - то в активном режиме 1 uA. Можно даже не отключать.

Цитата
логично предположить , что тут должна подключится батарея и отдать "накопленную" энергию.
А это другие токи. Отсюда логично предположить , что 60 uA = IsleepMega+IchangBat. При рабочем режиме ток значения не имеет.
DS1337 1,5uA Standbay

M8 без буквы (старая, довольно прожорливая по генератору Timer2) жрала у меня около 10 uA при прерываниях 16 раз в секунду и опросе внешних датчиков. Да, больше, чем специализированный RTC. Но и стоит этот RTC столько же, сколько M8 или M48. Плюс-минус там, но примерно так.
ILYAUL
Сдаюсь. Убедили.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.