Перейти к содержанию
    

stm32F030C8 и стирание страницы флэша

8 часов назад, haker_fox сказал:

Я таки не понимаю, как можно брать у китайцев некитайские микросхемы?

Ну я, например, никогда не закладываю китайские МК в свои проекты, даже если цена очень привлекательна.

А для домашних поделок, в целом, если МК работает и не сбоит, то почему нет?:wink2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, Сергей Борщ сказал:

Я так понял, что эти биты он настроил.

Естественно я знаю, что такое "wait states" - не первый десяток лет работаю с разными МК. Да и писал сразу, что и прописал FLASH.ACR и неоднократно проверил его содержимое.

 

PS: С этим регистром (FLASH.ACR) ещё такая странность: После сброса биты PRFTBE и PRFTBS оба равны 1 (предвыборка вкл.). Что совпадает с заявленным в ref.manual. Но вот если их (т.е. - бит PRFTBE) сбросить в 0 в любой момент (выключить предвыборку), то обратно её уже не включишь. Никак. Т.е. - бит PRFTBE устанавливается в 1, но PRFTBS - ни в какую. Что с ним не делай он всё равно ==0.  :dash2:

Да, сразу говорю, что мануал я читал. Это:

"The prefetch buffer must be switched on/off only when SYSCLK is lower than 24 MHz and no prescaler is applied on the AHB clock (SYSCLK must be equal to HCLK)."

видел. Пробовал включить его и при 24МГц и при 16МГц и при 8МГц - не включается (кварц стоит на 8МГц, так что последний режим - без PLL). И на больших частотах - не включается. Делитель для AHB ==1.

При тактировании хоть от HSE хоть от HSI, выполнении кода включения хоть из FLASH хоть из ОЗУ - никак не включается PRFTBS. :dash2:

Единственный путь включить бит PRFTBS - подать RESET на МК. :sad:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

STM32F030C8T6 (Device ID 0x440 Revision ID Rev 2.0). В основном цикле раз в полсекунды стираю последнюю страницу флэша (в нее по умолчанию размещаю одну переменную, которая успешно становится 0xFFFFFFFF ), потом шлю по USART1 цифры по очереди (чтобы видеть, что все работает). На USART1 шлю поток с терминала, по прерыванию принимаю байт и ничего с ним не делаю. Если есть флаг ORE- сбрасываю. Все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...