Stm32 с чего начать изучение...
Re: Stm32 с чего начать изучение...
Бородатая новость получилась. И 10-и лет не прошло, как терра опомнилась.
Re: Stm32 с чего начать изучение...
Что-то меня заклинило на иницализации RCC
камень STM32L151..., тактирование от HSI
Keil 5.17
зависает на строчке
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL){__NOP();}
в отладчике см. стоп на __NOP();, RCC->CFGR = 0x0088240F
т.е. биты SW = 11, SWS = 11,
никак не вьеду в чем засада....
выше код той же инициализации от PLL на SPL закоментарен (то же зависает),
если его заменить на
то все ок!
камень STM32L151..., тактирование от HSI
Keil 5.17
Код: Выделить всё
void SetupClock(void)
{
RCC_DeInit ();
RCC_HSICmd(ENABLE);
while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET){};
RCC_HCLKConfig (RCC_SYSCLK_Div1); /* HCLK = SYSCLK */
RCC_PCLK2Config (RCC_HCLK_Div2); /* PCLK2 = HCLK/2 */
RCC_PCLK1Config (RCC_HCLK_Div2); /* PCLK1 = HCLK/2 */
/* PLLCLK = 16MHz * 6 / 3 = 32 MHz */
RCC_PLLConfig (RCC_PLLSource_HSI, RCC_PLLMul_6, RCC_PLLDiv_3);
RCC_PLLCmd (ENABLE); /* Enable PLL */
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
// RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
_LED_YELLOW_ON; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RCC->CFGR &= ~RCC_CFGR_SW;
RCC->CFGR |= RCC_CFGR_SW_PLL;
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL){__NOP();}
_LED_YELLOW_OFF; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/* Enable USART1,2,3 clock */
RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1, ENABLE);
RCC_APB1PeriphClockCmd (RCC_APB1Periph_USART2 | RCC_APB1Periph_USART3, ENABLE);
}
зависает на строчке
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL){__NOP();}
в отладчике см. стоп на __NOP();, RCC->CFGR = 0x0088240F
т.е. биты SW = 11, SWS = 11,
никак не вьеду в чем засада....
выше код той же инициализации от PLL на SPL закоментарен (то же зависает),
если его заменить на
Код: Выделить всё
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET){}
то все ок!
Re: Stm32 с чего начать изучение...
Продолжаем мучить камень STM32L151...Нашел такую фичу.
При инициализации USART, настройка длины посылки:
в канал выдается 7!!! (это не шутка, именно семь) бит
а если
то 8 !!!
как инициализировать не важно, можно и через CMSYS - теже грабли
настройки USART->CR1 см. в дебагере, все нормально,
выловил только осциллографом...
в описании и в errata не нашел такой "особенности" камня
При инициализации USART, настройка длины посылки:
Код: Выделить всё
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_Even;
в канал выдается 7!!! (это не шутка, именно семь) бит
а если
Код: Выделить всё
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
то 8 !!!
как инициализировать не важно, можно и через CMSYS - теже грабли
настройки USART->CR1 см. в дебагере, все нормально,
выловил только осциллографом...
в описании и в errata не нашел такой "особенности" камня
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Stm32 с чего начать изучение...
Такая проблема: МК STM32F103C8T6 на ровном месте перестал определяться ST-Link'ом (FW Version V1J13S0 c платы STM32-Discovery). МК светодиодиком моргает, ST-link видится Keil как обычно, но связи между MK и ST-Link нет. Установленный на STM32-Discovery МК STM32F100RBT6B прошивается без проблем.
В чем может быть дело?
В чем может быть дело?
Никакая контра не уйдёт от нас
Re: Stm32 с чего начать изучение...
В соседней теме ответил http://www.radiokot.ru/forum/viewtopic. ... 1#p3059061
Это из-за куба. Он по умолчанию отключает отладку.
Это из-за куба. Он по умолчанию отключает отладку.
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Stm32 с чего начать изучение...
Зажатый reset не помог 
Boot0=1 и Boot1=0 ситуацию тоже не изменили.
Boot0=1 и Boot1=0 ситуацию тоже не изменили.
Никакая контра не уйдёт от нас
Re: Stm32 с чего начать изучение...
Прошивать нужно через STM32 ST-LINK Utility. В настройках следует выбрать тип подключения Connect Under Reset. Затем зажать сброс и в окне нажать на Connect to the target, после чего отпустить кнопку сброс. Возможно получится не с первой попытки.
Или же переключить МК на встроенный загрузчик подав на Boot0 напряжение 3.3 вольта. Обычно для этого предусмотрены перемычки. В режиме загрузчика залитая прошивка не выполняется, а значит не отключает отладку и можно перепрошить МК.
Или же переключить МК на встроенный загрузчик подав на Boot0 напряжение 3.3 вольта. Обычно для этого предусмотрены перемычки. В режиме загрузчика залитая прошивка не выполняется, а значит не отключает отладку и можно перепрошить МК.
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Stm32 с чего начать изучение...
Что-то "Connect Under Reset" у меня нет. Старый ST-Link?
BOOT0=1 ничего не меняет.
BOOT0=1 ничего не меняет.
Никакая контра не уйдёт от нас
Re: Stm32 с чего начать изучение...
Версия прошивки?prinv писал(а):Старый ST-Link?
Последний раз редактировалось Мурик Вс апр 02, 2017 12:33:40, всего редактировалось 2 раза.
Re: Stm32 с чего начать изучение...
Это 1 версия. Нужна вторая.prinv писал(а):V1J13S0
Спойлер
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Stm32 с чего начать изучение...
ST-Link V2 приехал за 1 месяц.
По какой схеме подключать программатор к МК?
P.S. В общем, разобрался. Если будет интересно - отпишусь позже.
По какой схеме подключать программатор к МК?
P.S. В общем, разобрался. Если будет интересно - отпишусь позже.
- Вложения
-
- IMG_20170503_000046.jpg
- (102.05 КБ) 727 скачиваний
Никакая контра не уйдёт от нас
Re: Stm32 с чего начать изучение...
Здравствуйте, не могу найти как на CubeMX приделать ws2812
на SPL нашел библиотеку, но хотелось бы через Куб
STM32F103C8T6.
еще интересует можно ли через DMA перекидывать паралельно данные ( массив данных в несколько портов(ну или несколько массивов в разные порты синхронно)
на SPL нашел библиотеку, но хотелось бы через Куб
STM32F103C8T6.
еще интересует можно ли через DMA перекидывать паралельно данные ( массив данных в несколько портов(ну или несколько массивов в разные порты синхронно)
Re: Stm32 с чего начать изучение...
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Обмен идет через одну шину, а значит будут задержки.0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
Re: Stm32 с чего начать изучение...
[uquote="Мурик",url="/forum/viewtopic.php?p=3224732#p3224732"]
боюсь переписать я врядли смогу библиотеку
вот тут прямо в кубе делают:
http://www.pvsm.ru/pesochnitsa/105562
я нашел что для 72мгц процессора мне нужно ставить 89 counter period
только не работает всеравно
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Обмен идет через одну шину, а значит будут задержки.[/uquote]0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
боюсь переписать я врядли смогу библиотеку
вот тут прямо в кубе делают:
http://www.pvsm.ru/pesochnitsa/105562
я нашел что для 72мгц процессора мне нужно ставить 89 counter period
только не работает всеравно
Re: Stm32 с чего начать изучение...
0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...
Вывод одновременно на 16 линий...
Re: Stm32 с чего начать изучение...
[uquote="dosikus",url="/forum/viewtopic.php?p=3224760#p3224760"]0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...[/uquote]
мне нужна одна линия... и паралельно ленте отдельные данные(т.к. на моем процессоре один дма так что я так понимаю что все пойдет на одной частоте.. но думаю с этим проблем не будет)
https://www.youtube.com/watch?v=1q7buvAqizg вот еще нашел только тоже чтото неработает.. .
а по ссылке тоже SPL вроди?
Вывод одновременно на 16 линий...[/uquote]
мне нужна одна линия... и паралельно ленте отдельные данные(т.к. на моем процессоре один дма так что я так понимаю что все пойдет на одной частоте.. но думаю с этим проблем не будет)
https://www.youtube.com/watch?v=1q7buvAqizg вот еще нашел только тоже чтото неработает.. .
а по ссылке тоже SPL вроди?
Re: Stm32 с чего начать изучение...
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.0crash0 писал(а):на моем процессоре один дма
Re: Stm32 с чего начать изучение...
[uquote="Мурик",url="/forum/viewtopic.php?p=3225157#p3225157"]
ок, можно на SPL через дма реализовать семисегментный индикатор
я понимаю что можно руками выставлять биты и обновлять состояние портов.. но это займет нное время даже если засунуть это на таймер
а у меня есть некоторые идеи чем занять процессор например на юсб.. поэтому хочеться разгрузить процессор по максимуму
и может есть еще какието МК которые имеют механизм вроде ДМА и поддерживают работу с ЮСБ и к которым есть готовые библиотеки для WS2812
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.[/uquote]0crash0 писал(а):на моем процессоре один дма
ок, можно на SPL через дма реализовать семисегментный индикатор
я понимаю что можно руками выставлять биты и обновлять состояние портов.. но это займет нное время даже если засунуть это на таймер
а у меня есть некоторые идеи чем занять процессор например на юсб.. поэтому хочеться разгрузить процессор по максимуму
и может есть еще какието МК которые имеют механизм вроде ДМА и поддерживают работу с ЮСБ и к которым есть готовые библиотеки для WS2812