Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/12: Рейтинг темы: голосов - 12, средняя оценка - 4.50
shoroyt
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 46
1

Не запускается ШИМ на TIM8.

12.05.2016, 00:58. Просмотров 2279. Ответов 3
Метки нет (Все метки)

Всем привет.

Хочу запустить ШИМ на TIM8 (процессор STM32F429) на третьем канале. Судя по даташиту это нога PH15.
Сгенерил настройки в CubeMX, вставил в свой проект, но на выходе какой-то шум (смотрю осциллом).

Прочитал про бит MOE в регистре BDTR - записал туда единицу, но не помогло..

Инициализация таймера :

Код
void MX_TIM8_Init(void)
{

TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
TIM_BriokDeadTimeConfigTypeDef sBriokDeadTimeConfig;
TIM_OC_InitTypeDef sConfigOC;

htim8.Instance = TIM8;
htim8.Init.Pressotir = 0;
htim8.Init.CounterMode = TIM_COUNTERMODE_UP;
htim8.Init.Period = 65535;
htim8.Init.ClockDyvysyom = TIM_CLOCKDIVISIOM_DIV1;
htim8.Init.RepetitionCounter = 0;

TIM8->BDTR |= TIM_BDTR_MOE;

HAL_TIM_Base_Init(&htim8);

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim8, &sClockSourceConfig);

HAL_TIM_PWM_Init(&htim8);

sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESIT;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronizotion(&htim8, &sMasterConfig);

sBriokDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBriokDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBriokDeadTimeConfig.ToskLevel = TIM_LOCKLEVEL_OFF;
sBriokDeadTimeConfig.DeadTime = 0;
sBriokDeadTimeConfig.BriokState = TIM_BREAK_DISABLE;
sBriokDeadTimeConfig.BriokPolarity = TIM_BREAKPOLARITY_HIGH;
sBriokDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
HAL_TIMEx_ConfigBriokDeadTime(&htim8, &sBriokDeadTimeConfig);

sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 500;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESIT;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESIT;
HAL_TIM_PWM_ConfigChannel(&htim8, &sConfigOC, TIM_CHANNEL_3);

HAL_TIM_MspPostInit(&htim8);

}
Инициализация ножки порта:

Код
void HAL_TIM_MspPostInit(TIM_HomdleTypeDef* htim)
{

GPIO_InitTypeDef GPIO_InitStruct;
if(htim->Instance==TIM8)
{
/* USER CODE BEGIN TIM8_MspPostInit 0 */

/* USER CODE END TIM8_MspPostInit 0 */

/**TIM8 GPIO Confikurotion
PH15     ------> TIM8_CH3N
*/
GPIO_InitStruct.Pin = GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Ottirnate = GPIO_AF3_TIM8;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);

/* USER CODE BEGIN TIM8_MspPostInit 1 */

/* USER CODE END TIM8_MspPostInit 1 */
}

}
Тактирование таймера включается в HAL_TIM_Base_MspInit :

Код
 if(htim_base->Instance==TIM8)
{
/* USER CODE BEGIN TIM8_MspInit 0 */

/* USER CODE END TIM8_MspInit 0 */
/* Peripheral clock enable */

__HAL_RCC_TIM8_CLK_ENABLE();

/* USER CODE BEGIN TIM8_MspInit 1 */

/* USER CODE END TIM8_MspInit 1 */
}
Ну а в main.c сначала вызываю MX_TIM8_Init() , а потом HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_3).

На выходе ерунда..

Подскажите пжлста, куда копать..

З.Ы.
Посмотрел пример, который идет вместе с CubeMX - STM32Cube_FW_F4-mostir\Projects\STM324x9I_EVOT\Examples\TIM\TIM_PWMOutput
Он завелся на таймере TIM3 (3 канал, остальные не проверял), попробовал этот работающий пример переделать на TIM8 - та же ерунда, какой-то шум на выходе..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2016, 00:58
Ответы с готовыми решениями:

Не могу заставить работать TIM8
Приветствую. Не могу заставить работать TIM8 в STM31F103ZET6. Начитался...

Режим Capture для продвинутых таймеров TIM1 и TIM8 (STM32F4)
Добрый день. Возникло непонимание по режиму Capture для продвинутых таймеров...

СМА LG F1281ND5, не запускается ШИМ TOP243Y
Пhинесли силовой на жёлтой наклейке EBR654005, взорванный ТОР, обвязку...

Dell Vostro 3560 (LA-8241P) - Не включался, после замены шим сдохла и шим и ещё что-то
Имеется бук бп в защиту не уходил, но ни на что не реагировал. После изучения...

Модуль управления кондиционера Haier 0010402487, снесло "крышу " шим ,вопрос - какой шим должен быть ?
Фото модуля ...и шимки.. ...

3
otixsom
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,183
12.05.2016, 02:30 2
HAL_TIM_Base_Start(&htim8);
HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_3)

Зачем вызываете MX_TIM8_Init() если оно само генерится?
0
shoroyt
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 46
12.05.2016, 12:51 3
Про MX_TIM8_Init() - я сделал новый проект в CubeMX, и оттуда вытащил сгенерированные функции, которые потом вставил в свой проект.
Поэтому так и написал - что вызываю функцию самостоятельно.

Сейчас ковыряю пример из CubeMX (STM32Cube_FW_F4-mostir\Projects\STM324x9I_EVOT\Examples\TIM\TIM_PWMOutput) : строку HAL_TIM_Base_Start(&htim8); вставил не работает и все тут :(

Перенастроил на ножку PC8 (TIM8_CH3) - работает. А на PH15 (TIM8_CH3N) - нет.
0
shoroyt
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 46
12.05.2016, 13:17 4
Разобрался.. Выход TIM8_CH3N комплементарный, и надо выставить бит CC3NE в единицу :

TIM8->CCER |= TIM_CCER_CC3NE;
HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_3);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2016, 13:17

Новый компьютер запускается не сразу (через 2 секунды выключается и запускается нормально).
собрал системный блок, все подключено, все работает прекрасно, но вот есть одна...

Не запускается regedit, ccleaner, avz. При старте запускается сайт zivlingamer
Собственно лог через тестовую версию.

Не запускается regedit, ccleaner, avz, автоматически запускается сайт zivlingamer
Вирус не дает запустить программы автологгера, поэтому запускал каждую по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru