STM8L–Ток потребления в активном режиме

25 Июля 2011 К комментариям

Сегодня необходимо было сделать (точнее уже выполнить монтаж) опытного образца на базе STM8L152C8, так как плата была полностью чистенькая решил проверить ток потребления микроконтроллера в активном и ждущем режиме.

Активный режим (Run)

Типовые токи потребления при выполнении кода из флеш, согласно документации:

image

Для теста набросал самый простой код:

int main(void)
{
	CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);

	while (1)
	{
	}

	return 0;
}

Так как внешних кварцев на плате у меня нет, буду использовать только встроенный RC-генератор на 16 МГц.

Меняя делитель измерил ток для аналогичных частот:

f_cpu, МГц Idd(run) типовой, мА Idd(run) измеренный, мА
0,125 0,35 0,7
1 0,54 1,0
4 1,16 1,9
8 1,97 3,1
16 3,54 5,3

Странно… Ток потребления выше, чем указан в документации.

Первая мысль может быть включено что-то из периферии.

Иду читать доку. Ни чего не нахожу Печальная рожица

Пробую перевести все линии ввода-вывода на вход, с подтяжкой PullUp.

Получаю результат по лучше:

f_cpu, МГц Idd(run) типовой, мА Idd(run) измеренный, мА
0,125 0,35 0,7
1 0,54 0,9
4 1,16 1,8
8 1,97 2,9
16 3,54 5,1

Думаю дальше…

И понимаю что нужно отключать программатор во время измерения Улыбка

Без программатора:

f_cpu, МГц Idd(run) типовой, мА Idd(run) измеренный, мА
0,125 0,35 0,35
1 0,54 0,65
4 1,16 1,4
8 1,97 2,5
16 3,54 4,7

Вижу что с ростом частоты расхождение больше. Иду курить доку снова…

Ни чего не приходит, поэтому решаю вынести бесконечный цикл в ОЗУ.

И о чудо ток потребления полностью совпадает с приведенным в документации:

image

На ум приходит мысль, возможно из-за цикла конвейер постоянно сбрасывается и идет частое обращение к флеш памяти, а измерения в доке приведены для “средней” программы.

Вставляю 100 “нопов” в цикл.

И провожу измерения:

f_cpu, МГц Idd(run) типовой, мА Idd(run) измеренный, мА
0,125 0,35 0,34
1 0,54 0,43
4 1,16 0,76
8 1,97 1,22
16 3,54 2,23

Интересный результат Улыбка

Далее балуюсь со вставкой различной математики в цикл. На 16 МГц максимальное потребление которое мне удалось получить равно 5,3 мА.

Режим ожидания (Wait)

Тут “чудес” не было, всё как в доке:

image



comments powered by Disqus