Помогите разобраться в коде MCD К1921ВК01Т2

Разработки в области Motor Control, опыт применения зарубежных микроконтроллеров и изделий АО "НИИЭТ" в области задач управления двигателями, приводами разного типа

Модераторы: ea, Alis, pip, gurzzza

Ответить
serge_pwm
Сообщения: 16
Зарегистрирован: 25 апр 2025, 20:31
Предприятие: Айсо-энерго сервис

Помогите разобраться в коде MCD К1921ВК01Т2

Сообщение serge_pwm »

Привет всем!
Пытаюсь разобраться в коде и возник вопрос, очевидно от недостатка знаний. Каким образом ШИМ может управляться асинхронно? Ну вот посмотрите. Допустим частота таймера ШИМ (TIMER0) 20 КГц. Это значит, что через каждые 1/20КГц секунд на выход поступит импульс с определенной скважностью. Чтоб получить синус, скважность КАЖДОГО импульса должна измениться по закону синуса. Однако скважность пересчитывается с частотой 10 КГц в функции fast_calc(). Это значит что синус формируется с частотой 10 КГц на удвоенных импульсах таймера? В линейных цифрах -если синус должен быть 0-1-2-3-2-1-0 мы делаем 0-0-1-1-2-2.......? Или я чего не понимаю?
Дальше идет АЦП. Работает синхронизируясь с таймером ШИМ от таймера 7 (TIMER7)

Код: Выделить всё

timer7_initparam.period = (TIMER_CAR(TIMER0) << 1)/30;
Т.е. для усреднения АЦП берет 30 точек и чтоб успеть период его запуска в 30 раз меньше периода ШИМ. Учитывая что регулирование базируется на измеренном токе, а его значение появляется 1 раз в 30 периодов ШИМ, то собственно частота регулирования 666 Гц. А если взять частоту ШИМ 10 КГц, то 333 Гц всего 6 регулировок за период синуса? Это значит бешеный импульс тока длительностью 2 мс вобще не будет замечен? Или я опять чего не понимаю?
Ответить

Вернуться в «Motor Control»