Project

General

Profile

R1 PWM » History » Version 1

krufter_multiclet, 06/16/2015 12:33 PM

1 1 krufter_multiclet
h1. ШИМ (PWM) Мультиклет R1
2 1 krufter_multiclet
3 1 krufter_multiclet
Краткие характеристики:
4 1 krufter_multiclet
* 4 канала;
5 1 krufter_multiclet
* режим генерации одиночного импульса;
6 1 krufter_multiclet
* возможность изменения периода счетчика во время его работы (при определенных условиях);
7 1 krufter_multiclet
8 1 krufter_multiclet
Контроллер ШИМ (PWM) предназначен для генерирования широтно-модулированных импульсов. PWM является 4-х канальным и имеет режим генерации одиночного импульса, а также допускает возможность изменения периода счётчика во время его работы (при соблюдении условий, описываемых в соответствующем пункте).
9 1 krufter_multiclet
10 1 krufter_multiclet
*Инициализация ШИМ*
11 1 krufter_multiclet
Для инициализации ШИМ необходимо задать в регистре PWM_CR режим работы интерфейса и счётчика, а также выбрать каналы, работу которых мы хотим разрешить. Следующим шагом устанавливаем активный/неактивный уровень включённого/выключенного канала. Кроме того возможно разрешить прерывания соответствующего канала, а также возможно разрешение прерываний по переполнению счётчика.
12 1 krufter_multiclet
13 1 krufter_multiclet
*Режимы работы ШИМ*
14 1 krufter_multiclet
Генерация импульсов ШИМ возможна в однократном или периодическом режиме, установка производится в бите PWM_CR(PULSE_MODE). Счётчик запускается в трёх режимах: инкрементирующий, декрементирующий  и режим увеличения до максимального значения, а потом уменьшения до нуля. Установка режима работы счётчика производится в бите PWM_CR(AUTO_RELOAD). Разрешается активировать возможность изменения периода счётчика во время его работы в бите PWM_CR(CNT_MODE), но только при определённых условиях.
15 1 krufter_multiclet
16 1 krufter_multiclet
*Прерывания ШИМ*
17 1 krufter_multiclet
Прерывания бывают двух типов: по переполнению счётчика и по достижению счётчиком определённого канала значения регистра сравнения. Прерывания разрешаются в регистре управления, а запрос прерываний фиксируется в регистре PWM_INT.
18 1 krufter_multiclet
19 1 krufter_multiclet
*Длительность импульса ШИМ*
20 1 krufter_multiclet
Длительность активного уровня импульса ШИМ будет определяться как разность значения периода счётчика PWM_CNT и значения регистра сравнения PWM_CMPCHn, умноженная на произведение длительности одного такта процессора и значения предделителя PWM_PSC.