Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Пн ноя 28, 2016 17:52:25

Бородатая новость получилась. И 10-и лет не прошло, как терра опомнилась.

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

Пн фев 27, 2017 13:06:24

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

то все ок!

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

Пт мар 03, 2017 15:33:35

Продолжаем мучить камень 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 не нашел такой "особенности" камня

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

Вс апр 02, 2017 11:20:27

Такая проблема: МК STM32F103C8T6 на ровном месте перестал определяться ST-Link'ом (FW Version V1J13S0 c платы STM32-Discovery). МК светодиодиком моргает, ST-link видится Keil как обычно, но связи между MK и ST-Link нет. Установленный на STM32-Discovery МК STM32F100RBT6B прошивается без проблем.
В чем может быть дело?

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

Вс апр 02, 2017 11:46:57

В соседней теме ответил http://www.radiokot.ru/forum/viewtopic. ... 1#p3059061
Это из-за куба. Он по умолчанию отключает отладку.

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

Вс апр 02, 2017 11:47:42

Зажатый reset не помог :-(
Boot0=1 и Boot1=0 ситуацию тоже не изменили.

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

Вс апр 02, 2017 11:59:11

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

Или же переключить МК на встроенный загрузчик подав на Boot0 напряжение 3.3 вольта. Обычно для этого предусмотрены перемычки. В режиме загрузчика залитая прошивка не выполняется, а значит не отключает отладку и можно перепрошить МК.

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

Вс апр 02, 2017 12:10:41

Что-то "Connect Under Reset" у меня нет. Старый ST-Link?
BOOT0=1 ничего не меняет.

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

Вс апр 02, 2017 12:18:17

prinv писал(а):Старый ST-Link?
Версия прошивки?
Последний раз редактировалось Мурик Вс апр 02, 2017 12:33:40, всего редактировалось 2 раз(а).

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

Вс апр 02, 2017 12:19:16

V1J13S0
Обновил 20 минут назад.

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

Вс апр 02, 2017 12:31:48

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

СпойлерИзображение

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

Вс апр 02, 2017 12:42:16

Заказал уже на Али. Спасибо.

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

Вт май 02, 2017 20:22:11

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

P.S. В общем, разобрался. Если будет интересно - отпишусь позже.
Вложения
IMG_20170503_000046.jpg
(102.05 KiB) Скачиваний: 691

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

Вс ноя 05, 2017 13:04:18

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

еще интересует можно ли через DMA перекидывать паралельно данные ( массив данных в несколько портов(ну или несколько массивов в разные порты синхронно)

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

Вс ноя 05, 2017 13:09:48

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

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

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

Вс ноя 05, 2017 13:36:51

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

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


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

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

только не работает всеравно

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

Вс ноя 05, 2017 13:39:20

0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...

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

Вс ноя 05, 2017 14:04:33

0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...

мне нужна одна линия... и паралельно ленте отдельные данные(т.к. на моем процессоре один дма так что я так понимаю что все пойдет на одной частоте.. но думаю с этим проблем не будет)

https://www.youtube.com/watch?v=1q7buvAqizg вот еще нашел только тоже чтото неработает.. .

а по ссылке тоже SPL вроди?

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

Вс ноя 05, 2017 22:25:54

0crash0 писал(а):на моем процессоре один дма
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.

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

Вс ноя 05, 2017 23:03:55

0crash0 писал(а):на моем процессоре один дма
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.


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


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