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

 
 
> STM32F4, Динамическое изменение частоты ядра, Можно ли так делать?
Integro
сообщение Jan 19 2015, 14:47
Сообщение #1


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

Группа: Свой
Сообщений: 167
Регистрация: 25-12-09
Из: Минск
Пользователь №: 54 460



Всем привет,
Задача: добится минимального потребления, одна из идей смена частоты проца в засимости от режима работы.
Возможно ли это? Пробовал кто нибуть подобное? Если да, и это возможно, на какие грабли могу наступить? Детерминировано ли время настройки клоков? Я так понимаю придется дожидаться завершения всех транзакций передачи данных (I2C, SPI, DMA и тд) и перенастраивать переферию с учетом новых клоков?
Поправте меня если в чемто ошибаюсь.

P.S
Проц спать тоже будет, но и нужен режим когда нужно обеспечить какойто минимальный обмен.

Сообщение отредактировал Integro - Jan 19 2015, 15:08
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 25)
Aner
сообщение Jan 20 2015, 10:18
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (Golikov A. @ Jan 20 2015, 13:46) *
Не обосновано грубо и ровно также не верно.
Сертификацию на что? На взрывозащиту? Гигиенический сертификат? По каким параметрам она не пройдет? Вот про сертификацию как раз лажа...

лажа...пока у вас в сообщении. Похоже на то, что ничего не знаете о сертификации программного подукта и программ.
Начните с этого: http://www.nspru.ru/sertsoftware/ ... и далее.

QUOTE (SasaVitebsk @ Jan 20 2015, 14:08) *
Я что-то с сертификацией тоже не понял. О чём речь? Например у меня сертификация средств измерения. Я и не думал никого в известность ставить как там мой процессор работает. Спит он или нет, за сколько времени просыпается. Главное чтобы прибор соответствовал своему описанию и обеспечивал измерения с заданной точностью, а также вычисления с заданной регулярностью и так далее.

Да я смотрю, что вы новичёк в этой софтверной сертификации. Для вас главное чтобы прибор. Ан нет, еще и сертификацию проги загружаемой нужно пройти и доказать много чего ещё.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 20 2015, 10:53
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Да я смотрю, что вы новичёк в этой софтверной сертификации.

А вы видать гуро... сколько ТУ на сертификацию написали или так краем уха слышали sm.gif ?

смешно ей богу, сертифицировать можно что угодно, можно сказать что ваш прибор весит не больше 1 кг, и получить на это сертификат, и как тут программа сработает?

А в сертификации средств измерения кроме точности надо доказывать защищенность от внесения изменения в программу и калибровочные коэффициенты, но никоем образом не показывает алгоритм ее работы в сфере энергопотребления.

Естественно если вы заявите в свойствах прибора что он перейдя на высокую частоту работы никогда не перейдет на низкую, такой сертификат с такой программой не получить. Так что тему сертификации предлагаю оставить, пока совсем на личности не перешли.


По теме сообщения-------------------
Можно проц запустить полноценно работающим на низкой частоте (полноценно для данного режима энергопотребления)? - можно
Можно запустит на высокой - можно

Что теперь если проц грузиться всегда на низкой, а по команде переходить на высокую? тогда можно для перехода с высокой на низкую - просто вызывать сброс проца. И все будет славненько работать, без каких либо недерменированостей.

А процедуру ресета можно и руками провести, переведя все регистры в начальное состояние.

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

Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 20 2015, 14:03
Сообщение #18


Гуру
******

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



Цитата(Golikov A. @ Jan 20 2015, 13:53) *
А в сертификации средств измерения кроме точности надо доказывать защищенность от внесения изменения в программу и калибровочные коэффициенты, но никоем образом не показывает алгоритм ее работы в сфере энергопотребления.

Более того. Я ввожу понятие "Метрологически значимая часть ПО". Далее, в приборе, вывожу две контрольные суммы на метрологически значимую и полную. И, в целом, это позволяет мне обновлять ПО.
Но если глубоко копать, то всё это бред, которого просто море .... Наши и Ваши чиновники пытаются взять контроль над всем миром. Да документ позволяет многое, в том числе и "экспертный анализ" исходников ... Можно этот документ, как саблю, поднять над головой и размахивать. А можно сходить в нужник и пустить его по назначению. Там ему и место.
Моё глубокое убеждение, что качество продукта обеспечивает ТОЛЬКО производитель. И сертификат чистейшей воды фикция.
Ну не работает у тебя прибор. Ты куда в орган выдавший сертификат пойдёшь?
Или ещё один пример.
Вот крыша в Трансвааль парке обрушилась... Вот тебе лицензии на строительные работы, вот сертификаты на стройматериалы, вот проект завизированный главным архитектором. И что? Кто виноват? К кому обращаться? В цивилизованном обществе надо было судится со строительной организацией. А уж она там пускай разбирается, или проект плохо сделали, или металл некачественный поставили или дядя Петя неквалифицированно кладку положил. Условно говоря.
Вы когда на BMW садитесь, за сертификат не беспокоитесь. И так во всём!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 20 2015, 14:14
Сообщение #19


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(SasaVitebsk @ Jan 20 2015, 17:03) *
Вот крыша в Трансвааль парке обрушилась... В цивилизованном обществе ...

В цивилизованном мире крыши тоже рушатся. По Дискавери показывали. И причины те же - неправильно рассчитали, не те материалы применили, и т.д.
Если сертификация программ хоть немного улучшит положение с плохо взлетающими космическими аппаратами, то пусть будет.
Я плохо представляю критерии, по которым будут оценивать программу. Точнее, качество оценок по этим критериям.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 20 2015, 16:43
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Jan 20 2015, 13:15) *
Чем вызван такой интересный подход? Часто нужно как можно меньше. Чем меньше получится - тем лучше.

Тем, что всё чего-то стОит. Как правило: чем больше нужно получить эффект, тем больше нужно потратить усилий.
Внесение поддержки WFI/WFE даёт сколько-то процентов (скажем 20%) экономии энергии и сколько-то (немного)
усилий нужно потратить чтобы эту поддержку реализовать в фоновой задаче.
Алгоритм работы с каждым модулем периферии с отключением его в периоды бездействия - тоже траты на соотв.
организацию алгоритма, перепрограммирование периферии и т.п. Без этого ведь программа будет проще.
Ещё более глубокая экономия с использованием режимов всё более глубокого сна - всё больше и больше усилий и времени на разработку и отладку.
Go to the top of the page
 
+Quote Post
kan35
сообщение Jan 20 2015, 16:49
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



У меня для одного изделия быстродействия особо большого не требовалось, STM32F2 работал на 4МГц, но подключаясь к USB надо было разгоняться до 16МГц (иначе USB не работает). Никакие PLL не перенастраивал. Играл только делителями. Главное, чтобы не нарушать скорости USART, I2C, SPI - поддерживать частоты на шинах постоянными. В данном случае APB1 и APB2 держал на 4МГц.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 20 2015, 17:06
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Aner @ Jan 20 2015, 15:41) *
Как это маленькое снижение потребления, еще какое большое. Думать то надо со 180Мгц в ноль. Сколько это по вашему маленькое?

Что - в ноль? Частота CPU? После выполнения команд WFI/WFE?
Не порите чушь!
После выполнения WFI/WFE частота CPU никак не изменяется. Останавливается только ядро. Всё остальное продолжает работать на той-же частоте.
И снижение потребления по моим наблюдениям на LPC17xx порядка 20%.

Цитата(Aner @ Jan 20 2015, 15:41) *
Куча параллельно работающих задач с периферией и это как же так без либ? Короче смами себе противоречите.
Ну а сертификацию такая программа точно не пройдет.

Какая связь между либами и сертификацией?

Цитата(Golikov A. @ Jan 20 2015, 16:53) *
А вы видать гуро... сколько ТУ на сертификацию написали или так краем уха слышали sm.gif ?

Гура... одним мановением команды WFE частоту процессора от 0 до 180МГц меняет.
А вы тут про какие-то задержки на старт/стоп PLL толчёте. Лошары!! biggrin.gif
Иээх! Завтра пойду - метрологов наших обрадую - пообещаю какую-нить завалящую либу в ПО воткнуть - сразу у их сертификация на ура пройдёт, а то они, дурни, с ЭМС всё маются...


Цитата(SasaVitebsk @ Jan 20 2015, 20:03) *
Но если глубоко копать, то всё это бред, которого просто море .... Наши и Ваши чиновники пытаются взять контроль над всем миром. Да документ позволяет многое, в том числе и "экспертный анализ" исходников ... Можно этот документ, как саблю, поднять над головой и размахивать. А можно сходить в нужник и пустить его по назначению. Там ему и место.
Моё глубокое убеждение, что качество продукта обеспечивает ТОЛЬКО производитель. И сертификат чистейшей воды фикция.

Глубоко и полностью согласен с Вами, коллега! sm.gif

Цитата(kan35 @ Jan 20 2015, 22:49) *
У меня для одного изделия быстродействия особо большого не требовалось, STM32F2 работал на 4МГц, но подключаясь к USB надо было разгоняться до 16МГц (иначе USB не работает). Никакие PLL не перенастраивал. Играл только делителями. Главное, чтобы не нарушать скорости USART, I2C, SPI - поддерживать частоты на шинах постоянными. В данном случае APB1 и APB2 держал на 4МГц.

Во-во. У меня тоже в одном девайсе нужно было питаться от аккума (с выкл. PLL для экономии и делением на 2 частоты кварца и периодическим уходом в более глубокий "псевдосон" включением
делителя частоты на 256), а при подключении к USB - включать PLL чтобы обеспечить минимальную нужную ему частоту.
PLL - один из самых жрущих узлов в МК между прочим.
Go to the top of the page
 
+Quote Post
Integro
сообщение Jan 20 2015, 20:15
Сообщение #23


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

Группа: Свой
Сообщений: 167
Регистрация: 25-12-09
Из: Минск
Пользователь №: 54 460



Всем спасибо за ответы.
Если кому интересно, по теме...
Использую FreeRTOS, при смене частоты блокирую переключалку задач, далее пользуя функции кубовского hal, RCC_DeInit(), затем стандартный инит клоков с новыми делителями, потом инициализация периферии.
На ре-инициализацию клока уходит меньше миллисекунды.
Потребление с частоты 84Mhz до 24Mhz уменьшается на 10 мА (грубая оценка, камень STM32f401 питается через DC-DC 1.8v).

На данный момент работает стабильно, глюков не обнаружено.
Из переферии после смены клоков работало все кроме UART, понятно, уплыла скорость.
Шины I2C и SPI можно не ре-инициализировать, работали на меньшей скорости.

Сообщение отредактировал Integro - Jan 20 2015, 20:17
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 21 2015, 05:05
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Integro @ Jan 21 2015, 02:15) *
На ре-инициализацию клока уходит меньше миллисекунды.

Интересно - как Вы измерили? По часам, которые переинициализируете? rolleyes.gif

Цитата(Integro @ Jan 21 2015, 02:15) *
Шины I2C и SPI можно не ре-инициализировать, работали на меньшей скорости.

Переинициализировать по уму нужно всё, на что влияет частота тактирования. Чтобы потом не было неприятных сюрпризов.
Также, в процессе перехода, данную периферию нужно отключать.
Go to the top of the page
 
+Quote Post
Integro
сообщение Jan 21 2015, 06:57
Сообщение #25


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

Группа: Свой
Сообщений: 167
Регистрация: 25-12-09
Из: Минск
Пользователь №: 54 460



Цитата(jcxz @ Jan 21 2015, 08:05) *
Интересно - как Вы измерили? По часам, которые переинициализируете? rolleyes.gif

дернул джипио

Цитата(jcxz @ Jan 21 2015, 08:05) *
Переинициализировать по уму нужно всё, на что влияет частота тактирования. Чтобы потом не было неприятных сюрпризов.
Также, в процессе перехода, данную периферию нужно отключать.

так и делаю, но в рамках эксперемента, работало без реинициализации

Сообщение отредактировал Integro - Jan 21 2015, 06:57
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 21 2015, 08:21
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



что логично, SPI и I2C они же клоки выдают, это тупые автоматы, они не уарт который ко времени привязан, так что логично что они без переинициализации дальше поехали, выключить их как бы чего не вышло стоит, конечно, но думаю можно даже пока байт передается частоту перебросить, справятся, я в них верю!)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:50
Рейтинг@Mail.ru


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