Страница 15 из 82

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

Добавлено: Пн ноя 28, 2016 17:52:25
scorpi_0n
Бородатая новость получилась. И 10-и лет не прошло, как терра опомнилась.

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

Добавлено: Пн фев 27, 2017 13:06:24
_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){}
то все ок!

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

Добавлено: Пт мар 03, 2017 15:33:35
_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 не нашел такой "особенности" камня

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

Добавлено: Вс апр 02, 2017 11:20:27
prinv
Такая проблема: МК 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
prinv
Зажатый 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
prinv
Что-то "Connect Under Reset" у меня нет. Старый ST-Link?
BOOT0=1 ничего не меняет.

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

Добавлено: Вс апр 02, 2017 12:18:17
Мурик
prinv писал(а):Старый ST-Link?
Версия прошивки?

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

Добавлено: Вс апр 02, 2017 12:19:16
prinv
V1J13S0
Обновил 20 минут назад.

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

Добавлено: Вс апр 02, 2017 12:31:48
Мурик
prinv писал(а):V1J13S0
Это 1 версия. Нужна вторая.
СпойлерИзображение

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

Добавлено: Вс апр 02, 2017 12:42:16
prinv
Заказал уже на Али. Спасибо.

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

Добавлено: Вт май 02, 2017 20:22:11
prinv
ST-Link V2 приехал за 1 месяц.
По какой схеме подключать программатор к МК?

P.S. В общем, разобрался. Если будет интересно - отпишусь позже.

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

Добавлено: Вс ноя 05, 2017 13:04:18
0crash0
Здравствуйте, не могу найти как на 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
[uquote="Мурик",url="/forum/viewtopic.php?p=3224732#p3224732"]
0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.
0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
Обмен идет через одну шину, а значит будут задержки.[/uquote]

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

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

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

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

Добавлено: Вс ноя 05, 2017 13:39:20
dosikus
0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...

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

Добавлено: Вс ноя 05, 2017 14:04:33
0crash0
[uquote="dosikus",url="/forum/viewtopic.php?p=3224760#p3224760"]0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improve ... 2b-library
Вывод одновременно на 16 линий...[/uquote]
мне нужна одна линия... и паралельно ленте отдельные данные(т.к. на моем процессоре один дма так что я так понимаю что все пойдет на одной частоте.. но думаю с этим проблем не будет)

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

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


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