STM32F030F4P6 помогите с PLL
21.04.2016, 10:44
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
STM32F030F4P6 помогите с PLL
Добрый день. Начинал на STM32F103 пробовать тактирование. Там всё работало нормально. Взял этот проц. Из библиотек включаю тактирование - а его нет. Флаг готовности PLL равен 0 когда включаю отладку. Пишу в кокосе. Может что не так делаю....? Проверяю на таймере. Его запустил. Еще вопрос - кварц 8 МГЦ подключаю и проц не стартует. Стартует если 4 и меньше кварц. В даташите написано от 4МГц до 32 можно.
Вот текст :
|
PHP код:
|
#include "stm32f0xx.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_tim.h"
//RCC_DeInit();//сброс настроек тактового генератора
RCC_HSICmd(DISABLE);//Вікл внутреннего генератора
RCC_HSEConfig(RCC_HSE_ON);//вкл внешний кварц 4 000 000
RCC_PLLCmd(DISABLE);//выкл PLL
RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_4);//источник предделителя,
//тактирование проца
RCC_PLLCmd(ENABLE);//вкл PLL
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//подаем на системную шину тактирование
|
|
|
|
|
21.04.2016, 11:01
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
miwutka, И в RM и в сниппетсах есть примеры инита тактовой.
Но если будешь изучать так же как на авр, все будет точно как и на авр. 
То есть ни как ...
|
Код:
|
void SystemInit (void)
{
if ((RCC-›CFGR & RCC_CFGR_SWS) == RCC_CFGR_SWS_PLL) /* (1) */
{
RCC-›CFGR &= (uint32_t) (~RCC_CFGR_SW); /* (2) */
while ((RCC-›CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI) /* (3) */
{
/* For robust implementation, add here time-out management */
}
}
RCC-›CR &= (uint32_t)(~RCC_CR_PLLON); /* (4) */
while((RCC-›CR & RCC_CR_PLLRDY) != 0) /* (5) */
{
/* For robust implementation, add here time-out management */
}
FLASH-›ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;
RCC-›CFGR|=RCC_CFGR_PLLSRC_0;
RCC-›CFGR = (RCC-›CFGR & (~RCC_CFGR_PLLMUL)) | (RCC_CFGR_PLLMUL6); /* (6) */
RCC-›CR |= RCC_CR_PLLON; /* (7) */
while((RCC-›CR & RCC_CR_PLLRDY) == 0) /* (8) */
{
/* For robust implementation, add here time-out management */
}
RCC-›CFGR |= (uint32_t) (RCC_CFGR_SW_PLL); /* (9) */
while ((RCC-›CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) /* (10) */
{
/* For robust implementation, add here time-out management */
}
} |
__________________
Осторожно , злой кот
|
|
|
|
Сказали "Спасибо" dosikus
|
|
|
21.04.2016, 11:09
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
dosikus, ну с авр вроде бы подружился )) С RM копирнул код но чето он вообще остановил проц был.
На 728 странице PLL configuration modification code example с вот этого докума вставил http://www2.st.com/content/ccc/resou...DM00091010.pdf
Попробую ваш. На авр писал в начале на кодевижне. Вопрос - на стм лучше тоже выполнять настройку регистров напрямую или можно использовать готовые функции? Комфортнее готовые использовать...
|
|
|
|
21.04.2016, 11:17
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
ругался компилятор на эти строки
|
PHP код:
|
RCC-›CFGR|=RCC_CFGR_PLLSRC_0;
RCC-›CFGR = (RCC-›CFGR & (~RCC_CFGR_PLLMUL)) | (RCC_CFGR_PLLMUL6); /* (6) */
|
RCC_CFGR_PLLSRC_0, RCC_CFGR_PLLMUL, RCC_CFGR_PLLMUL6 - не было в дефайнах.
Думаю правильно заменил. Но проц вообще не включает тактирование. Ща отладкой гляну...
Заменил на:
|
PHP код:
|
RCC-›CFGR|=RCC_CFGR_PLLSRC;
RCC-›CFGR = (RCC-›CFGR & (~RCC_CFGR_PLLMULL)) | (RCC_CFGR_PLLMULL6); /* (6) */
|
глянул отладкой - while((RCC-›CR & RCC_CR_PLLRDY) == 0) /* ( 8 ) */
тут зацикливается. Кварц на 2 и 3 ножке..... 4МГц.
Буду в инете искать почему PLL не готов.....
Последний раз редактировалось miwutka; 21.04.2016 в 11:29.
|
|
|
|
21.04.2016, 14:52
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
Попутно подскажите в какой IDE лучше писать под STM? Для атмег начинал с кодевижна а перешел и остался на студии. И примеров много, и как-то удобнее. Что посоветуете чтобы и правильно и как студия )) Ну кроме ассемблера))
|
|
|
|
21.04.2016, 15:18
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
miwutka, Этот код на HSI. Когда поймешь что и зачем, изучая RM, тогда и HSE запустишь. Можно кстати просто тыкая в дебаггере Keil все осознать.
И рекомендую Keil, но без SPL, калокуба и прочих облегчалок. На все хватит RM и сниппетсов...
__________________
Осторожно , злой кот
|
|
|
|
21.04.2016, 15:36
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
Я то понял что HSI - внутренний генератор 8 МГц, HSE - внешний кварц. PLL - множитель который умножает либо внутренний генератор либо внешний. Ну наверно надо самому всё вручную прописать что бы понять своим мозгом ))
dosikus, читал в инете что кеил имеет ограничение по коду 32 кб вроде. Лечится ли это както? Может есть ссылки чтобы установить полноценную кеЙлу без всяких ограничений? Ну мне после перехода на студию по атмегам понравилось писать напрямую в регистры, а не готовыми функциями.
Сообщение от dosikus
|
|
И рекомендую Keil, но без SPL,
|
- вот это как? SPL - это готовые библиотеки которые упрощают настройку периферии? Тогда да, согласен что без них както проще наверно писать сразу с меньшими ошибками и с более полным осознанием того, что пишешь. )) Особенно в моем случае )))
Последний раз редактировалось miwutka; 21.04.2016 в 15:38.
|
|
|
|
21.04.2016, 15:38
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
miwutka, Именно для F0 Keil абсолютно халявен официально.
Ни с SPL и с калокубом ты ничему не научишься, о легкости вхождения и безопасности кода с ними , это все сказки...
__________________
Осторожно , злой кот
|
|
|
|
Сказали "Спасибо" dosikus
|
|
|
21.04.2016, 15:40
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
dosikus, но я же на F0 не остановлюсь )) Есть что-то без ограничений?
Думаю вот это нормально будет..... http://rutracker.org/forum/viewtopic.php?t=2305709
у меня программатор STLink V2 за копейки китайский. Надеюсь с "кайлом" будет работать ))
Последний раз редактировалось miwutka; 21.04.2016 в 16:00.
|
|
|
|
21.04.2016, 16:22
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: STM32F030F4P6 помогите с PLL
Если работать только на 3v , то сойдет...
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:27.
|
|