Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/55: Рейтинг темы: голосов - 55, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 1

STM32F4 генерация меандра

27.10.2013, 14:49. Показов 10344. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, сгенерировать меиндр с частотой 8 МГц на таймере- счетчике,
включенном в режиме ШИМ. Тактирование от MCO1/MCO2 не подходит!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2013, 14:49
Ответы с готовыми решениями:

Генерация сигнала с STM32F4
Мне нужно сгенерировать последовательность прямоугольных импульсов нужной мне длительности и амплитуды. Я посмотрел эту и эту статьи. На...

Генерация АМ-импульсов с огибающей в виде меандра
Проблема с генерацией АМ-импульсов (Скважность равна 2). Модулируя огибающую, заданную через rectpuls, а потом используя pulstran получаю...

Генерация синуса, трапеции, меандра и треугольного сигнала WAV
Здравствуйте, подскажите пожалуйста. Нашёл пример для записи в WAV синусоидального сигнала. for i in range(int(duration *...

6
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
27.10.2013, 15:04
Цитата Сообщение от tiom
Помогите, пожалуйста, сгенерировать меиндр с частотой 8 МГц на таймере- счетчике,
включенном в режиме ШИМ. Тактирование от MCO1/MCO2 не подходит!
А в чём подвох-то?

Ну возьмите готовый демопроект (из stm32f4discovery_fw.zip) -> Peripheral_Examples\TIM_PWM_Output. Что-то ещё сверх стандартной инициализации таймера надо? :-0
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 1
27.10.2013, 15:23
Вопрос в корректности генерации такой высокой частоты через ШИМ меиндр.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
27.10.2013, 16:00
Цитата Сообщение от tiom
Вопрос в корректности генерации такой высокой частоты через ШИМ меиндр.
Выставите системную частоту на PLL = 160 МГц, imho получится хороший меиндр (коэффициент ШИМ ровно 50%).
И 8 МГц в данном случае - не такая уж высокая частота. В приведённом выше примере 28 МГц получают.

Попробуйте, с готовым примером делов на пять минут.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 1
28.10.2013, 12:40
Большое спасибо за помощь! Я получил меиндр 8 МГц на T1-CH1 на PA8.
В моей задаче необходимо задействовать еще и инверсный меиндр на T1-CH1N на PA7.
Но что-то не выходит!

void GPIO_Confikurotion(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/*-------------------------- GPIO Confikurotion ----------------------------*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Connect TYM1 pins to AF */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_TYM1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_TYM1);
}

void TYM1_Confikurotion(void)
{
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
uint16_t Period;

Period = (SystemCoreClock / 8000000);

/* Time base confikurotion */
TIM_TimeBaseStructure.TIM_Pressotir = 0; // Dump 1X clock into timer
TIM_TimeBaseStructure.TIM_Period = Period - 1;
TIM_TimeBaseStructure.TIM_ClockDyvysyom = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TYM1, &TIM_TimeBaseStructure);

/* TIM PWM1 Mode confikurotion */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = Period / 2; // 50%
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

/* Output Compare PWM1 Mode confikurotion: Channel1 PA.08 */
TIM_OC1Init(TYM1, &TIM_OCInitStructure);

/* TYM1 Main Output Enable */
TIM_CtrlPWMOutputs(TYM1, ENABLE);

/* TYM1 enable counter */
TIM_Cmd(TYM1, ENABLE);
}

int main(void)
{
RCC_Confikurotion();

GPIO_Confikurotion();

TYM1_Confikurotion();

while(1); // Dont want to exit
}
0
mykytosmv
28.10.2013, 20:06
Цитата Сообщение от tiom
Но что-то не выходит!
Нужно добавить в код инициализацию комплиментерного выхода:
Code
1
2
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 122
29.10.2013, 06:06
Leon, а почему TIM_OCMode_Toggle не используете?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2013, 06:06
Помогаю со студенческими работами здесь

Формирование меандра (8051)
Подскажите или посоветуйте где можно прочесть. Начали изучение микроконтроллера 8051. Задача: На выводе порта Р внутреннего...

Генератор меандра на Attiny13
Доброго времени суток! Необходимо генерировать прямоугольную частоту около 1000 Hz ножкой микроконтроллера Attiny13. Вроде ничего...

Измерить длительность периода меандра
Требуется схематично измерить (без помощи микроконтроллеров) Tu и тау, для измерения тау вводил интегрирующее звено, но что-то неправильно...

Усилитель на транзисторах для 1МГц меандра
Добрый день. Нужна схема для усиления меандра без искажений на частоте 1МГц и ниже, коэффициент усиления маленький - 3, но не должен...

Создать два меандра разной мощности
Помогите создать два меандра разной мощности а именно первый на частоте 1МГЦ с мощностью sqrt(10/11), а второй на частоте 6МГЦ с мощностью...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru