ВОПРОС Токарный станок

  • Последнее редактирование:
Последнее редактирование:
240МГц - это тактовая частота. Тогда как частота прерываний может быть назначена. Китайцы поставили дефолтную частоту 200Кгц. И в документации они об этом упоминают, говоря о 2-3us периоде.
Тогда не вижу смысла, кроме радиоканала, в использовании ESP, если даже 328 могет.
А прерывания у меня дрыгаются, кстати, только одной ножкой, направление (DIR), только опрашиваются из обработчика. Формированием этого занимается аппаратно, как уже упоминал, мелкосхема квадратурного преобразователя LS7084. С теми преобразованиями, что на Chipmacker'е, что то не задалось.
Ваши сообщения автоматически объединены:

Что в условиях даже небольших девиаций скорости шпинделя требует неслабых вычислений.
При чём тут девиации с флуктуациями, тупо делятся импульсы энкодера на коэффицент резьбы и от скорости шпинделя это не зависит. Лишь бы хватило скорости вычислений, а вот тут с 328 несколько проблемно, туповата она.
Ваши сообщения автоматически объединены:

Китайцы пишут, что isr для высокочастотных прерываний надо писать не на С, а на ассемблере.
Кто то не дает сделать ассемблерную вставку в код? Тем более, что обработчик это, как бы, отдельная процедура. Счтал состояние ножки DIR, инкрементировал/декрементировал счетчик и отвалил, более ничего не требуется, осальное уже в основном теле решаемо.
 
  • Последнее редактирование:
Последнее редактирование:
При чём тут девиации с флуктуациями, тупо делятся импульсы энкодера на коэффицент резьбы и от скорости шпинделя это не зависит.
Нарезка резьбы делается в три этапа: разгон с ускорением, нарезка, торможение. Потом резец заглубляется и процесс повторяется. С нарезкой и торможением нет проблем, там все просто. А вот с ускорением, для того, чтобы витки не сбивались, посложнее. Потому, что перед началом нарезки, требуется синхронизация по трем параметрам. И при этой синхронизации необходимо учитывать нестабильность вращения шпинделя. Иначе уйдет угол поворота шпинделя.
Ваши сообщения автоматически объединены:

Кто то не дает сделать ассемблерную вставку в код? Тем более, что обработчик это, как бы, отдельная процедура.
Если бы я заморочился с энкодером на 8000 штрихов, тогда да, возможно, что пришлось бы вспоминать ассемблер. Или тебя бы попросил это сделать. Но для начала попробовал бы увеличить частоту прерываний до 1Мгц и посмотрел бы, сдохнет ли Си-шный код.

Но т.к. у меня энкодер с 2000 штрихами и для моих задач этого достаточно, проблем с си не возникает.
 
Потому, что перед началом нарезки, требуется синхронизация по трем параметрам. И при этой синхронизации необходимо учитывать нестабильность вращения шпинделя. Иначе уйдет угол поворота шпинделя.
Поэтому то не по таймеру надо разгоняться а по счетчику импульсов, изменяя коэффициент деления на начальном и конечном этапах, начиная с некоторого и супенями убавлять до нужного. Заметь, что для подач ускорения не нужны, скорость мала, а вот начиная с коэффицента самой мелкой резьбы, вполне можно разгоняться, правда, чем крупнее, тем дольше разгон, но зато стабильно.
А таймеры оставь для аснинхронной подачи и ускоренного хода.
 
  • Последнее редактирование:
Последнее редактирование:
Кто то не дает сделать ассемблерную вставку в код? Тем более, что обработчик это, как бы, отдельная процедура. Счтал состояние ножки DIR, инкрементировал/декрементировал счетчик и отвалил, более ничего не требуется, осальное уже в основном теле решаемо.
Твоими бы устами... Некуда там сваливать, все надо обрабатывать в isr. Причем с такой скоростью, чтобы отработалось до прихода следующего тика энкодера.
Ваши сообщения автоматически объединены:

Поэтому то не по таймеру надо разгоняться а по счетчику импульсов, изменяя коэффициент деления на начальном и конечном этапах, начиная с некоторого и супенями убавлять до нужного. Заметь, что для подач ускорения не нужны, скорость мала, а вот начиная с коэффицента самой мелкой резьбы, вполне можно разгоняться, правда, чем крупнее, тем дольше разгон, но зато стабильно.
А я так и делаю. Только непонятную мне терминологию типа "коэффициент деления" не пользую. Предпочитаю "временной интервал ".
 
  • Последнее редактирование:
Последнее редактирование:
непонятную мне терминологию типа "коэффициент деления" не пользую. Предпочитаю "временной интервал "
Вся то и проблема, что тут таймер использовать нежелательно, разве только для длины выходных импульсов, это можно и асинхронно, а для синхронности использовать только счетчик текущего положения шпинделя и некий расчетный делитель для конкретного шага резьбы. Посмотри, разберись, как это сделано в прошивках от Олега А. начиная с ELS 3b, ускорения начинаются с неё. Правда там под Мегу, но портирование никто не отменял.
Хренасе, глянул почём сейчас эти квадратурники LS7084-S, и маленько офигел... в районе $10, за эту блоху на 8 лапках (SOP8), в свое время я их взял пару за 200₽, одна лежит пока.
 

Вложения

  • Digital_Feed_3b_Uno.zip
    4 KB · Просмотры: 0
Как бэ наличие метки нулевого положения не делают энкодер абсолютным.
Я выше уже обзывал его индексируемым, хотя прекрасно обхожусь и без индекса. Но квадратурный сигнал тут необходим, мало ли...
 
Володь, я не пользую таймер для нарезки резьбы, посмотри код.
То есть даже совсем, 4 упоминания таймера и, ахтунг!!!, 2 раза DELAY. Я понимаю, что это для формирования длины импульса, но delay, это уж черезчур.
 
  • Последнее редактирование:
Последнее редактирование:
То есть даже совсем, 4 упоминания таймера и, ахтунг!!!, 2 раза DELAY. Я понимаю, что это для формирования длины импульса, но delay, это уж черезчур.
esp_timer_start_once - это одноразовый таймер, которой передает сигнал окончания нарезки резьбы или аварийной остановки с ядра прерываний на ядро управления. А delay - это для того, чтобы не пользовать периодический таймер. Что дает возможность локального изменения частоты импульсов ШД в реальном времени. Путем добавления в нужный момент импульса ШД.
esp_timer_get_time() - это штатный низкоуровневый таймер, который работает всегда. Запускается автоматом и служит для контроля всей работы МК.
 
Валер, за год, как создана тема, можно наделать текстолитовых шестерен для гитары под каждый шаг (через 0.1 мм :) ).
 
Валер, за год, как создана тема, можно наделать текстолитовых шестерен для гитары под каждый шаг (через 0.1 мм :) ).
Ага, составить таблицу и для каждого шага искать комбинацию этих шестеренок/четверенок, настраивать и пока настроишь забыть, что хотел выточить то :D
 
Валер, за год, как создана тема, можно наделать текстолитовых шестерен для гитары под каждый шаг (через 0.1 мм :) ).
Юр, это же хобби, развлекаюсь я с оптимизацией алгоритмов. А в реалиях я режу резьбу на этом станочке ну очень редко. И все нужные шестеренки у меня есть. СТАЛЬНЫЕ!!!. А все, что мне было реально нужно для этого станочка - это ШД-зация продольной и поперечной подачи плюс радиоуправление. Что я давно уже сделал.
 
что мне было реально нужно для этого станочка - это ШД-зация продольной и поперечной подачи плюс радиоуправление. Что я давно уже сделал.
Ну, ШД-зация станка это понятно, для удобства, не дергать шестерёнки, а вот радиоуправление то на кой, чейта не догоняю.
 
Ну, ШД-зация станка это понятно, для удобства, не дергать шестерёнки, а вот радиоуправление то на кой, чейта не догоняю.
Во-первых, интересно было сделать, раньше с двумя ядрами не работал, много чего нового для себя открыл. Во-вторых - удобно. Но это удобство познается только в сравнении, не попробуешь - не поймешь. И те, кто пользует WiFi на 3018 - уже поняли.
 
  • Спасибо
Реакции: 2aas
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать