Кто любит RISC в жизни, заходим, не стесняемся.
Пн ноя 28, 2016 17:52:25
Бородатая новость получилась. И 10-и лет не прошло, как терра опомнилась.
Пн фев 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){}
то все ок!
Пт мар 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 не нашел такой "особенности" камня
Вс апр 02, 2017 11:20:27
Такая проблема: МК STM32F103C8T6 на ровном месте перестал определяться ST-Link'ом (FW Version V1J13S0 c платы STM32-Discovery). МК светодиодиком моргает, ST-link видится Keil как обычно, но связи между MK и ST-Link нет. Установленный на STM32-Discovery МК STM32F100RBT6B прошивается без проблем.
В чем может быть дело?
Вс апр 02, 2017 11:46:57
В соседней теме ответил
http://www.radiokot.ru/forum/viewtopic. ... 1#p3059061Это из-за куба. Он по умолчанию отключает отладку.
Вс апр 02, 2017 11:47:42
Зажатый reset не помог
Boot0=1 и Boot1=0 ситуацию тоже не изменили.
Вс апр 02, 2017 11:59:11
Прошивать нужно через STM32 ST-LINK Utility. В настройках следует выбрать тип подключения Connect Under Reset. Затем зажать сброс и в окне нажать на Connect to the target, после чего отпустить кнопку сброс. Возможно получится не с первой попытки.
Или же переключить МК на встроенный загрузчик подав на Boot0 напряжение 3.3 вольта. Обычно для этого предусмотрены перемычки. В режиме загрузчика залитая прошивка не выполняется, а значит не отключает отладку и можно перепрошить МК.
Вс апр 02, 2017 12:10:41
Что-то "Connect Under Reset" у меня нет. Старый ST-Link?
BOOT0=1 ничего не меняет.
Вс апр 02, 2017 12:18:17
prinv писал(а):Старый ST-Link?
Версия прошивки?
Последний раз редактировалось
Мурик Вс апр 02, 2017 12:33:40, всего редактировалось 2 раз(а).
Вс апр 02, 2017 12:19:16
V1J13S0
Обновил 20 минут назад.
Вс апр 02, 2017 12:31:48
prinv писал(а):V1J13S0
Это 1 версия. Нужна вторая.
Спойлер
Вс апр 02, 2017 12:42:16
Заказал уже на Али. Спасибо.
Вт май 02, 2017 20:22:11
ST-Link V2 приехал за 1 месяц.
По какой схеме подключать программатор к МК?
P.S. В общем, разобрался. Если будет интересно - отпишусь позже.
- Вложения
-
- IMG_20170503_000046.jpg
- (102.05 KiB) Скачиваний: 691
Вс ноя 05, 2017 13:04:18
Здравствуйте, не могу найти как на CubeMX приделать ws2812
на SPL нашел библиотеку, но хотелось бы через Куб
STM32F103C8T6.
еще интересует можно ли через DMA перекидывать паралельно данные ( массив данных в несколько портов(ну или несколько массивов в разные порты синхронно)
Вс ноя 05, 2017 13:09:48
0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.
0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
Обмен идет через одну шину, а значит будут задержки.
Вс ноя 05, 2017 13:36:51
0crash0 писал(а):на SPL нашел библиотеку, но хотелось бы через Куб
Раз так хочется, перепишите библиотеку под HAL, только лучше работать от этого не станет.
0crash0 писал(а):еще интересует можно ли через DMA перекидывать паралельно данные
Обмен идет через одну шину, а значит будут задержки.
боюсь переписать я врядли смогу библиотеку
вот тут прямо в кубе делают:
http://www.pvsm.ru/pesochnitsa/105562я нашел что для 72мгц процессора мне нужно ставить 89 counter period
только не работает всеравно
Вс ноя 05, 2017 13:39:20
0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...
Вс ноя 05, 2017 14:04:33
0crash0, все уже украдено -http://www.martinhubacek.cz/arm/improved-stm32-ws2812b-library
Вывод одновременно на 16 линий...
мне нужна одна линия... и паралельно ленте отдельные данные(т.к. на моем процессоре один дма так что я так понимаю что все пойдет на одной частоте.. но думаю с этим проблем не будет)
https://www.youtube.com/watch?v=1q7buvAqizg вот еще нашел только тоже чтото неработает.. .
а по ссылке тоже SPL вроди?
Вс ноя 05, 2017 22:25:54
0crash0 писал(а):на моем процессоре один дма
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.
Вс ноя 05, 2017 23:03:55
0crash0 писал(а):на моем процессоре один дма
Насколько помню, в STM32F103C8T6 два контроллера DMA, по несколько каналов в каждом.
ок, можно на SPL через дма реализовать семисегментный индикатор
я понимаю что можно руками выставлять биты и обновлять состояние портов.. но это займет нное время даже если засунуть это на таймер
а у меня есть некоторые идеи чем занять процессор например на юсб.. поэтому хочеться разгрузить процессор по максимуму
и может есть еще какието МК которые имеют механизм вроде ДМА и поддерживают работу с ЮСБ и к которым есть готовые библиотеки для WS2812
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.