USB Драйвер коллекторных двигателей на L298
В рамках проекта «говорящая рыба» на свет родился USB контроллер коллекторных двигателей на известной и распространенной микросхеме драйвере L298 с максимальным током одного канала 2А.
USB драйве моторов на L298N
Об этом забавном проекте, в котором применён этот контроллер, напишу позже, а сейчас речь пойдёт о самом драйвере.
Характеристики:
Напряжение питания | — | 5В |
Напряжение моторов | — | 5В |
Максимальный ток мотора | — | 2А |
Частота ШИМ | — | 133,3Гц |
Шагов ШИМ | — | 256 |
Драйвер построен на базе микроконтроллера PIC16F688, преобразователя USB-UART cp2102 и микросхеме готового драйвера двигателей L298.
Схема
Всё питается от 5В, следовательно, и на моторы идёт 5В. Моторы с рабочим током до 2А. Гальваническая развязка отсутствует. Плата разрабатывалась под конкретную задачу, об универсальности не задумывался.
Печатка
Детали. Повторюсь: драйвер построен на PIC16F688 в DIP14 корпусе, cp2102 в QFN-28 и L298 в корпусе Multiwatt15. Обвязка преобразователя интерфейса состоит из конденсаторов C1 0,1мкФ 0805 и C2 чип тантала типоразмера A на 4,7мкФ; светодиода LED1 в корпусе 0603, который сигнализирует он подключение к USB шине, и резистор R1 0805 на 470Ом и три перемычки из резисторов по 0Ом типоразмера 1206. У контроллера обвязки побольше: кварц на 20МГц HC-49S с двумя конденсаторами C4 и C5 по 22пФ в корпусах 0805, резистор R4 4,7кОм 0805 и статус светодиод LED2 с резистором на 470Ом в корпусе типоразмера 0805. Конденсатор C6 0,1мкФ 0805, С3 47-100мкФ 16В. У драйвера двигателей на выходах стоят шоттки диоды VD1-VD8 SK24A в корпусе SMA, которые убирают выбросы моторов. Конденсаторы C7-C11 0805 по 0,1мкФ. C12 электролит 220-470мкФ 16В. X1 – гнездо miniUSB, напряжение питания моторов подаётся через штыри PLS3, со стандартной распиновкой для сервоприводов, моторы к плате подключаются через PLS3 с удалённым среднем контактом, так-же на плате предусмотрено два разъёма для подключения сервоприводов (в нижнем левом углу), но они не задействованы.
Управление
За основу прошивки взял робота М2Д, следовательно, управление у USB контроллера такое же, за исключением опроса датчика, которого нет:
Данные передаются пакетами, длиной по 3 байта:
1 стартовый и одновременно команда
2 передаваемый параметр/значение
3 конечный байт, имеет 13 код или в ASCII – это Enter
Реализованные команды и их значения:
Команда | Параметр | Описание |
A | Байт, скорость вращения 0-255 | Мотор 2 вперед |
a | Мотор 2 назад | |
D | Мотор 1 вперед | |
d | Мотор 1 назад | |
W | Оба мотора вперед | |
w | Оба мотора назад | |
S | Байт, не используется | Стоп моторы |
Т.к. длина посылки фиксированная, в командах без параметров передаётся любое значение вместо параметра.
Alex_EXE | 23.01.2013 | Робототехника |