.Если очень хочется на МК "и рыбку съесть и кости сдать", то для плавной программной траектории на приемлемых частотах, нужно выбирать хотя б двуядерные МК
А они стоят в два раза дороже и пошло-поехало...
.Если очень хочется на МК "и рыбку съесть и кости сдать", то для плавной программной траектории на приемлемых частотах, нужно выбирать хотя б двуядерные МК
ESP32 нынче такие дорогие
Для более плавного вывода и более широкого диапазона частот играть нужно обеими величинами. Мы же не просто дискретность в вакууме обсуждаем. Применительно к выводу импульсов для управления ШД, и в диапазоне частот, который физически может выдать софт, дискретность вывода таймера нас более чем устроит. При этом ЦП ещё успеет отдохнуть.
Ну можешь изобразить полный цикл разгона от 0 до Fmax и обратно до 0, всё равно у тебя на самом пике будет меняться только ARR при PSC=0, суть от этого не изменится, я просто предложил изобразить лишь наглядный кусок для понимания сути. Также можешь использовать низкие частоты - эффект полностью сохраняется, просто не так хорошо заметен на анализаторе. И код там не при чём - это особенность работы таймеров и прерываний.
Что тут непонятного.. Если внутри контроллера не крутится свой сервоцикл, то менять частоту надо сразу, как пришло новое задание. Если крутится внутри свой сервоцикл - то менять частоту надо не сразу, задание кладём в буфер.
Хоть и "прокис" вопрос давноMX_Master писал(а): ↑06 июн 2021, 07:03 Небольшой воскресный вопрос![]()
Какой способ программного вывода степ/дир будет для STM32 эффективнее?
- для каждого степ/дир канала свой аппаратный таймер + своё прерывание;
- для всех степ/дир каналов один аппаратный таймер + одно прерывание;
- все степ/дир каналы обрабатывать в основном цикле программы
Бывший ASIC сгодится максимум как автономный контроллер. Мордочку управления всё равно придётся мутить на отдельном устройстве, с передачей данных по сети (Ethernet). Развязку тоже надо делать. Ну и месовские прошивки как-то оптимизировать. С одной стороны (по цене платы) это удобно, с другой стороны (всё остальное) - нетKost_irk писал(а): ↑14 июн 2021, 23:32 Немного не в тему, увидел тут китайцы продают платы от майнеров на xilinx zynq7010 практически даром, на борту ethernet и слот под sd, больше ничего полезного. Soc содержит в себе двухьядерный арм и неплохую фпга. Штатно там крутится линукс, круто бы было запустить linuxcnc прямо там, а на фпга сделать все степгены и прочее мясо. Правда арм кмк слабоват, да и картинку выводить особо некуда.
Спасибо. Вы уже несколько раз этот вариант предлагали, я, просто, о нём забылСергей Саныч писал(а): Хоть и "прокис" вопрос давно
но добавлю свой вариант.
- одно прерывание на базовой частоте для генерации и подсчета шагов для всех каналов.
- второе прерывание для расчетов и управления частотами (servothread по терминологии LCNC).
- индикация, опрос органов управления - в основном цикле.
И ты один из тех, кто хочетmmv писал(а): ↑ Вот Америку то открыли. ЧПУ нц31 и прочие старые. Работают на процессоре с производительностью 100000 операций в секунду. Никаких вам сто ядер и даже мегагерцев.
Программу нужно писать нормально. И критичные участки кода на асме, а не на питонах, Ява и прочих... И графический интерфейс туда же влезет.
Просто хотим взять то что уже написаное и как то запихнуть во что то что китайцы продают.