Добрый день.
Нет ли возможности проверить в симуляторе за какое время STEPPER1_PRU1 исполнит, если задать:
accel_ramp := 5000000,
decel_ramp := 500000000,
max_speed := 300000,
min_speed := 300,
stepper_quantity := 800
Добрый день.
Нет ли возможности проверить в симуляторе за какое время STEPPER1_PRU1 исполнит, если задать:
accel_ramp := 5000000,
decel_ramp := 500000000,
max_speed := 300000,
min_speed := 300,
stepper_quantity := 800
Код не смотрел, в эмуляторе получается так:
2017-06-29_dwordacc.png
25 мс на всё про всё.
Ну, да.
Чёрные полосы это следствие того, что PRU цикл фиксирован. Каждый импульс отдельной точкой нарисован, но точек много и они наслоились.
Возьмём для примера, что PRU цикл указан в 1мкс.
Это значит, что переключение выхода будет выполняться не чаще, чем раз 1 мкс.
Например, если PRU переключает выход каждые 10 циклов (каждые 10 мкс), то частота меандра на выходе будет 1/(10мкс+10мкс) = 50.0кГц
Если же выход будет переключаться через каждые 9 циклов (каждые 9 мкс), то частота меандра на выходе будет 1/(9мкс+9мкс) = 55.5кГц
Если же 0 и 1 будут разной длительности (например, 10 тактов 1, потом 9 тактов 0), то частота меандра на выходе будет 1/(10мкс+9мкс) = 52.6кГц
Т.е. скачкИ по 2-3 кГц. Чтобы таких сильных изменений частоты не было, блок размазывает длительности импульсов. Например, для получения частоты 51кГц генерируются импульсы длительностью в 19 и 20 мкс вперемешку в нужной пропорции.