Полная версия этой страницы:
TIM1 в STM32F100C8
ruslannd
Jul 6 2015, 20:00
Доброго времени суток.
Не могу получить частоты на выходе TIM1_CH4 (он же PA11, он же USART1_CTS)
Пин проца переходит в 0 и все((((
Вот код:
CODE
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
AFIO->MAPR &= ~(AFIO_MAPR_TIM1_REMAP_0 | AFIO_MAPR_TIM1_REMAP_1); //NO TIM1 remapping
RCC->APB2ENR &= ~(RCC_APB2ENR_USART1EN); //UART1 is off
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
GPIOA->CRH |= (0x0BUL << 12); //T1CH4 is out (PA11)
TIM1->CR1 = 0;
TIM1->ARR = 10001;
TIM1->CCR4 = 10000;
TIM1->CCMR2 |= (TIM_CCMR2_OC4M_0 | TIM_CCMR2_OC4M_1);
TIM1->CCER |= (TIM_CCER_CC4E);
TIM1->CNT = 0;
TIM1->EGR |= TIM_EGR_UG;
TIM1->CR1 |= (TIM_CR1_CEN);
Хелп ми, плс....
TIM1->BDTR = TIM_BDTR_MOE; ?
ruslannd
Jul 7 2015, 02:52
Цитата(adnega @ Jul 6 2015, 23:25)

TIM1->BDTR = TIM_BDTR_MOE; ?
Оно самое. Спасибо.
MrYuran
Apr 8 2016, 06:49
А мне не помогло.
Переправил инициализацию на TIM3 - все работает, ногами машет. TIM1 - ни в какую. Ремапятся одинаково, Full remap, но вот с TIM1 что-то пошло не так.
Может, кто сталкивался? Все регистры уже передергал, пока без результата.
Камень 100VBT, счетчик запустился - тикает, а до выходов не доходит.
А что висит на другом конце провода, идущего с ноги МК?
MrYuran
Apr 8 2016, 08:25
Цитата(ViKo @ Apr 8 2016, 10:52)

А что висит на другом конце провода, идущего с ноги МК?

Пока ничего, осциллограф.
нога сконфигурирована как AF_PP с ремапом на порт GPIOE (9,11,13)
и вот ощущение, что ремап как раз и не работает.
Цитата(MrYuran @ Apr 8 2016, 11:25)

Пока ничего, осциллограф.
нога сконфигурирована как AF_PP с ремапом на порт GPIOE (9,11,13)
и вот ощущение, что ремап как раз и не работает.
Тактирование порта GPIOE есть?
MrYuran
Apr 8 2016, 08:52
Цитата(adnega @ Apr 8 2016, 11:48)

Тактирование порта GPIOE есть?
Есть. Дергал туда-обратно, не помогает.
Искал отличия от TIM3, кроме регистра дедтайма не нашел. Но он вроде не должен влиять
Для этого самого ремапа тоже такты включаются, кажется. Я уже не помню, как там в F1xx.
MrYuran
Apr 8 2016, 12:51
Вывел на ногу PA8, без ремапа. То же самое. Значит, собака в другом месте покопалась.
Сергей Борщ
Apr 8 2016, 13:07
QUOTE (MrYuran @ Apr 8 2016, 14:51)

Вывел на ногу PA8, без ремапа. То же самое. Значит, собака в другом месте покопалась.
Там у AFIO свой бит включения тактирования, он включен?
MrYuran
Apr 8 2016, 13:28
Цитата(Сергей Борщ @ Apr 8 2016, 16:07)

Там у AFIO свой бит включения тактирования, он включен?
AFIOEN в APB2ENR? включен, конечно же.
TIM3 в совершенно аналогичной конфигурации работает как надо. И другая периферия, типа USART
А тут даже не знаю, чего бы ещё покрутить.
Как вручную из отладки ногами таймера помахать? Начиная с конца, то есть непосредственно с вывода
Цитата(MrYuran @ Apr 8 2016, 16:28)

А тут даже не знаю, чего бы ещё покрутить.
Можно посмотреть на различия между TIM1 и TIM3. Тот же регистр BDTR, как сказано выше. Ну и проверьте ещё раз настройку Alternate Function. Для пущей уверенности можно сверить с конфигуратором пинов из куба.
Хотя бы, как GPIO, нога машет? Хотя, если на двух портах не работает, то это не то.
Там таймеры от одной шины APB тактируются, или от разных?
MrYuran
Apr 11 2016, 11:03
Все, заработало.
В н-ный раз проверил все регистры, напоследок включил как GPIO, помахал вручную ногой, потом включил ремап, помахал в режиме OCxM = 100, потом включил ШИМ, а он возьми и заработай.
Чудеса.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.