Почему частоту ШИМ у PMP20 задают значением в десять раз больше?
Единица задания частоты в команде PWM — 0,1 Гц, поэтому в операнд пишут значение, в десять раз превышающее нужную частоту. Это сделано, чтобы можно было задавать дробные частоты целым числом.
Примеры пересчёта:
- 100 Гц → в операнд пишут 1000.
- 1 кГц → 10000.
- 72 кГц → 720000.
- 12,5 Гц → 125.
Из этого следуют две практические вещи. Первая: значение частоты почти всегда выходит за пределы 16 бит, поэтому команда 32-битная, а регистр под частоту занимает два слова — записывать в него нужно командой DMOV, а не MOV. Вторая: диапазон 1 Гц…100 кГц в операнде превращается в 10…1000000.
Частая ошибка при наладке: частота получается ровно в десять раз ниже ожидаемой. Это значит, что в операнд записали герцы, а не десятые доли герца.
Скважность, в отличие от частоты, задаётся не в процентах, а числом 1…65535 от полного периода, и пересчитывается как n / 65535 × 100 %.
Прикреплённая документация
Георгий Жуков
Ведущий инженер