|
STM32 – вопросы – проблемы - решения. |
|
|
|
Nov 24 2010, 05:59
|
Twilight Zone
Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990
|
Подборка тем по STM32: Часы на STM32 http://electronix.ru/forum/index.php?showt...55&hl=STM32ARM Cortex M3 + Linux http://electronix.ru/forum/index.php?showt...89&hl=STM32Ethernet на STM32, трафик? http://electronix.ru/forum/index.php?showt...54&hl=STM32STM32 bootloader и FreeRtos http://electronix.ru/forum/index.php?showt...28&hl=STM32STM32 USB_DISCONNECT 2 http://electronix.ru/forum/index.php?showt...32&hl=STM32STM32 audio engine http://electronix.ru/forum/index.php?showt...63&hl=STM32SPI STM32 http://electronix.ru/forum/index.php?showt...54&hl=STM32STM32 SPI(NSS - Hardware NSS mode) http://electronix.ru/forum/index.php?showt...79&hl=STM32stm32f100 Проблемы с настройкой DAC в RCC http://electronix.ru/forum/index.php?showt...74&hl=STM32Atollic TrueSTUDIO®/STM32, Отзывы http://electronix.ru/forum/index.php?showt...94&hl=STM32Программирование фильтров по входам таймеров на STM32 http://electronix.ru/forum/index.php?showt...43&hl=STM32STM32F103 и захват потока данных, Справится ли? http://electronix.ru/forum/index.php?showt...21&hl=STM32STM32F103x делимся впечатлениями http://electronix.ru/forum/index.php?showt...60&hl=STM32STM32 USB_DISCONNECT http://electronix.ru/forum/index.php?showt...94&hl=STM32STM32 или LPC17xx? http://electronix.ru/forum/index.php?showt...39&hl=STM32STM32 и DFU http://electronix.ru/forum/index.php?showt...83&hl=STM32stm32f105, APB1 http://electronix.ru/forum/index.php?showt...93&hl=STM32STM32 CAN + USB, Оба сразу не работают и БЕЗ варинтов ? http://electronix.ru/forum/index.php?showt...54&hl=STM32STM32 MCKIT, Асинхронник и АРМ http://electronix.ru/forum/index.php?showt...34&hl=STM32stm32 stop mode, Не могу разбудить микроконтроллер внешним прерыванием http://electronix.ru/forum/index.php?showt...90&hl=STM32STM32 mp3 playbaak http://electronix.ru/forum/index.php?showt...08&hl=STM32STM32 ReadOut protection, мт-линком http://electronix.ru/forum/index.php?showt...15&hl=STM32STM32F101C8 и FreeRtos, Имеет ли смысл? http://electronix.ru/forum/index.php?showt...88&hl=STM32Как обойти совмещение пинов can и usb на stm32f103 http://electronix.ru/forum/index.php?showt...31&hl=STM32STM32 SDIO 4bit SD-card, Подскажите кто делал, в чем может быть проблема http://electronix.ru/forum/index.php?showt...44&hl=STM32STM32F103 USB, Что то не получается. http://electronix.ru/forum/index.php?showt...71&hl=STM32Вопрос по таймеру в STM32 Cortex http://electronix.ru/forum/index.php?showt...76&hl=STM32Кит на STM32, Интересный кит. http://electronix.ru/forum/index.php?showt...66&hl=STM32STM32 + IAR + download & debug, вопрос по старту программы http://electronix.ru/forum/index.php?showt...13&hl=STM32STM32: Отладка в RAM http://electronix.ru/forum/index.php?showt...31&hl=STM32STM32 TIM4 Output Compare 4 http://electronix.ru/forum/index.php?showt...13&hl=STM32STM32F20X - что-то новое от ST http://electronix.ru/forum/index.php?showt...05&hl=STM32STM32 & NAND http://electronix.ru/forum/index.php?showt...59&hl=STM32stm32f107vct непонятки с CAN, в loopback CAN1 работает а CAN2 нет http://electronix.ru/forum/index.php?showt...57&hl=STM32STM32 Virtual COM, STM32 Virtual COM http://electronix.ru/forum/index.php?showt...04&hl=STM32STM32 отладка в SRAM http://electronix.ru/forum/index.php?showt...81&hl=STM32STM32F103 и его SPI – непонятки http://electronix.ru/forum/index.php?showt...02&hl=STM32STM32F103 + Flash Loader Demonstrator, проблемы с процессом прошивки http://electronix.ru/forum/index.php?showt...37&hl=STM32stm32 i2c http://electronix.ru/forum/index.php?showt...34&hl=STM32Технический семинар по STM32(Москва, проводил Компел), был на нем... http://electronix.ru/forum/index.php?showt...81&hl=STM32STM32 Virtual COM Port дрова для Vista http://electronix.ru/forum/index.php?showt...23&hl=STM32STM32F103RBT6 не прошивается http://electronix.ru/forum/index.php?showt...29&hl=STM32STM32 LQFP100 & ext.SRAM multiplexed mode, КАК??? http://electronix.ru/forum/index.php?showt...76&hl=STM32Проблемы J-Link + SТМ32 http://electronix.ru/forum/index.php?showt...88&hl=STM32STM32, micro-eeprom в "Option bytes" http://electronix.ru/forum/index.php?showt...04&hl=STM32STM32, gcc, тип long long, ld ругается при сборке проекта http://electronix.ru/forum/index.php?showt...62&hl=STM32STM32 & ADC, не могу запустить AnalogWatchdog http://electronix.ru/forum/index.php?showt...98&hl=STM32STM32 не работает с J-Link, не понимаю... http://electronix.ru/forum/index.php?showt...38&hl=STM32Максимальное разрешение многоканального программного ШИМ на STM32, Проверьте мои измышления, плз http://electronix.ru/forum/index.php?showt...82&hl=STM32переварить NTSC c помощью STM32, видеокартинка на ноуте http://electronix.ru/forum/index.php?showt...54&hl=STM32Анонсированы новые семейства STM32F105 и STM32F107 с Ethernet MAC 10/100, Сравниваем с LPC17xx с Ethernet http://electronix.ru/forum/index.php?showt...75&hl=STM32Стратегии сброса через J-link, разные для LPC24XX и STM32? http://electronix.ru/forum/index.php?showt...77&hl=STM32поднять USB на Olimex STM32-H103, апноут не курится http://electronix.ru/forum/index.php?showt...42&hl=STM32stm32 max jtag speed http://electronix.ru/forum/index.php?showt...91&hl=STM32STM32F101x + LSE, проблема с часовым генератором http://electronix.ru/forum/index.php?showt...42&hl=STM32как подключить программатор на FTDI к IAR для работы с STM32 http://electronix.ru/forum/index.php?showt...43&hl=STM32STM32 + RTC&IrDA, Есть ли подводные камни? http://electronix.ru/forum/index.php?showt...20&hl=STM32Атомарная операция, STM32F10x http://electronix.ru/forum/index.php?showt...24&hl=STM32STM32: одновременно использовать DMA для USART1 и SPI2 нельзя? http://electronix.ru/forum/index.php?showt...60&hl=STM32STM32F101 Rev. Z http://electronix.ru/forum/index.php?showt...74&hl=STM32Errata для STM32 http://electronix.ru/forum/index.php?showt...75&hl=STM32STM32 и ADC, Где храниться информация о текущем конвертируемом канале АЦП из группы http://electronix.ru/forum/index.php?showt...77&hl=STM32STMicroelectronics разродилась новым семейством - STM32 http://electronix.ru/forum/index.php?showt...69&hl=STM32натокам периферии STM32, Синхронизация массивов, передаваемых и принимаемых по DMA http://electronix.ru/forum/index.php?showt...35&hl=STM32stm32 не работает pwm на remap TIM3_CH2 (PB.5) http://electronix.ru/forum/index.php?showt...89&hl=STM32STM32 + IAR, Подскажите методологию http://electronix.ru/forum/index.php?showt...39&hl=STM32DAC в STM32 Cortex, Библиотечные примеры не работают http://electronix.ru/forum/index.php?showt...55&hl=STM32Кеил и STM32, Что не позволено дивайсу? http://electronix.ru/forum/index.php?showt...54&hl=STM32STM3210B-EVAL http://electronix.ru/forum/index.php?showt...93&hl=STM32STM32F103xxx от ST, Контроллер на ядре Cortex-M3 http://electronix.ru/forum/index.php?showt...94&hl=stm32
--------------------
Magic Friend
|
|
|
|
|
Nov 26 2010, 06:58
|
Участник
Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160
|
Цитата(Danis @ Nov 24 2010, 10:59) STM32F102C6 не работает с MT-Link. Смотрел приведенные выше темы. Там не мой случай. Аналоговое питание подключено, mt-link подключал коротким шнурком. результат - 0. Пробую законнектиться с процем с помощью JFlashARM.exe V382. пишет Код Connecting ... - Connecting via USB to J-Link device 0 - J-Link firmware: V1.20 (J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5) - JTAG speed: 5 kHz (Auto) - Initializing CPU core (Init sequence) ... - ERROR: Failed to connect и выдает окно Код Bad JTAG communication: Write to IR: Expected 0x1, got 0x7 (TAP Command : 2) @ Off 0x5 свежескаченный JFlashARM.exe V420p пишет Код Connecting ... - Connecting via USB to J-Link device 0 - J-Link firmware: V1.20 (J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5) - JTAG speed: 5 kHz (Fixed) - ERROR: Wrong AHB ID (15:3). Expected 0x04770001 (Mask 0x0FFFFF0F), Found 0xFFFFFFFF - Initializing CPU core (Init sequence) ... - JTAG speed: 5 kHz (Fixed) - ERROR: Failed to connect jlink.exe при запуске пишет Код SEGGER J-Link Commander V4.20p ('?' for help) Compiled Nov 19 2010 15:55:19 DLL version V4.20p, compiled Nov 19 2010 15:55:07 Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5 Hardware: V5.00 S/N: 11111117 VTarget = 3.339V Info: Could not measure total IR len. TDO is constant high.
WARNING: CPU core not found. No devices found on JTAG chain. Trying to find device on SWD. No device found on SWD. Did not find any core. No devices found on JTAG chain. Trying to find device on SWD. No device found on SWD. Did not find any core. J-Link> питание звонил и мерил - все нормально. jtag выводы звонил и смотрел осциллографом - тоже все нормально, кроме вывода которым контроллер должен отвечать - там всегда 1. из jlink.exe дергал ногами jtag тоже дергается что и где положено. в JFlashARM.exe добавлял reset и halt - не помогло. JFlashARM.exe V420p выбирал процессор STM32F102C6 и STM32F102C6(allow opt///) тоже не помогло. сброс от залочки JLinkSTM32.exe говорит Код Connecting to J-Link...O.K. Using SWD as target interface. Target interface speed: 1000kHz. Could not identify STM32 device. Press any key to exit. mt-link рабочий - коннектится к sam7x без проблем аппаратного выключения jtag вроде в этом проце нет процессоры новые... пробовал wigglerом - тоже не коннектится версия mt link Hardware: V5.00 может в этом проблема? может есть еще какие нибуть идеи и соображения?
|
|
|
|
|
Nov 28 2010, 17:45
|
Twilight Zone
Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990
|
Цитата(Alfa @ Nov 26 2010, 10:58) может есть еще какие нибуть идеи и соображения? Может Вам 6-ю версию прошивки попробовать? Могу скинуть схему 6-го MT-LINK и прошивку если надо? У меня есть MT-LINK v6.0 шьет STM32 нормально.
--------------------
Magic Friend
|
|
|
|
|
Nov 29 2010, 03:53
|
Участник
Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160
|
Цитата(Danis @ Nov 28 2010, 22:45) Может Вам 6-ю версию прошивки попробовать? Могу скинуть схему 6-го MT-LINK и прошивку если надо? У меня есть MT-LINK v6.0 шьет STM32 нормально. Приму с благодарностью и схему и прошивку.... Написал вам письмо...
|
|
|
|
|
Dec 3 2010, 03:47
|
Участник
Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160
|
Проблема решена. были перепутаны tms и tck ноги jtag.... mt-link версии 5.0 работает с контроллерами st32...
Сообщение отредактировал Alfa - Dec 3 2010, 03:49
|
|
|
|
|
Dec 4 2010, 11:43
|
Знающий
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499
|
Наткнулся на одну непонятную вещь в таймере общего назначения (2-4) STM32F103.
Работаю с таймером 2. 3-й канал сконфигурирован как вход. Направление счета как up-counter. Цель- измерять период импульсов на ноге - входе 3-го канала).
3-й канал настроен на Input Cupture, по факту захвата вызывается прерывание. (CC3IE=1) В обработчике регистр таймера обнуляется, и регистр захвата переписывается в переменную. Все банально. В идеальных условиях все работает.
Но есть особенность- не понятно, как к этой конфигурации относится ARR ? Опытным путем установлено что его надо устанавливать в 0xFFFF, для полного диапазона измерений. Предполагаю, что после перезагрузки таймера туда запишется это число?.
Также, после старта программы, таймер должен хоть один раз переполнится до возникновения первого прерывания. Иначе в регистре захвата какие-то числа, не соответствующие периоду возникновения прерываний, сильно превышающие его. (контролирую прерывание, дергая в обработчике ножкой и смотрю осциллографом).
Логика обнаружения этой особенности работы- надо или подавать импульсы на вход после старта программы или включать прерывание через некоторое время после старта программы.
Пока обошел это, поставив включение прерывания по захвату в конец загрузочных операций, чтобы после инициализации таймера проходило времени больше чем период таймера.
Но мне это не нравится. Очевидно, есть какое-то событие, происходящее по переполнению таймера, приводящее к корректной работе. Но какое?
|
|
|
|
|
Dec 4 2010, 20:44
|
фанат дивана
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684
|
Цитата(Serj78 @ Dec 4 2010, 16:43) Очевидно, есть какое-то событие, происходящее по переполнению таймера, приводящее к корректной работе. Но какое? Это событие называется "update event". По нему ARR и прескалер грузятся из предварительного в теневой регистр. То есть, начинают действовать новые значения. Для генерации update event вручную надо сделать так: Код TIM2->EGR |= TIM_EGR_UG; И ещё совет: не надо каждый раз сбрасывать таймер. Это расточительно (практически таймер занят только под один канал захвата), и к тому же страдает точность (вы теряете тики, прошедшие за время входа в прерывание). Просто запоминайте предыдущее значение регистра захвата, и вычитайте его из вновь захваченного. Это даст длительность импульса. А таймер пусть работает в свободном режиме (от 0 до 0xFFFF).
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Dec 5 2010, 10:08
|
Знающий
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499
|
Цитата(AHTOXA @ Dec 4 2010, 23:44) Это событие называется "update event". По нему ARR и прескалер грузятся из предварительного в теневой регистр. То есть, начинают действовать новые значения. Для генерации update event вручную надо сделать так: Код TIM2->EGR |= TIM_EGR_UG; И ещё совет: не надо каждый раз сбрасывать таймер. Это расточительно (практически таймер занят только под один канал захвата), и к тому же страдает точность (вы теряете тики, прошедшие за время входа в прерывание). Просто запоминайте предыдущее значение регистра захвата, и вычитайте его из внования не запрещать ь захваченного. Это даст длительность импульса. А таймер пусть работает в свободном режиме (от 0 до 0xFFFF). Спасибо! Про то что таймер можно не сбрасывать, я подумал, но извечная привычка экономить переменные и память на них пересилила.. (пока мне нужен только один канал захвата).. Теперь пытаюсь понять- я что же происходит при старте программы если прерывание разрешено и есть импульсы на входе? ? пробовал смотреть в отладчике содержимое регистров- все работает корректно- значения ARR не меняется.. меняется ли прескалер, вот не посмотрел.. .. При приходе прерывания выполняется обработчик, таймер сбрасывается, потом начинает увеличиваться.. но при приходе следующего импульса значение регистра захвата и самого таймера не 400-500мкс , как ожидалось, а 14-15 тысяч. Величина прескалера- 71, частота счетчика получается 1 Мгц.
|
|
|
|
|
Dec 12 2010, 11:57
|
Знающий
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725
|
Цитата(Serj78 @ Dec 5 2010, 11:08) ...пробовал смотреть в отладчике ... При приходе прерывания выполняется обработчик, таймер сбрасывается, потом начинает увеличиваться.. но при приходе следующего импульса значение регистра захвата и самого таймера не 400-500мкс , как ожидалось, а 14-15 тысяч. Ключевое слово: "под отладчиком". В STM32F по умолчанию периферия продолжает "тикать" в реальном времени, пока происходит останов под отладчиком или пошаговые прохождения по программе. Чтобы остановить периферию (в твоем случае - Таймер), необходимо установить при инициализации системы нужный бит в узле отладки, что можно сделать либо библиотечной функцией: Код DBGMCU_Config (DBGMCU_TIM3_STOP, ENABLE); // stop timer3 while debugging либо на "регистровом" уровне программирования: Код DBGMCU->CR |= DBGMCU_TIM3_STOP; Конечно, внешний измеряемый сигнал остановить нельзя, но под отладчиком, по крайней мере, не будет выбега таймера.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|