MKS Monster8
Nov. 1st, 2022 04:57 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Придумали китайцы такую интересную штуку, которая в теории может независимо семью моторами управлять. Конечно, у коллеги возникло желание эту штуку использовать в разрабатываемых железяках — таки готовый девайс, знай себе только прошивку смени, и вуаля: хочешь по USB управляй моторами, хочешь — по CAN… И цена вполне себе привлекательная, особенно если со всякими "пусироботами" сравнивать!
Однако, уже на этапе рассмотрения принципиальной схемы этой штуки я сразу увидел гору косяков. Ну не могут, к сожалению, китайцы нормально разрабатывать!!! Во-первых, для управления тринамиковскими драйверами по UART на 8 драйверов нужно всего лишь 2 UART'а (а учитывая то, что управление нужно лишь для записи конфигурации, можно и одним обойтись, мультиплексируя его на два канала), а перемычками можно установить номер драйвера на соответствующем канале. Но китаезы, как обычно, набыдлокодили софтовый UART (triple facepalm), да не просто 1-2 штуки (как и надо было бы), а по каналу на каждый драйвер!!! Аппаратный же USART1 тупо выведен на колодку непонятно зачем…
Управление по USB, естественно, наговняно исключительно G-кодами, безо всякой возможности работы по нормальному протоколу (ну, это и понятно: ведь ожидалось, что эта плата только в 3D-принтерах или ЧПУ будет использоваться). С CAN я даже не разбирался (бегло нигде не увидел протокола).
Теперь смотрим, куда подключены ноги CLK… Тадам! Тупо наобум, а не к таймерам!!! Что ж они так любят ногодрыгом-то страдать? Теперь понимаю, зачем они взяли STM32F407, хотя с задачей справился бы и МК попроще: не только для работы с плавающей точкой, но и чтобы моща чипа позволяла ногодрыгом рукоблудить. И софтовый UART пинать… Блин, меня от этого софтового уарта до сих пор колбасит, ржу, не могу!
Я не собираюсь таким быдлокодерством заниматься, поэтому, естественно, буду разрабатывать свою плату с правильным подключением. У меня уже есть управлялка тремя ШД (да еще и с обратной связью по энкодерам), можно на ее основе сделать управлялку шестью двигателями без энкодеров. А если забить на разгон-торможение для части движков (либо же мультиплексировать), то и того больше! И USART для тринамиковских драйверов нормально подсоединить (или же вообще на SPI их посадить — надо смотреть). Кстати, у этих рукожопов предусмотрено управление драйверами по SPI, но вот реализация — через жопу: во-первых, эти узкоглазые ослы подключили сигнальные линии к лапам МК, не имеющим аппаратного SPI, а во-вторых, в прошивке не предусмотрена адресация драйверов при изначальной настройке (судя по всему, плату наговняли "с заделом на будущее", но потом забили на часть функционала). Кстати, сама плата на 8 двигателей (2 из них — синхронных), однако в настройках есть доступ лишь к шести.
Для Ъ краткая выжимка: в очередной раз китайцы показали, что ничего путного разработать не могут! Возможно, оно и работает, но сам стиль разработки — как обычно, "через жопу". Когда уже у китайцев вменяемые разработчики появятся? Вот не стыдно им. Да еще и в мастдайке гребаной!!! Где их хваленый "Red Flag Linux"? Зачем в работе использовать псевдо-ОС для имбецилов, которая прошивка для игровых приставок?
Однако, уже на этапе рассмотрения принципиальной схемы этой штуки я сразу увидел гору косяков. Ну не могут, к сожалению, китайцы нормально разрабатывать!!! Во-первых, для управления тринамиковскими драйверами по UART на 8 драйверов нужно всего лишь 2 UART'а (а учитывая то, что управление нужно лишь для записи конфигурации, можно и одним обойтись, мультиплексируя его на два канала), а перемычками можно установить номер драйвера на соответствующем канале. Но китаезы, как обычно, набыдлокодили софтовый UART (triple facepalm), да не просто 1-2 штуки (как и надо было бы), а по каналу на каждый драйвер!!! Аппаратный же USART1 тупо выведен на колодку непонятно зачем…
Управление по USB, естественно, наговняно исключительно G-кодами, безо всякой возможности работы по нормальному протоколу (ну, это и понятно: ведь ожидалось, что эта плата только в 3D-принтерах или ЧПУ будет использоваться). С CAN я даже не разбирался (бегло нигде не увидел протокола).
Теперь смотрим, куда подключены ноги CLK… Тадам! Тупо наобум, а не к таймерам!!! Что ж они так любят ногодрыгом-то страдать? Теперь понимаю, зачем они взяли STM32F407, хотя с задачей справился бы и МК попроще: не только для работы с плавающей точкой, но и чтобы моща чипа позволяла ногодрыгом рукоблудить. И софтовый UART пинать… Блин, меня от этого софтового уарта до сих пор колбасит, ржу, не могу!
Я не собираюсь таким быдлокодерством заниматься, поэтому, естественно, буду разрабатывать свою плату с правильным подключением. У меня уже есть управлялка тремя ШД (да еще и с обратной связью по энкодерам), можно на ее основе сделать управлялку шестью двигателями без энкодеров. А если забить на разгон-торможение для части движков (либо же мультиплексировать), то и того больше! И USART для тринамиковских драйверов нормально подсоединить (или же вообще на SPI их посадить — надо смотреть). Кстати, у этих рукожопов предусмотрено управление драйверами по SPI, но вот реализация — через жопу: во-первых, эти узкоглазые ослы подключили сигнальные линии к лапам МК, не имеющим аппаратного SPI, а во-вторых, в прошивке не предусмотрена адресация драйверов при изначальной настройке (судя по всему, плату наговняли "с заделом на будущее", но потом забили на часть функционала). Кстати, сама плата на 8 двигателей (2 из них — синхронных), однако в настройках есть доступ лишь к шести.
Для Ъ краткая выжимка: в очередной раз китайцы показали, что ничего путного разработать не могут! Возможно, оно и работает, но сам стиль разработки — как обычно, "через жопу". Когда уже у китайцев вменяемые разработчики появятся? Вот не стыдно им. Да еще и в мастдайке гребаной!!! Где их хваленый "Red Flag Linux"? Зачем в работе использовать псевдо-ОС для имбецилов, которая прошивка для игровых приставок?