Всем хорош GRBL на микроконтроллере ATMega, но уже не тянет он дальнейшего развития. Упёрся в потолок, всё на пределе - память, производительность.
Поэтому умные люди портировали GRBL на микроконтроллер STM32 в соседней теме.
Однако там есть другая засада: вместо того, чтобы купить за копейки готовую плату с ATMega32 и драйверами либо опторазвязанными выходами под драйвера для более серьёзных моторов, приходится городить скульптуру "Лаокоон, борющийся со змеями" из "blue pill" и кучи дополнительных самопальных решений, тут уж кто во что горазд.
В принципе, несложно за пару недель по вечерам развести всё это дело, заказать плату, спаять её и радоваться жизни.
Однако сколько ещё людей сумеет повторить эту конструкцию? Один? Трое? Стоит ли овчинка выделки?
Мне значительно более перспективным кажется следующий подход.
Вот есть на свете такая широко известная в узких кругах плата BL-USBMach3.
Вы скажете, она сделана для работы с Mach3? Да какая нам разница.
Вот давайте сравним готовую плату под GRBL (на такой крутится мой станок) с платой BL-USBMach3.
С такого расстояния - одна и та же фигня. Даже разъёмы под драйверы шаговиков такие же.
Если посмотреть поближе - да всё равно почти одна и та же фигня.
- На GRBL стоит слабенький 8-битный микроконтроллер с частотой 16 МГц, 32 кБ памяти программ и 2 кБ ОЗУ.
- На USBMach3 стоит 32-битный микроконтроллер с тактовой частотой 72 МГц, 128 кБ памяти программ и 20 кБ ОЗУ.
- На GRBL стоит доп. микруха USB->UART CH431
- На USBMach3 ничего не стоит, сам микроконтроллер изображает USB HID устройство (ну, типа, джойстик - с такими устройствами в "ОС" "Уиндоус" можно работать без драйверов).
- На GRBL выводы под драйвера шаговиков на 3 оси (точнее 4 но одна дублируется под ось Y1 & Y2)
- На USBMach3 пять независимых осей
- а так одно и то же.
- На GRBL 5 защищённых оптронами входов.
- На USBMach3 те же 5 защищённых оптронами входов.
- На GRBL есть дополнительно релюха для шпинделей без контроля оборотов.
- Зато на USBMach3 есть активный фильтр 1го порядка на ОУ, который превращает ШИМ в линейное напряжение, для контроллеров бесщёточных двигателей с входом по уровню напряжения.
- Дополнительно 4 защищённых буффером 74HC245 цифровых выхода для управления чем-нибудь дополнительным (ОЖ, туман, сирена...).
- Дополнительно 10 (!) достаточно защищённых ввода на 12-штырьковом разъёме для подключения пульта (или, например, доп. кнопочек на передней панели). Они оптически не изолированы, но для кнопочек управления этого более чем хватит.
- На плате есть 4 контакта под SWD разъём программирования. Программатор стоит 100 рублей на али.
Я взял за 1300 вместе с пультом управления на 8 кнопок. Пульт не ахти, и одна кнопка вообще не работает.
Итак, план работы .
- Снять схему с платы.
- Распланировать использование разъёмов платы.
- Адаптировать прошивку GRBL/STM32 под неё. Придётся писать драйвер USB-UART непосредственно на STM32.
Даже если не доведу до конца, надеюсь, проведённая мной работа кому-то пригодится.
Да хотя бы та же схема BL-USBMach3.