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

 
 
> STM32L151 FLASH_ACR_LATENCY FLASH_ACR_ACC64, Как правильно работать с этими битами
MiklPolikov
сообщение Oct 3 2013, 06:54
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Переключаю напряжение питание ядра и тактовую частоту ~5раз в секунду. Это вместе со входом в спящие режимы позволяет экономить питание.
Но в самом экономичном сочетании частот и напряжений, которое согласно документации допустимо, процесор виснет раз в сутки.
В связи с этим вопрос, правильно ли я понимаю то что изложено в PM0062 FLASH and EEPROM Programming на с 50.
Понимаю написанное там так :

1)Биты ACC64 и LATENCY нужно ставить и снимать одновременно, другие вариации бессмысленны. Причём ставить сначала ACC64 следующей командой LATENCY а снимать сначала LATENCY а следующей командой ACC64.

2)При снятых ACC64 и LATENCY допустимы только некоторые сочетания напряжение частота , те которые в верхней строчке таблицы.
А при поставленных ACC64 и LATENCY все сочетания которые и в верхней строчке и в нижней.
По этой причине биты ставятся перед увеличением частоты.
А после уменьшения снимаются по желанию, для экономии потребления.
Будь это не так, было бы противоречие : биты выставлены, а частота ещё не увеличена, стало быть процессор какое-то время находится в недопустимом режиме.


Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Oct 3 2013, 11:24
Сообщение #2


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

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



Перед повышением частоты я сначала устанавливал бы LATENCY, а потом ACC64.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Oct 3 2013, 12:06
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(ViKo @ Oct 3 2013, 15:24) *
Перед повышением частоты я сначала устанавливал бы LATENCY, а потом ACC64.

Производитель же четко это оговорил
Цитата
ST strongly recommends to use the following software sequences to tune the number of
wait states needed to access the Flash memory with the CPU frequency.

Increasing the CPU frequency (in the same voltage range).
● Program the 64-bit access by setting the ACC64 bit in FLASH_ACR
● Check that 64-bit access is taken into account by reading FLASH_ACR
● Program 1 WS to the LATENCY bit in FLASH_ACR
● Check that the new number of WS is taken into account by reading FLASH_ACR
● Modify the CPU clock source by writing to the SW bits in the RCC_CFGR register
● If needed, modify the CPU clock prescaler by writing to the HPRE bits in RCC_CFGR
● Check that the new CPU clock source or/and the new CPU clock prescaler value is/are
taken into account by reading the clock source status (SWS bits) or/and the AHB
prescaler value (HPRE bits), respectively, in the RCC_CFGR register

Decreasing the CPU frequency (in the same voltage range).
● Modify the CPU clock source by writing to the SW bits in the RCC_CFGR register
● If needed, modify the CPU clock prescaler by writing to the HPRE bits in RCC_CFGR
● Check that the new CPU clock source or/and the new CPU clock prescaler value is/are
taken into account by reading the clock source status (SWS bits) or/and the AHB
prescaler value (HPRE bits), respectively, in the RCC_CFGR register
● Program the new number of WS to the LATENCY bit in FLASH_ACR
● Check that the new number of WS is taken into account by reading FLASH_ACR
● Program the 32-bit access by clearing ACC64 in FLASH_ACR
● Check that 32-bit access is taken into account by reading FLASH_ACR
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MiklPolikov   STM32L151 FLASH_ACR_LATENCY FLASH_ACR_ACC64   Oct 3 2013, 06:54
- - DmitryM   Цитата(MiklPolikov @ Oct 3 2013, 10:54) В...   Oct 3 2013, 11:02
- - John Silver   Цитата(MiklPolikov @ Oct 3 2013, 09:54) Б...   Oct 3 2013, 11:24
|- - MiklPolikov   Цитата(John Silver @ Oct 3 2013, 15:24) Д...   Oct 3 2013, 11:50
|- - ViKo   Цитата(DmitryM @ Oct 3 2013, 15:06) Произ...   Oct 3 2013, 12:16
|- - MiklPolikov   Цитата(ViKo @ Oct 3 2013, 16:16) Да, огов...   Oct 3 2013, 13:23
|- - ViKo   Цитата(MiklPolikov @ Oct 3 2013, 16:23) Я...   Oct 3 2013, 13:36
|- - DmitryM   Цитата(MiklPolikov @ Oct 3 2013, 17:23) А...   Oct 3 2013, 13:42
|- - MiklPolikov   Ещё вопросы : 1) Какие условия должны соблюдаться...   Oct 6 2013, 23:20
|- - MiklPolikov   Проблема в том, что процессор висит если я переклю...   Oct 8 2013, 03:07
- - ViKo   Выполнение микроконтроллером команд и есть обращен...   Oct 3 2013, 11:57
- - сарматъ   а вы локализовали место и причину зависания?   Oct 8 2013, 05:08
- - MiklPolikov   Цитата(сарматъ @ Oct 8 2013, 09:08) а вы ...   Oct 8 2013, 05:19
- - MiklPolikov   Помогло глобальное запрещение прерываний на время ...   Oct 11 2013, 08:34
- - MiklPolikov   Цитата(MiklPolikov @ Oct 11 2013, 12:34) ...   Nov 7 2013, 10:04


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

 


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


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