|
Тактирование в Atmega8A, Использование часового кварца вместе с внутренним RC-генератором |
|
|
|
Oct 18 2010, 07:05
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 5-07-06
Пользователь №: 18 607

|
Устройство - тахометр с ЖКИ. Контроллер должен тактироваться от кварца 32768Гц и находится в режиме Power-save. По таймеру, каждую секунду, должен просыпаться и считать количество отработанных часов. При этом ЖКИ выключен. Но есть проблема - когда нажимаешь на кнопку включается ЖКИ и информация на него должна выводиться быстро. А часового кварца не достаточно. Есть желание включать внутренний RC-генератор и выключать при переходе в режим Power-save. Такое возможно?
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 32)
|
Oct 18 2010, 08:12
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(-=MISHA=- @ Oct 18 2010, 11:05)  А часового кварца не достаточно. Есть желание включать внутренний RC-генератор и выключать при переходе в режим Power-save. Такое возможно? Так и нужно сделать, а часовой кварц (на тех же выводах) использовать для тактирования Timer2. Просыпаться по прерываниям от этого таймера и от кнопки. Но учесть особенности работы Timer2 в асинхронном режиме - из обработчика прерываний нельзя выходить раньше очередного такта генератора (как обходить - подробно описано в даташите). Цитата(Палыч @ Oct 18 2010, 12:06)  Часовой кварц применён с целью: "не заморачиваться" с точностью хода часов? Почему бы не применить кварц на более высокую частоту (не часовой), но предусмотреть калибровку Ваших устройств по точности измерения времени? Человек стремится получить минимальное энергопотребление, и тут даже тактирование от часового кварца не лучший вариант, RC-генератор для того и сделан.
|
|
|
|
|
Oct 18 2010, 08:21
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 5-07-06
Пользователь №: 18 607

|
Цитата(Палыч @ Oct 18 2010, 12:06)  Часовой кварц применён с целью: "не заморачиваться" с точностью хода часов? Почему бы не применить кварц на более высокую частоту (не часовой), но предусмотреть калибровку Ваших устройств по точности измерения времени? Я забыл сказать, что тахометр будет питаться от генератора, который выдает ток до 60мкА. Он будет питать устройство и подзаряжать 3х вольтовую батарею. Если тактировать высокочастотным кварцем, то потребление слишком большое для данного генератора. Цитата(rx3apf @ Oct 18 2010, 12:12)  Так и нужно сделать, а часовой кварц (на тех же выводах) использовать для тактирования Timer2. Просыпаться по прерываниям от этого таймера и от кнопки. Но учесть особенности работы Timer2 в асинхронном режиме - из обработчика прерываний нельзя выходить раньше очередного такта генератора (как обходить - подробно описано в даташите). Как же тогда настроить Atmega? Установить во фьюзах тактирования от внутреннего RC-генератора? В спящем режиме контроллер сам выберет часовой кварц?
|
|
|
|
|
Oct 18 2010, 08:34
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(-=MISHA=- @ Oct 18 2010, 12:21)  Я забыл сказать, что тахометр будет питаться от генератора, который выдает ток до 60мкА. Он будет питать устройство и подзаряжать 3х вольтовую батарею. Если тактировать высокочастотным кварцем, то потребление слишком большое для данного генератора. Кстати, при таком бюджете потребления, если взять "правильный" индикатор, его можно было бы даже не отключать. Цитата Как же тогда настроить Atmega? Установить во фьюзах тактирования от внутреннего RC-генератора? В спящем режиме контроллер сам выберет часовой кварц? Тактирование - RC, Timer2 настроить для работы в асинхронном режиме с внешним кварцем, разрешить прерывания таймера (переполнение или компаратор, как удобнее), прескалер установить тоже как удобнее. В паузах выдавать idle (настроив режим как power save, но не как power down !). Таймер будет продолжать работать, потребляя довольно скромно (даже в первых m8, при питании 3.6V потребление было меньше 10 uA, новые жрут гораздо меньше). По событию просыпаемся, RC-генератор сам включается (мгновенно), и можно делать что угодно. Потом опять idle и так далее...
|
|
|
|
|
Oct 18 2010, 08:36
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 5-07-06
Пользователь №: 18 607

|
Цитата(Палыч @ Oct 18 2010, 12:30)  Например, тактировать от RC-генератора, а Timer2 от часового кварца. Понял. Спасибо всем за помощь! Буду пробовать.
|
|
|
|
|
Oct 19 2010, 11:06
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Народ, мелкий вопрос в тему. Как вы измеряете маленькие токи потребления? У меня связка МК и чип приемопередатчика 433 МГц. МК в пауер-даун потребляет 0,1 мкА, а чип в стендбае потребляет 0,05 мкА. В сумме получается около 0,15 мкА, ну чуть больше, т.к. питание 3В, а не 2.2. Для измерения есть только старенький тестер шлумбергер 7150, но он берёт где-то от 1 мкА. Как быть?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Oct 20 2010, 06:57
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(=GM= @ Oct 19 2010, 19:23)  0,15 мкА* 1 кОм = 0,15 мВ
Усилить? А смещение? Как потом под измерение подвести измерительную базу? Если интересует потребление в статике или среднее - проще всего использовать ионистор. Замерить напряжение в один момент времени, затем через определенный интервал - дальше простая арифметика.
|
|
|
|
|
Oct 21 2010, 03:14
|
Участник

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

|
А почему именно 1 КОм? А если 100 КОм? И еще один момент. RC-генератор построен так, что конденсатор подключен к земле. Если к нему параллельно подключить еще один - будет больше емкость, меньше частота. А коммутировать можно с помощью этой же Меги То есть если нужно помедленнее - перевел ножку на вывод ( например к земле притянул ). Если побыстрее - ножку на ввод и пусть болтается... Вот такая арифметика.
|
|
|
|
|
Oct 21 2010, 09:03
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
На 100 кОм будет падение 15 мВ, можно измерить достаточно точно, но как подключить МК? В первый момент после включения он находится не в слипе, значит потребляет ток, скажем, 0,1 мА, падение на 100 кОм составит 10В, а питать можно только от 5В. Значит, МК не заработает. Куда деваться?
Надеюсь, насчёт конденсатора вы шутите :-). Во-первых, есть 2% ограничение атмела на скорость изменения клока. Подключая конденсатор в некий период времени, вы можете превзойти это ограничение. Во-вторых, атмелы имеют предделитель клока, можно легко получить клок в широком диапазоне, начиная от сотни герц. Кстати, есть определённая процедура смены клока, если вы не в курсе.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Oct 21 2010, 11:12
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

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

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

|
Ну диод Шотки тоже не прост. И может при 15 мВ тоже что-нибудь пропускать. Я бы взял обычный...
|
|
|
|
|
Oct 21 2010, 15:11
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Номер пройдёт, если ток утечки диода много меньше 0,15 мкА и не гуляет в тепле-холоде.
Раз спецы молчат, решил сам что-нибудь придумать. Поставлю-ка 1 кОм и к нему инструментальный усилитель присобачу с Ку=10000. Один наноампер даст 1,5 мВ, 150нА - 1,5В. Вполне можно мерить, к тому же , легко оценить погрешность измерения всех 3-х компонентов: сопротивление, ИУ, милливольтметр.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Oct 21 2010, 16:53
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 16-01-10
Пользователь №: 54 847

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

Группа: Участник
Сообщений: 15
Регистрация: 16-01-10
Пользователь №: 54 847

|
Цитата(ILYAUL @ Oct 22 2010, 00:09)  А прерывания задать 1 раз в час и не надо дёргаться каждую секунду Ну почему один раз в час? Programmable clock output for peripheral devices: 32.768 kHz, 1024 Hz, 32 Hz and 1 Hz
|
|
|
|
|
Oct 21 2010, 18:37
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(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) можно настроить на любое время срабатывания.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Oct 21 2010, 18:44
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 16-01-10
Пользователь №: 54 847

|
Цитата(ILYAUL @ Oct 22 2010, 00:37)  Потому что , "
Я не знаю если в PCF8563 отдельный выход прерывания , сужу по DS1337 в котором этот выход (их там 2) можно настроить на любое время срабатывания. Нога номер 7, програмируемый выход. Так же после спячки можно посмотреть в самой микросхеме сколько времени прошло.
|
|
|
|
|
Oct 22 2010, 04:31
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(sds1 @ Oct 21 2010, 19:53)  Ну поставьте микросхему (часов) например PCF8563, и ток маленький и по прерыванию разбудет процик. Зачем ? В третьем сообщении уже ответили - таймер2 в асинхронном режиме с часовым кварцем. Сам контроллер от внутреннего RC. Зачем лишняя микросхема ?
|
|
|
|
|
Oct 22 2010, 05:42
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(ILYAUL @ Oct 22 2010, 08:26)  Насколько я помню , была почти огромнейшая тема посвящённая сну, внутренним часам , внешним часам и что в итоге выгоднее. Можно поискать в этом же форуме. Согласен - что выгоднее - отдельная тема, но в данном случае вопрос стоял как можно использовать часовой и внутренний РЦ-генератор. Для Меги8А - может, внешний RTC будет и выгоднее по потреблению, но для меги88па - заявлено 0,75мка в спящем режиме с включенными часами.
|
|
|
|
|
Oct 22 2010, 06:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Клим @ Oct 22 2010, 09:42)  Согласен - что выгоднее - отдельная тема, но в данном случае вопрос стоял как можно использовать часовой и внутренний РЦ-генератор. Для Меги8А - может, внешний RTC будет и выгоднее по потреблению, но для меги88па - заявлено 0,75мка в спящем режиме с включенными часами. Задача стоит считать отработанные часы + кнопка, замечу это достаточно большой интервал, что бы вообще связываться с Timer2 в асинхронном режиме и тем более устанавливать на такую задачу mega , хоть и c picorower. Tiny и внешние часы.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Oct 22 2010, 07:56
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

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

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(rx3apf @ Oct 22 2010, 11:56)  60 uA на питание и подзарядку батареи.
Можно. К сокращению потребления это отношения не имеет, правда... Нет , не согласный я Смотрите ,питание от генератора -60 uA. Этот ток расходуется или на питание (пусть будет пока по автору топика) меги или подзаряд батарейки. При нажатии на кнопку - включится и жки - не знаю ни один жк с токами до 60 uA, логично предположить , что тут должна подключится батарея и отдать "накопленную" энергию. А это другие токи. Отсюда логично предположить , что 60 uA = IsleepMega+IchangBat. При рабочем режиме ток значения не имеет. DS1337 1,5uA Standbay
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Oct 22 2010, 09:02
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(ILYAUL @ Oct 22 2010, 12:42)  Нет , не согласный я Смотрите ,питание от генератора -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. Плюс-минус там, но примерно так.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|