MX_Master 1 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба В продолжение темы про защиту открытого бинарника прошивки ... Уже давно хочу сделать простенький вариант ЧПУ контроллера. Чтоб можно было и с готовыми ЧПУ системам (Mach3, LinuxCNC, ...) юзать. И, при желании, со своим вариантом ЧПУ связку сделать. Одна только проблема - в электронике не силён. Все варианты схем и разводки платы буду выкладывать прямо здесь. Опытных людей здесь много. Поэтому, если не трудно, посмотрите, что у меня получилось и обязательно дайте пинка где что исправить. Проект рисовал в easyeda, чтоб было удобно расшарить и, в последствии, заказать изготовление плат (с монтажом или без). Что требуется от контроллера: Быстрая коммуникация c ПК по сети (Ethernet 10/100) Достаточное кол-во цифровых входов/выходов (с переключаемыми уровнями 5..24V) для управления шаговыми (и серво) драйверами, лазерными модулями, энкодерами, концевиками, индуктивными датчиками и т.п. Как минимум один порт RS485 для управления частотниками (VFD) https://oshwlab.com/MX_Master/MX32 Schematic_MX32_2021-08-18.pdf Schematic_MX32_2021-08-18.svg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 24 minutes ago, MX_Master said: Проект рисовал в easyeda Пока такие замечания: 1. Рисуйте линии от ножки до ножки. Очень непросто читать схему, где все пины висят фактически в воздухе, и приходится мысленно строить связи от метки до метки, а иногда и до нескольких меток. 2. Метки делайте одного цвета, например чёрные. 3. Между цифровым значением и обозначением единицы измерения ставьте пробел. Т.е. не 470К, а 470 K. А ещё лучше 470 кОм. 4. Рисуйте порты питания. Т.е. не просто GND или +3V3, а общепринятый символ общего провода и стрелочка вверх для питания. 5. Обозначения пишите рядом с компонентами, а то для резисторов пишите внутри, например. 6. Лучше подписывать назначение каждого разъёма, а не просто писать над ними сверху "Цифровые выходы". Потому что Вам понятно, а мне, например, приходится просматривать столбец этих выходов, и убеждаться, что это точно выход. По функционалу: 1. Нет защит цифровых входов от перенапряжения, статики. Здесь можно посмотреть эту тему. 2. Нет защит цифровых выходов от элементарного КЗ или подачи на этот выход напряжения. Посмотреть можно верхнюю тему, и поискать по форуму. 3. Нет защиты RS-485 от статики, перегрузки по напряжению и т.п. 4. Нет ни одного предохранителя ни где. Схема выглядит какой-то ненадёжной без этого) 5. Не понятно, что будет вставляться в сокеты, обозначенные на скрине. 24 minutes ago, MX_Master said: Уже давно хочу сделать простенький вариант ЧПУ контроллера. Может быть проще купить что-то готовое на али, и переписать прошивку. Это в плане железа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба Странная какая-то схема: ноги наугад раскиданы что ли? Я вот делаю нечто подобное (трехкоординатная подвижка для небольшой CMOS-камеры). И мне для трех двигателей с трудом всех таймеров STM32F072CBT6 хватило: один таймер генерирует ШИМ для ноги STEP драйвера ШД, второй таймер забирает сигнал с инкрементного энкодера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 4 hours ago, haker_fox said: Может быть проще купить что-то готовое на али, и переписать прошивку. Не проще: там обычно трассировка через одно место сделана, а не как положено. Так что, только свое с нуля разрабатывать! Почему-то у китайцев не принято на двигатели вешать энкодеры, т.е. им вообще наплевать: застрял вал, не застрял. Тяп-ляп - и в продакшн! И STEP-импульсы они ногодрыгом генерируют, а не таймером. В общем, идеальный показатель того, как делать нельзя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MX_Master 1 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба Про косяки рисования понял. Про защиту понял. Вечером посижу над этим в редакторе, потом покажу результат. В непонятные сокеты втыкаются двухпиновые перемычки. Надо этот момент наглядно отразить в схеме. Если перемычки нет, то можно подключать на вход сигналы до 24V. Если перемычка есть, то только до 5V. Готовые китайские платы я бы с удовольствием покупал. Но у китайцев никогда не получается развести входы/выходы так, чтоб хотя бы что-то нормально попало на аппаратные таймеры. Китайцы предпочитают выводить и считать сигналы программно. А это мне не подходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 54 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 7 часов назад, MX_Master сказал: Уже давно хочу сделать простенький вариант ЧПУ контроллера. Чтоб можно было и с готовыми ЧПУ системам (Mach3, LinuxCNC, ...) юзать. Если только круче вот этой системы: https://purelogic.ru/catalog/elektronika/kontrollery_chpu/ Иначе что-то делать смыла никакого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 7 часов назад, haker_fox сказал: 1. Рисуйте линии от ножки до ножки. Очень непросто читать схему, где все пины висят фактически в воздухе, и приходится мысленно строить связи от метки до метки, а иногда и до нескольких меток Это не всегда удачное решение. Часто в паутине таких линий запутаться проще, чем мысленно строить связи. Когда линий много и они идут вместе гораздо более читаемо выглядят шины. Причем отдельные шины для каждой логически связанной группы сигналов, а не одна глобальная шина на весь лист (в этом случае от нее пользы тоже нет). Примерно так: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 18 августа, 2021 Опубликовано 18 августа, 2021 (изменено) · Жалоба 13 часов назад, Eddy_Em сказал: один таймер генерирует ШИМ для ноги STEP драйвера ШД Зачем генерировать шаги ШИМом?? 13 часов назад, Eddy_Em сказал: И STEP-импульсы они ногодрыгом генерируют, а не таймером. В общем, идеальный показатель того, как делать нельзя. А представляете, на старых ЧПУшках не было столько таймеров и там ногодрыгом все делалось, разве, что для энкодеров ставили спец. счетчики, и нормально было вполне)) Поэтому, когда сам разводил схему контроллера когда-то давно, предпочел использовать таймеры МК именно для работы с энкодерами, а не ШД.. Изменено 18 августа, 2021 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 19 часов назад, MX_Master сказал: Уже давно хочу сделать простенький вариант ЧПУ контроллера. Чтоб можно было и с готовыми ЧПУ системам (Mach3, LinuxCNC, ...) юзать. И, при желании, со своим вариантом ЧПУ связку сделать. Не из праздного любопытства, зачем изобретать велосипед? Вроде у MESA открыты исходники, повторяй, да расширяй систему. Оптимальность кода не вызывает никаких сомнений, видно, разрабатывали далеко не глупые люди. Сделать что-то свое, тем более на микроконтроллере, близкое по надежности и стабильности, очень сложно. По цене тоже не вижу выигрыша. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 18 августа, 2021 Опубликовано 18 августа, 2021 (изменено) · Жалоба 2 hours ago, mantech said: Зачем генерировать шаги ШИМом?? Потому что других вариантов нет, чтобы надежно получить постоянную скорость!!!111 2 hours ago, mantech said: ногодрыгом все делалось Это называется "гланды через задницу удалять". Оно вроде работает, а на деле — нет! Даже в убогих восьмибитках конструкция вида "for(int i=0; i<N;++i);" будет зависеть от того, сработало прерывание в этот момент, или нет! А в ARM'ах с их конвейером, вообще нельзя так делать. Для фрезеров же крайне важно, чтобы движение бура было равномерным, иначе даже несчастной 50-микронной точности не добьешься!!!111 Изменено 18 августа, 2021 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 августа, 2021 Опубликовано 19 августа, 2021 · Жалоба 14 hours ago, Сергей Борщ said: Это не всегда удачное решение. Часто в паутине таких линий запутаться проще, чем мысленно строить связи. На схеме автора мне показалось загрузки линиями не будет. Естественно я подразумевал, что количество линий должно быть разумным, в т.ч. нужны и шины. На предприятии у меня именно так и рисуем) 4 hours ago, mantech said: Зачем генерировать шаги ШИМом?? Кстати, косвенный плюс от "ногодрыга" в том, что если МК "зависнет", то движки, скорее всего встанут, что более безопано. В случае таймеров они могут продолжать работать, пока не упрутся в концевик, если он есть, конечно. 2 hours ago, rloc said: тем более на микроконтроллере А чем плох микроконтроллер? И на чём можно делать надёжные и стабильные системы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 августа, 2021 Опубликовано 19 августа, 2021 · Жалоба 4 hours ago, Eddy_Em said: фрезеров Пожалуйста... фрезерный станок! Не токарь... а токарный станок) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 19 августа, 2021 Опубликовано 19 августа, 2021 · Жалоба 3 часа назад, haker_fox сказал: А чем плох микроконтроллер? И на чём можно делать надёжные и стабильные системы? У автора в качестве примера были указаны контроллеры, применяемые в LinuxCNC и Mach3. Это системы, где расчетом траектории занимается хост-машина, а на контроллер возлагаются логические задачи. Для меня, вполне очевидным видится применение FPGA из самых простых и доступных серий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MDD 0 19 августа, 2021 Опубликовано 19 августа, 2021 · Жалоба 5 hours ago, Eddy_Em said: Потому что других вариантов нет, чтобы надежно получить постоянную скорость!!!111 Это называется "гланды через задницу удалять". Оно вроде работает, а на деле — нет! Даже в убогих восьмибитках конструкция вида "for(int i=0; i<N;++i);" будет зависеть от того, сработало прерывание в этот момент, или нет! А в ARM'ах с их конвейером, вообще нельзя так делать. Для фрезеров же крайне важно, чтобы движение бура было равномерным, иначе даже несчастной 50-микронной точности не добьешься!!!111 Вы почему-то исходите из соображений, что шпиндель ЧПУ должен "летать" на пределах скоростных возможностей шаговых двигателей и остальной механики. На самом деле фрезеровка это достаточно медленный процесс. Скорость подачи определяется из технологических соображений (материал, глубина фрезеровки, диаметр фрезы, скорость вращения шпинделя и т.д.). Поэтому ногодрыг может быть вполне допустим, если прерывания добавляют небольшой джиттер. Я уже писал, что мой хоббийный ЧПУ нормально работает на древнем РС (Sempron 1.66ГГц) под Вин ХР через LPT порт. Точность 20мкм обеспечивает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 августа, 2021 Опубликовано 19 августа, 2021 · Жалоба 30 minutes ago, rloc said: FPGA из самых простых и доступных серий. Гм... и снова не понимаю. Чем микроконтроллер с ядром Cortex-M4(F) для расчёта траекторий и управления двигателями? У этой микроархитектуры есть расширения для ЦОС. Если программировать умеючи, то можно решить поставленную задачу, я думаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться