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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос по ATmega48V, потребление
H O--O K
сообщение Feb 27 2007, 22:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 10-03-05
Из: город N
Пользователь №: 3 200



Тактирую ATmega48V от часового кварца, питание 5В. Проблема в том, что потребление при данном режиме 750мкА. А по документации должно быть 15 мкА. Утечка через порты (они сконфигурены как входы) или сто-то ещё? Может что-то забыл настроить ещё? Подскажите кто вталкивался с такой проблемой.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Feb 27 2007, 22:44
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



кОМПАРАТОР отключен?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 28 2007, 00:55
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



1) Порты сделай выходами.
2) Питай от 1,8 В. В любом случае не выше 3,6 В.
3) Используй режим Powerdown и Sleep в паузах во время работы порограммы. И вообще посмотри программу, возможно удастся сделать так чтоб он подольше спал. По вочдогу просыпается, делает что надо и опять засыпает.

P.S. Использование низких тактовых частот имеет ряд проблем и оправдано только тогда когда контроллер нельзя отправлять спать, да и то есть внешние прерывания. Одна из проблем связанна с невозможностью генерировать на ногах сигналы таймером с частотами больше Fтактовая / 16. При 32 кГц нельзя использовать АЦП. Fadc не менее 50 кГц... Так что в спячку его...

с учетом вышесказанного тут кое кто добивался 7,8 мкА на меге48.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Feb 28 2007, 03:28
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата
невозможностью генерировать на ногах сигналы таймером с частотами больше Fтактовая / 16.

А где такое написано?
Go to the top of the page
 
+Quote Post
H O--O K
сообщение Feb 28 2007, 07:28
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 10-03-05
Из: город N
Пользователь №: 3 200



Цитата(smk @ Feb 28 2007, 02:55) *
1) Порты сделай выходами.
2) Питай от 1,8 В. В любом случае не выше 3,6 В.
3) Используй режим Powerdown и Sleep в паузах во время работы порограммы. И вообще посмотри программу, возможно удастся сделать так чтоб он подольше спал. По вочдогу просыпается, делает что надо и опять засыпает.

P.S. Использование низких тактовых частот имеет ряд проблем и оправдано только тогда когда контроллер нельзя отправлять спать, да и то есть внешние прерывания. Одна из проблем связанна с невозможностью генерировать на ногах сигналы таймером с частотами больше Fтактовая / 16. При 32 кГц нельзя использовать АЦП. Fadc не менее 50 кГц... Так что в спячку его...

с учетом вышесказанного тут кое кто добивался 7,8 мкА на меге48.


С портами попробую. Питание... что сним делать? В даташите не сказано, что это только при пониженном питании у него на такой частоте потребление 15 мкА. В спячку его нельзя, он постоянно выполняет рабочий цикл. И потом, по тому же даташиту, 15 мкА - это ток потребления в активном режиме. Частота такая выбрана потому, что там не АЦП не нужен, ни скорость высокая. А питания на весь девайс 1 мА.

Сообщение отредактировал H O--O K - Feb 28 2007, 07:30
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 28 2007, 09:22
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
А где такое написано?


Нигде не написано. Просто компилятор компилирует код программы так, что для работы с таймером требуется 16 тактов.
Например:

TCNT0 = 0xF9;
while (1)
{
if (TIFR0 & 0x02)
{

TCNT0 = 0xF9;
TIFR0 = 0x02;
PORTB.0 = !PORTB.0;

}
}

попробуйте кому интересно.

Цитата
В даташите не сказано, что это только при пониженном питании у него на такой частоте потребление 15 мкА.


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


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Dopler
сообщение Feb 28 2007, 09:44
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Совсем недавно эти вопросы обсасывались до костей:
http://electronix.ru/forum/index.php?showtopic=25453&hl=
http://electronix.ru/forum/lofiversion/index.php/t26461.html
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Feb 28 2007, 14:23
Сообщение #8


Частый гость
**

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



smk, спасибо, поржал smile.gif
Мне бы и в голову не пришла мысль именно так генерировать меандр smile.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 28 2007, 14:39
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(CD_Eater @ Feb 28 2007, 15:23) *
smk, спасибо, поржал smile.gif
Мне бы и в голову не пришла мысль именно так генерировать меандр smile.gif


smile.gif

Да. Мне тоже.

Ну мне кажется, что на ЯВЕ будет все 25.

Утечка ч/з порты всётаки копейки. Необходимо переферию лишнюю поодключать и программу перелопатить с целью оптимизации и сна.

В М48, по моему можно от внутреннего RC генератора запустить на 128кГц. Со сном, возможно будет меньше потреблять чем от 32 без сна.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 28 2007, 14:51
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
smk, спасибо, поржал
Мне бы и в голову не пришла мысль именно так генерировать меандр


А как? ШИМ? Не очень то интересно...

Предлагайте... я на звание "супер спеца" не претендую. С удовольствием поучусь.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 28 2007, 15:22
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(H O--O K @ Feb 28 2007, 07:28) *
С портами попробую. Питание... что сним делать? В даташите не сказано, что это только при пониженном питании у него на такой частоте потребление 15 мкА. В спячку его нельзя, он постоянно выполняет рабочий цикл. И потом, по тому же даташиту, 15 мкА - это ток потребления в активном режиме. Частота такая выбрана потому, что там не АЦП не нужен, ни скорость высокая. А питания на весь девайс 1 мА.

Есть еще хороший и удобный вариант - от 32kHz тактировать Timer2 в асинхронном режиме, по прерыванию переполнения просыпаться и работать на встроенном RC. Экономично и нет проблем, когда в каком-то месте нужно иметь более-менее приличную скорость обработки.

Цитата(SasaVitebsk @ Feb 28 2007, 14:39) *
Утечка ч/з порты всётаки копейки. Необходимо переферию лишнюю поодключать и программу перелопатить с целью оптимизации и сна.

В М48, по моему можно от внутреннего RC генератора запустить на 128кГц. Со сном, возможно будет меньше потреблять чем от 32 без сна.

Сотни uA из-за болтающихся входов - легко. Особенно если потребление плавает при поднесении руки.
Go to the top of the page
 
+Quote Post
H O--O K
сообщение Feb 28 2007, 16:31
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 10-03-05
Из: город N
Пользователь №: 3 200



Порты сконфигурил как выходы, после этого потребление с 700мкА уменьшилось до 100 мкА. Отключил таймер, компаратор, контроллер ничё не делает. В этом состоянии потребление 70 мкА... Включение (отключение) DebugWIRE ничего не даёт ни в плюс ни в минус. Многовато всё же 100 мкА... sad.gif
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 28 2007, 16:37
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Да. Мне тоже.

Ну мне кажется, что на ЯВЕ будет все 25.


Да, кстати. 25 и есть.
Так научите как правильно или только смеяться будете?

Цитата
Многовато всё же 100 мкА...


Питание 1,8 В сделай. Поможет.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Feb 28 2007, 17:42
Сообщение #14


Частый гость
**

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата(smk @ Feb 28 2007, 16:37) *
Так научите как правильно или только смеяться будете?
Почитай про режимы работы таймера. Они именно для этого и предназначены. Вообще, даташит - полезнейшая вещь. Если сложности с английским - на гав.ру лежит русское описание меги128 (перевод ДШ), а поскольку все таймеры на разных АВРках похожи как китайцы друг на друга, то описание с незначительными исправлениями подойдёт практически под любой АВР.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 28 2007, 18:25
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Почитай про режимы работы таймера. Они именно для этого и предназначены. Вообще, даташит - полезнейшая вещь. Если сложности с английским - на гав.ру лежит русское описание меги128 (перевод ДШ), а поскольку все таймеры на разных АВРках похожи как китайцы друг на друга, то описание с незначительными исправлениями подойдёт практически под любой АВР.


Конечно почитаю. Но вопрос был в том как делаете Вы и почему считаете что так лучше...


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 28 2007, 18:42
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Кстати, по поводу таймера - это ведь тоже железяка и, при переключении, потребляет относительно нехилый ток, щелкая триггерами smile.gif .

Если в проекте используется какой либо таймер МК (не watchdog)
Если МК тактируется от watchdog-a
Если есть возможность использовать прерывание по переполнению watchdog-a
Если...
Может быть возможно исключить таймер из проекта? Вот smile.gif



Упс... Пардон, пропустил, что МК от часового кварца тактируется...


--------------------
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 28 2007, 18:45
Сообщение #17


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(H O--O K @ Feb 28 2007, 16:31) *
Порты сконфигурил как выходы, после этого потребление с 700мкА уменьшилось до 100 мкА. Отключил таймер, компаратор, контроллер ничё не делает. В этом состоянии потребление 70 мкА... Включение (отключение) DebugWIRE ничего не даёт ни в плюс ни в минус. Многовато всё же 100 мкА... sad.gif

Многовато. Я, правда, никогда не пробовал на столь низких частотах в активном режиме (помню, у 90S были проблемы - они даже в статике без тактирования в активном режиме жрали прилично), а вот в sleep при включенном осцилляторе второго таймера и питании 3.6V у меня жрало меньше 15 uA, при том, что прерывание 16 раз в секунду и опрос датчиков. Без опроса, вроде было 10-12 uA.

Загоняй в sleep, смотри потребление.
Go to the top of the page
 
+Quote Post
Dopler
сообщение Feb 28 2007, 22:07
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Цитата(smk @ Feb 28 2007, 09:22) *
Нигде не написано. Просто компилятор компилирует код программы так, что для работы с таймером требуется 16 тактов.
Например:

TCNT0 = 0xF9;
while (1)
{
if (TIFR0 & 0x02)
{

TCNT0 = 0xF9;
TIFR0 = 0x02;
PORTB.0 = !PORTB.0;

}
}

попробуйте кому интересно.


Да что тут предлагать-то.
1. У mega48 (как и у всех остальных мег) у каждого таймера есть режим CTC (Clear To Compare), при котором счетчик сам обнуляется, когда досчитает до заданного числа (строка TCNT0 = 0xF9; уходит).
2. В этом же режиме можно инвертировать определенные выходы (обычно по два на каждый таймер).

Попробуйте откомпилить приведенный вами код для таймера2, увидите 32 цикла процессора вместо ожидаемых 16 (не точно 32 но точно больше 16), угадайте почему?
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 28 2007, 22:29
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Да что тут предлагать-то.
1. У mega48 (как и у всех остальных мег) у каждого таймера есть режим CTC (Clear To Compare), при котором счетчик сам обнуляется, когда досчитает до заданного числа (строка TCNT0 = 0xF9; уходит).
2. В этом же режиме можно инвертировать определенные выходы (обычно по два на каждый таймер).

Попробуйте откомпилить приведенный вами код для таймера2, увидите 32 цикла процессора вместо ожидаемых 16 (не точно 32 но точно больше 16), угадайте почему?


Все это я знаю и понимаю, но когда нужно генерировать не просто меандр, ка скажем 5 периодов с частотй 1 кГц, а потом вывод сделать высокоимпедансным, то не вижу я иных вариантов... если есть идеи - буду рад пополнить копилку...


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Feb 28 2007, 23:05
Сообщение #20


Частый гость
**

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата
нужно генерировать не просто меандр, а скажем 5 периодов с частотй 1 кГц, а потом вывод сделать высокоимпедансным
таймер генерит меандр, а CPU считает циклы и отключает выход. Если есть второй свободный таймер, то отключить выход первого таймера можно из обработчика прерывания второго (через заранее вычисленное время) - при этом CPU всё время свободен
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 28 2007, 23:09
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(smk @ Feb 28 2007, 23:29) *
Все это я знаю и понимаю, но когда нужно генерировать не просто меандр, ка скажем 5 периодов с частотй 1 кГц, а потом вывод сделать высокоимпедансным, то не вижу я иных вариантов... если есть идеи - буду рад пополнить копилку...


Ну скважность 5 можно и ШИМом получить. smile.gif

Да мы не смеёмся, - мы просто улыбаемся. Беззлобно.
Дело не в том как именно ты делаешь, а дело в том, что по этому поводу сложно делать обобщения и выводы. Так как схемная реализация предполагает чёткий результат, а программная целиком зависит от мастерства автора, применённого компилятора и направления ветра. smile.gif

Мы тут такие варианты наблюдали недавно в преобразовании числа в семисегментный - закачаешься. Всё ч/з If. Более линейной программы я в жизни не видел. Да и светодиодом моргают на пол-листа ч/з раз, - но это же не значит, что я на частоте 32к не смогу им моргать с частотой 1 Гц к примеру.

Некоторые - не смогут, но это не выдержка из даташита. smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 17:19
Рейтинг@Mail.ru


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