Jump to content

    
DpInRock

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

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites
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:

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.