LinuxCNC + Orange Pi

Контроллеры, драйверы, датчики, управляющие устройства.
arkhnchul
Мастер
Сообщения: 1768
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 337
Откуда: москва
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение arkhnchul »

с аппаратным таймером поиграть не выйдет? судя по даташиту, там их всего три штуки, есть не занятый системой?
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

arkhnchul писал(а):с аппаратным таймером поиграть не выйдет? судя по даташиту, там их всего три штуки, есть не занятый системой?
Один, кажись, не занят. Тактируется от 24 МГц. Но в контексте ОС мы его можем использовать только для точного замера времени. Сам он пины дёргать, вроде как, не умеет. Ну и, пока непонятно, можно ли в обход системного планировщика выполнять код обработчика по переполнению таймера. Это еще более низкий уровень чем тот, на котором я сейчас провожу тесты. Когда-ньть, канеш, докапаемся..
Аватара пользователя
Argon-11
Мастер
Сообщения: 1736
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 392
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение Argon-11 »

MX_Master писал(а):можно ли в обход системного планировщика выполнять код обработчика по переполнению таймера.
Для атомарности кода используется "критическая секция". Это, судя по всему, относится именно к драйверу уровня ядра.
muxa
Мастер
Сообщения: 226
Зарегистрирован: 15 мар 2012, 12:29
Репутация: 23
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение muxa »

ногодрыг оно конечно хорошо, только вот с ногами у китайцев беда. оно там так намуксовано, что с этих огрызков даже I2S для звука без танцев с бубном и паяльником не выведешь толком.
поэтому имхо надо смотреть в сторону hm2_spi чтобы просто не терять время.
З.Ы, имея 1гекар мозгов на материнке с атомом, грузил в linuxcnc G код ( иконы) обьемом метров по 600.
оно конечно задумывалось, но после загрузки "тяжести" файла заметно не было. так шта имхо 512мб должно хватать.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

Насчёт ногодрыга.. Почитал немного datasheet к чипу H3 на предмет DMA. Складывается впечатление, что быстрый и точный ногодрыг можно организовать как раз с помощью DMA. А именно - переносом (в обход проца) массива из ОЗУ (DDR) в регистр чипа (SRAM), отвечающий за состояние пинов какого-либо порта. Звучит оптимистично, да. Но в STM32 (который тоже ARM) так делать можно.
arkhnchul
Мастер
Сообщения: 1768
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 337
Откуда: москва
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение arkhnchul »

а как получится "точный" дрыг? один фиг нужно некое стабильное отсчетное событие, по которому будут меняться значения в ram.
Аватара пользователя
Serg
Мастер
Сообщения: 20996
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 4980
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение Serg »

MX_Master писал(а):Ну и, пока непонятно, можно ли в обход системного планировщика выполнять код обработчика по переполнению таймера.
Начать стоит с изучения архитектуры ядра Linux... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

arkhnchul писал(а):а как получится "точный" дрыг? один фиг нужно некое стабильное отсчетное событие, по которому будут меняться значения в ram.
Если DMA будет работать на какой-ньть постоянной частоте, то отсчетные события будут не нужны. Нужную выходную частоту можно будет получить разнося в DMA массиве значения 1 и 0 дальше или ближе друг от друга. Но это пока что теория.
UAVpilot писал(а):Начать стоит с изучения архитектуры ядра Linux...
Хорошо, изучим
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

Так, с аппаратной генерацией шагов с помощью DMA всё понятно. Одним словом - геморрой. А в двух словах.. Перед тем как начать перенос массива в регистры выходных пинов, нужно этот массив как-то создать. Создавать придётся процессорно. Причём, времени на создание массива будет уходить больше, чем на его перенос в регистры выходных пинов. Это значит, что DMA будет иногда курить, пока процессор заполняет массив новыми значениями. Иными словами, будут паузы при выполнении УП, а это плохо. Можно, канеш, при открытии УП полностью просчитать и перевести всю траекторию в длииииииииинный массив значений выходных пинов. А потом с помощью DMA этот длинный массив переносить в регистры по частям. Но такое возможно только для небольших файлов УП, и это тоже плохо. ИТОГО: DMA на 100% можно использовать только для вывода ШИМ на любых пинах, а для вывода шагов DMA не подходит.

Для генерации шагов остаются два способа:
  1. внешний генератор (на STM32) по SPI
  2. внутренний программный генератор + RT
Если с RT системой на Orange Pi One будут проблемы, не совместимые с дальнейшей разработкой, то будем использовать только внешний генератор. Один генератор (1.8$) = 4 оси, два генератора (3.6$) = 8 осей, ...

Раз с генераторами шагов всё понятно, надо бы обсудить вопрос управления шпинделем и частотником. Первый вариант, который приехал в мозг - это связка из двух недорогих модулей:
  1. Модуль с MCP4725 (ЦАП), управление по I2C - 0.8$
  2. Модуль опторазвязки с TLP281 на 4 канала - 1.1$
Первый - это 12-ти битный (4096) ЦАП, который выдаёт напряжение от 0 до 5V для управления оборотами шпинделя в частотнике. Второй модуль управляет контактами FOR/REV/... частотника для включения шпинделя в нужном направлении. Кто что думает по этому поводу?
1pcs-lot-MCP4725-I2C-DAC-Breakout-module-development-board.jpg (2772 просмотра) <a class='original' href='./download/file.php?id=120747&sid=c4cab362f15bcd4dd079dfd73976ec5a&mode=view' target=_blank>Загрузить оригинал (38.21 КБ)</a>
TLP281-4-Channel-Opto-isolator-IC-Module-For-Arduino-Expansion-Board-High-And-Low-Level-Optocoupler.jpg (2772 просмотра) <a class='original' href='./download/file.php?id=120748&sid=c4cab362f15bcd4dd079dfd73976ec5a&mode=view' target=_blank>Загрузить оригинал (234.71 КБ)</a>
Аватара пользователя
Argon-11
Мастер
Сообщения: 1736
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 392
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение Argon-11 »

MX_Master писал(а): Кто что думает по этому поводу?
а может, правильнее цифровой интерфейс использовать типа RS485 или что там сейчас популярно у частотников?
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

Argon-11 писал(а):
MX_Master писал(а): Кто что думает по этому поводу?
а может, правильнее цифровой интерфейс использовать типа RS485 или что там сейчас популярно у частотников?
Оно, канеш, лучше, но сколько частотников столько будет и форматов управления. Т.е. надо читать мануалы к каждому частотнику и писать отдельные программки для каждого. Это, скорее, на будущее. К тому же, в простых частотниках RS485 нет. А вот "0-10V + ВКЛ" почти всегда есть.

В частотниках бывают и другие режимы управления, например, дискретные - "3 пина, 8 скоростей" или "3 пина, 3 скорости" и т.д.
arkhnchul
Мастер
Сообщения: 1768
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 337
Откуда: москва
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение arkhnchul »

дык тут в чипе есть PWM, и вроде ак не один канал. Чем он не устраивает?
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

arkhnchul писал(а):дык тут в чипе есть PWM, и вроде ак не один канал. Чем он не устраивает?
всем устраивает, подскажи куда в частотнике заводить ШИМ 3.3V ?
Lunatic
Мастер
Сообщения: 447
Зарегистрирован: 09 мар 2015, 20:25
Репутация: 72
Настоящее имя: Дмитрий
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение Lunatic »

Наверно лучше гальванически отвязать задание 0-10В от частотника, схема для подключения ШИМ есть на одной оптопаре в инструкции на kflop. Только резисторы придется подбирать под тип пары и входное напряжение.
Аватара пользователя
Shkryab
Опытный
Сообщения: 143
Зарегистрирован: 15 июн 2017, 21:25
Репутация: 18
Настоящее имя: Леонидыч
Откуда: Страна, которой нет
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение Shkryab »

MX_Master писал(а):
arkhnchul писал(а):дык тут в чипе есть PWM, и вроде ак не один канал. Чем он не устраивает?
всем устраивает, подскажи куда в частотнике заводить ШИМ 3.3V ?
Ключ с коллекторной нагрузкой на 12В, резистор последовательно, конденсатор на землю. При необходимости буфер. И на частотник.

Схему нарисовать? ;)
Аватара пользователя
Evilmax
Мастер
Сообщения: 238
Зарегистрирован: 02 окт 2015, 05:30
Репутация: 134
Настоящее имя: Максим
Откуда: Ленинград
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение Evilmax »

MX_Master писал(а):Так, с аппаратной генерацией шагов с помощью DMA всё понятно. Одним словом - геморрой. А в двух словах.. Перед тем как начать перенос массива в регистры выходных пинов, нужно этот массив как-то создать. Создавать придётся процессорно. Причём, времени на создание массива будет уходить больше, чем на его перенос в регистры выходных пинов. Это значит, что DMA будет иногда курить, пока процессор заполняет массив новыми значениями. Иными словами, будут паузы при выполнении УП, а это плохо. Можно, канеш, при открытии УП полностью просчитать и перевести всю траекторию в длииииииииинный массив значений выходных пинов. А потом с помощью DMA этот длинный массив переносить в регистры по частям. Но такое возможно только для небольших файлов УП, и это тоже плохо. ИТОГО: DMA на 100% можно использовать только для вывода ШИМ на любых пинах, а для вывода шагов DMA не подходит.
Всё понятно, интереса к затее больше нет. Тему можно закрывать
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

Lunatic писал(а):Наверно лучше гальванически отвязать задание 0-10В от частотника, схема для подключения ШИМ есть на одной оптопаре в инструкции на kflop. Только резисторы придется подбирать под тип пары и входное напряжение.
Что-то мне подсказывает, что ЦАП модуль можно развязать с апельсинкой не занятыми оптопарами на модуле с TLP281
Shkryab писал(а):Ключ с коллекторной нагрузкой на 12В, резистор последовательно, конденсатор на землю. При необходимости буфер. И на частотник.
А как же быть с идеей о готовых модулях? :hehehe:
arkhnchul
Мастер
Сообщения: 1768
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 337
Откуда: москва
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение arkhnchul »

MX_Master писал(а):куда в частотнике заводить ШИМ 3.3V ?
один фиг все пины гальванически развязывать или хотя бы уровни согласовывать. Лишний транзистор картины не изменит.
MX_Master писал(а):А как же быть с идеей о готовых модулях? :hehehe:
существуют современные "радиокубики", вполне себе готовые модули рассыпухи)
Аватара пользователя
MX_Master
Мастер
Сообщения: 6308
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2701
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение MX_Master »

Вощем, с управлением частотником боль мень понятно. Заказал дополнительно модуль UART<>RS485.
Буду пробовать всё это дело на своем Huanyang'e :)

А теперь вопрос по управлению DC шпинделем. Я такими еще не пользовался, поэтому знаю не так много.
Поделитесь, у кого есть такой шпиндель, как он у вас подключен и как вы управляете оборотами.
HTB1QBamKFXXXXX3XVXXq6xXFXXXI.jpg (2664 просмотра) <a class='original' href='./download/file.php?id=120767&sid=c4cab362f15bcd4dd079dfd73976ec5a&mode=view' target=_blank>Загрузить оригинал (84 КБ)</a>
Первое предположение - это взять вот такой модуль (6.5$)
HTB1CBH.RXXXXXbkXFXXq6xXFXXXY.jpg (2659 просмотров) <a class='original' href='./download/file.php?id=120768&sid=c4cab362f15bcd4dd079dfd73976ec5a&mode=view' target=_blank>Загрузить оригинал (626.22 КБ)</a>
Но вместо потенциометра (0-5V) использовать вышеуказанный модуль ЦАП (0-5V). Как думаете?
Последний раз редактировалось MX_Master 24 сен 2017, 06:18, всего редактировалось 1 раз.
nevkon
Почётный участник
Почётный участник
Сообщения: 1899
Зарегистрирован: 17 июл 2015, 10:25
Репутация: 231
Настоящее имя: Константин
Откуда: Балаково (Саратовская обл.)
Контактная информация:

Re: ЧПУ контроллер на базе Orange Pi

Сообщение nevkon »

У меня подобного вида. Управление с компа вкл/выкл. И вручную кручу обороты на звук :) (ну не сделал еще датчик оборотов). Один с самопальным ШИМ на 555 таймере, второй на распространенном БП.
Ответить

Вернуться в «Электроника»