Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Stm32 с чего начать изучение...

Сообщение scorpi_0n »

Бородатая новость получилась. И 10-и лет не прошло, как терра опомнилась.
Аватара пользователя
_dark
Встал на лапы
Сообщения: 93
Зарегистрирован: Чт апр 26, 2012 14:30:40
Откуда: под Москвой

Re: Stm32 с чего начать изучение...

Сообщение _dark »

Что-то меня заклинило на иницализации RCC
камень 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){}

то все ок!
Аватара пользователя
_dark
Встал на лапы
Сообщения: 93
Зарегистрирован: Чт апр 26, 2012 14:30:40
Откуда: под Москвой

Re: Stm32 с чего начать изучение...

Сообщение _dark »

Продолжаем мучить камень STM32L151...Нашел такую фичу.

При инициализации 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 с чего начать изучение...

Сообщение prinv »

Такая проблема: МК STM32F103C8T6 на ровном месте перестал определяться ST-Link'ом (FW Version V1J13S0 c платы STM32-Discovery). МК светодиодиком моргает, ST-link видится Keil как обычно, но связи между MK и ST-Link нет. Установленный на STM32-Discovery МК STM32F100RBT6B прошивается без проблем.
В чем может быть дело?
Никакая контра не уйдёт от нас
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

В соседней теме ответил http://www.radiokot.ru/forum/viewtopic. ... 1#p3059061
Это из-за куба. Он по умолчанию отключает отладку.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение prinv »

Зажатый reset не помог :-(
Boot0=1 и Boot1=0 ситуацию тоже не изменили.
Никакая контра не уйдёт от нас
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

Прошивать нужно через STM32 ST-LINK Utility. В настройках следует выбрать тип подключения Connect Under Reset. Затем зажать сброс и в окне нажать на Connect to the target, после чего отпустить кнопку сброс. Возможно получится не с первой попытки.

Или же переключить МК на встроенный загрузчик подав на Boot0 напряжение 3.3 вольта. Обычно для этого предусмотрены перемычки. В режиме загрузчика залитая прошивка не выполняется, а значит не отключает отладку и можно перепрошить МК.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение prinv »

Что-то "Connect Under Reset" у меня нет. Старый ST-Link?
BOOT0=1 ничего не меняет.
Никакая контра не уйдёт от нас
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

prinv писал(а):Старый ST-Link?
Версия прошивки?
Последний раз редактировалось Мурик Вс апр 02, 2017 12:33:40, всего редактировалось 2 раза.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение prinv »

V1J13S0
Обновил 20 минут назад.
Никакая контра не уйдёт от нас
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

prinv писал(а):V1J13S0
Это 1 версия. Нужна вторая.

СпойлерИзображение
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение prinv »

Заказал уже на Али. Спасибо.
Никакая контра не уйдёт от нас
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение prinv »

ST-Link V2 приехал за 1 месяц.
По какой схеме подключать программатор к МК?

P.S. В общем, разобрался. Если будет интересно - отпишусь позже.
Вложения
IMG_20170503_000046.jpg
(102.05 КБ) 727 скачиваний
Никакая контра не уйдёт от нас
0crash0
Родился
Сообщения: 11
Зарегистрирован: Вт фев 16, 2010 22:33:51
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение 0crash0 »

Здравствуйте, не могу найти как на CubeMX приделать ws2812
на SPL нашел библиотеку, но хотелось бы через Куб
STM32F103C8T6.

еще интересует можно ли через DMA перекидывать паралельно данные ( массив данных в несколько портов(ну или несколько массивов в разные порты синхронно)
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.

0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
Обмен идет через одну шину, а значит будут задержки.
0crash0
Родился
Сообщения: 11
Зарегистрирован: Вт фев 16, 2010 22:33:51
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение 0crash0 »

[uquote="Мурик",url="/forum/viewtopic.php?p=3224732#p3224732"]
0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.

0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
Обмен идет через одну шину, а значит будут задержки.[/uquote]

боюсь переписать я врядли смогу библиотеку

вот тут прямо в кубе делают:
http://www.pvsm.ru/pesochnitsa/105562
я нашел что для 72мгц процессора мне нужно ставить 89 counter period

только не работает всеравно
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Stm32 с чего начать изучение...

Сообщение dosikus »

0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...
0crash0
Родился
Сообщения: 11
Зарегистрирован: Вт фев 16, 2010 22:33:51
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение 0crash0 »

[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 вроди?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

0crash0 писал(а):на моем процессоре один дма
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.
0crash0
Родился
Сообщения: 11
Зарегистрирован: Вт фев 16, 2010 22:33:51
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение 0crash0 »

[uquote="Мурик",url="/forum/viewtopic.php?p=3225157#p3225157"]
0crash0 писал(а):на моем процессоре один дма
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.[/uquote]

ок, можно на SPL через дма реализовать семисегментный индикатор
я понимаю что можно руками выставлять биты и обновлять состояние портов.. но это займет нное время даже если засунуть это на таймер
а у меня есть некоторые идеи чем занять процессор например на юсб.. поэтому хочеться разгрузить процессор по максимуму


и может есть еще какието МК которые имеют механизм вроде ДМА и поддерживают работу с ЮСБ и к которым есть готовые библиотеки для WS2812
Ответить

Вернуться в «ARM»