Прочитал весь топик. Респект за разработки, тоже сам поначалу хотел на транзисторных мостах лепить для себя .. но посмотрел на L298N модули и прикупил их. покупал в мае 4шт за 360руб .. итого 90руб за готовый модуль на 2 мотора по 2А...
Вопрос: чем они хуже чем самодельные мосты на АО4606 по приведенным схемам?
Дело в том, что засовывая платы от Ардуино в Лего-детальки, уже подумал "а не сделать ли шилд" для Меги с моторами и серво? По идее, в формат платы Меги2560 можно упихать пару L298N и разъемы для 12-и серводвигателей (на базе всех 4-х 16-и разрядных таймеров).. тогда "проводов окажется значительно меньше..
Есть аргументы в пользу АО4606 или IRF7319 и навесухи?
ага: падение напряжения. теряется мощность и нагрев самого драйвера
плюс торможение драйвером мотора при 0 или 1 шима. не то чтобы очень критично, но я хотел чтобы его не было. дополнительный нагрев и торможение двигателя
а вообще дело твое. если все это некретично не стоит и заморачиваться
Не очень понял, или меня это действительно мало интересует.
Дело в том, что у меня на моих шилдах L298N работают перемотанные 130-е моторы проводом 0.2-0.25мм под напругой в 4-6В от 4-х NiMH имею: ХХ=0.15А, рабочий ток 0.5-0.9А под нагрузкой, а ток останова у них около 2.5А .. шилды пашут вполне нормально, не греются (или я не замечаю). С пары шилдов поснимал радиаторы и положил микросхемы для уменьшения высоты сборки с Лего деталями - тоже "особых проблем" не вижу.
.. или вы это отписали на предмет АО4606, в смысле что ежели делать на них, то греться будет? Поясните, правда не понял.
Текущий конструктив "моторного блока" выглядит примерно так:
А хочется в виде платы в формате Мега2560, чтобы соединять с Мегой не проводами, а тупо втыканием в разъемы... вот и думал, что может не разбирать свои шилды, а сделать на мостах 4606 по тутошним схемам..
P.S. Ну и хотелось упихать все 8 моторов на один шилд, а заодно сделать "расческу" для серво двигателей на нем же ..
от двух литиевых запитай заряженных и посмотри. я в гусеничном шасси заметил. гонял правда по песку, траве и всяким препяттствиям, нагрелся сильно, палец не выдерживал. и это с радиатором
Там, аккумы конечно уже юзанные из фотика, но КЗ в 3-5А ещё выдают .. Посмотрю тщательнее. Li-ion - нету. Не подходят по диапазону напряжений: 3.7-4.2В .. поставить 1 - "маловато будет", а поставить 2 - сервы погорят (SG90 - до 7В, где-то читал..), а силовая напруга от одного блока батареек. Делать ещё и Dc-Dc преобразователь .. нафига?
А по тутошним схемам - будет греться на АО4606? По даташиту они вроде как 5 амперники. Расчетные токи нужны в районе ампера - это нормальная работа движков. Лего детали имеют солидное трение в ряде случаев, особенно когда "неродное лего".
Просто уже очень хочется развести это на шилд ... 4хL298N на 8 моторов = 3*8 = 24 провода от шилдов к меге .. а ещё энкодеры 8шт от моторов .. там такой "зверь" получается .. :)
Пасибки, что надоумили потестировать. Вчера проверил эту версию, что без радиаторов. Да, на новых аккумах из фотика, или на свежих алкалиновых батарейках - греется. Поставил стенд и покрутил моторы в режиме 0.5сек "туда и обратно" с интервалом на переключение в 50миллисекунд. Начиная с середины третьей минуты - греется весьма ощутимо: пальцем уже держать проблемно. При этом, токи на стенде не превышали 1.5А, сказалось "отсутствие нагрузки". Похоже поддохшие аккумы не выдают достаточного тока когда мосты переключаются и оба плеча открыты.
Э-эх, полез на али заказывать микрухи... как понимаю, схема в №254 (ваша) это по сути управление затворами через "открытый коллектор".
имей в виду. схема из 254 поста на 1 мотор требует 2 шим канала и 1 обычный. итого на 8 моторов нужно 16 шимов и 8 обычных
еще не передумал делать эту схему или 8 каналов?)))
не знаю где там открытый коллектор, там вообще биполярников нет)) шим подается только на n канальные, так как их микроконтроллер легко переключает, а p-канальные задают направление. программная задержка на переключение направления, чтобы не было сквозных токов
В вашей схеме затворы АО4606 управляются транзюками, стоки (коллекторы) которых подвязаны на напругу питания моторов через резистор. Такой подход "в целом" называется "выход с открытым коллектором". Есть куча простой логики с таким выходом, как раз для развязки напряжений логики управления и силовой части. Если схему из начала темы перевести на микрухи с "ОК" (открытый коллектор), то можно решить вопрос по "любому" способу управления, в т.ч. и с 1 ШИМ сигналом... вечерком попробую накидать схемку.
Да, мне надо (ну очень хочется) реализовать плату на 8 маршевых (силовых) моторов. 32 ноги меги я на них "уже выделил" (ещё энкодеры! забыл про них для других применений: X-bus: А0-7, С0-7, WR, RD, ALE + T0in + UART1-3 и 8 аналоговых входов, которые прерывания PCINT 3-го уровня). ШИМ на моторах - будет программный. Сюда же, на плату хочу вывести все PWM ноги "в ряд" с доп. ногами для земли и питания, так чтобы серводвигатели можно было втыкать прямо в такой шилд. Для маршевых моторов думаю приспособить USB-разъемы: 2 силовых и один на энкодер.
Остальные ноги - вывести как входы датчиков .. Аналоги 0-3 у меня уже работают в "микрофонных ушах" робота в режиме дифференциального сравнения с усилением 10/200 раз. С сервой - могут поворачиваться и реагировать, скажем на хлопок ... или есть программная фильтрация - ловит "шум моторов" вражеского робота и определяет направление по углу серв на "ушах". Это как "дополнение" к ультразвуковому датчику. :)
"итого" получится шилд на 11-12 аппаратных серв (все 16-и разрядные счетчики позволяют поставить 50гц через регистр захвата таймера! Командно достаточно только менять значение в OCRрегистре канала), 4-3 ШИМ "моргалки" .. проблема с 13 ногой - она совмещенная.. и 8 силовых моторов с энкодерами. Обрамить это чудо также как мегу и получить в результате "блок управления" круче любого Майндшторма "на порядок" ... в меньшем размере. :)
По схеме. хз пока чем рисовать, но за основу хочу взять схему с #46,47,65, с заменой 74ACT08 на 74HC09 (ЛИ2) - это 4 х 2И с открытым коллектором. А вот их коллекторы надо будет подвесить на питание моторов как в вашей схеме #254 и #74.
1. Открытый коллектор и резисторы позволяют питать моторы напругой отличной от питания логики.
2. Выхода Ардуино отвязаны от мосфетов
3. Всего 2 сигнала управления DIR и PWM, что радует.
Пробую освоить линуксовый kicad, типа что-то такого:
ну хз как будут раскачиваться емкости затворов при такой схеме. я не зря полевик с резистором поставил только на смену направления, так как на землю разряжается емкость хорошо, а заряжается через резистор дольше. изза этого дополнительный нагрев. хотя если уменьшить номинал может и получится, надо проверять
Не смог выложить поудобнее. Там рисунок практически так и выглядит в этом "кикаде" .. уродство какое-то или я с ним ещё не подружился. Идея, надеюсь понятна: заменить 74HC08 (ЛИ1) на 74HC09 (ЛИ2), и соответственно воткнуть резисторы подтяжки до питания моторов. Остальное - как было. Предельный ток там вроде как 25ма .. точно такой же как и у вас через 470 ом.
Если можете отрисовать и просчитать в чем-то разумительном - буду признателен. Напруга моторов от 6 до 12 вольт.
Тут тоже буду думать. Вчера чуть не пожег серву SG90... аккумы сели, и я воткнул 8шт вместо 4-х, дабы не ждать сутки когда зарядятся... в итоге, во время остановки маршевых моторов напруга подскакивала до 9.5 вольт .. серву клинануло по серъезному, пришлось разбирать. Движок был горячий как утюг. Остыла, вроде работает. Похоже таки не зря пишут про предел в 7.2 вольта...
По компоновке на мега-шилд: получается что "в ряд" можно поставить тока 4 мотора, поэтому вчера заказал 74-ую серих тоже в SOP корпусах, дабы смонтировать по 4 драйвера на каждую сторону платы.. :)
Ну .. у нас этакий "лего-ардуино-конструктор", как видно из фото. Собери робота сам, какого хочешь. Оффтоп конечно, но поясню:
1. Практика показывает что 3-4 моторов Лего-майндшторм явно и катастрофически недостаточно для сборки роботов. Но там это "всего". Серводвигателей я там не заметил. Народ решает "проблему" подключением 2-х и более блоков управления.. что "дорого". Один полноценный комплект Лего - тянет на 30-45тыс.руб., а уж два ... поэтому и занятия в основном "в платных кружках". Мои "соседи" (кружок Легороботов) в апреле закупались на областную дотацию .. на 150тыс.р. и оказалось "маловато" .. :(
Вот и задумал сделать Ардуино вариант: дешево и сердито. ;)
2. Далеко не всегда подходят сервы. В частности, свои 4 мотора мы приладили "на ура" в первый же день как собрали шилд на 4 мотора: 2 мотора - "туда-сюда" тележкой, 1 мотор - на поворот "стрелы" 360грд, и 1 мотор ушел на "крюк" крана + серва (тогда была только 1шт) на наклон стрелы .. а часто требуется только 4 мотора на движение тележки (полный привод а-ля "луноход").
Сейчас, когда пришли сервы и их теперь аж 10шт (6xSG90 + 2xMG90S + 1xMG995 + 1xMG996) .. легче, но "не значительно": 3 сервы уходит теперь только на оконечную часть "руки": захват + 2 поворота для точной настройки.. на вращение руки 360грд - 1 мотор, на её наклон - 1 мощная серва, на выдвижение руки (4 секционный пантограф на 0 .. 40см) ещё 1 мощная серва + серва на датчик узв. + 2 сервы на вращение "ушами" (2микрофона) ..
Итого уже 8 серв + 5 движков (ещё полный привод тележки). Пока так, но "аппетит приходит во время еды". Хочется таки иметь "запас". Ибо уже идут разговоры что надо ещё для спец. упоров хотя бы парочку, когда в сумо бороться это чудо будет (тоже движки, сервы...) :)
Да, кстати. С ЛИ2 - засада. Посмотрел чего заказал и там его не оказалось. Типа "нету"... пошарил по даташитам и упс. "обломс": есть только 74S09 но очень дорого или 74LS09 .. но они чахлые - 4-8мА, а вот "подходящих" серий типа 74HC09 (20мА) - нетути... и в наших магазах ЛИ2 - на "раз-два" и обчелси... ушел думать как переделать на 2И-НЕ с ОК...
В свое время я уже задумывался насчет логики с ОК, но нашел эту идею несостоятельной. Там получаются сразу несколько врожденных дефектов, каждый из которых стоит того, чтобы отказаться от данного решения полностью.
Посмотрите внутреннюю схему, которую приводит производитель для 47HC09:
Если вы подтянете "OUTPUT" на рисунке к напряжению питания моста, то последнее через подтягивающий резистор и расположенный слева от "OUTPUT" диод благополучно окажется на шине питания +5в (Vcc). Последствия могут быть самые неожиданные, но вряд ли приятные.
Ну вот как раз xx74HC09xx -- имеют какие-то "странные" описания. Так на Али TC74HC09AF -- это внезапно "сдвиговый регистр", причем у "каждого первого" поставщика.
Впрочем, я уже прикинул, что схема легко трансформируется на базу 2И-НЕ, особенно если учесть что вход "dir" - по большому счету все равно какое плечо моста включает. А среди них каких только нет и с "ну очень большим током" и "в повышенным напряжением ОК" и супер скоростные.. :)
В целом требуется 1 инвертор на транзюке и 1 логика 2И-НЕ (ЛА..) на мост. Тут вот ещё что подумалось ... а нельзя ли логику организовать на транзюках тоже и использовать какую-нибудь транзисторную сборку на 6-8 шт.? Есть такие? Тогда вопрос "предельного напряжения" для моста как-бы отпадает тоже.
По схеме: использование инверсионного и прямого сигнала для "dir" приводит к тому, что задержка на инверторе дает порядок работы моста типа 1-2-2-1, в том смысле, что если PWM - включен, то сквозные токи - практически гарантированы на время инвертора при одном из смен направлений. Но, с другой стороны, если смена направления (dir) происходит при запрещенном pwm - то ваще 146% гарантия от сквозных токов (чем и понравилось).
Поскольку у меня парное количество драйверов, то поставил отдельно инверторы.
Так, заметил что один инвертор можно убрать, или перебросить ногу 5 на ногу 1 инверторов. Тогда, правый полумост будет управляться с задержкой t1, а левый с задержкой 2t1, но оба плеча (верх и низ) - синхронно. Почти.
Идея ШИМить верхними транзисторами будет считататься условно-годной, только, если по другому никак. P-канальные мосфеты обладают худшими характеристиками, чем N-канальные и это приводит к тому, что максимальные частоты там будут существенно ниже, а тепла выделяться значительно больше. Ну и задумка разряжать затворы верхних мосфетов через резисторы определяет, что ШИМ там будет медленным и печальным.
В свое время я уже задумывался насчет логики с ОК, но нашел эту идею несостоятельной. Там получаются сразу несколько врожденных дефектов, каждый из которых стоит того, чтобы отказаться от данного решения полностью.
Посмотрите внутреннюю схему ...
Да, пожалуй Вы правы. Серия 74HC и прочие, что сейчас продаются - это все КМОП, и там по сути нет "открытого коллектора" как явления. Стало быть "втыкать" можно только наши ТТЛ типа К155, КР153х .. смотреть по токам и временам "что лучше подойдет". Или монстрячить ОК транзистором.
Ну это я нарисовал только как идею перевода схемы на 2И-НЕ логику. "медленный" - это сколько?
по даташиту емкость затвора около 680пф на АО4606. Стало быть имеем время разряда около 1.5нс на каждый ом резистора .. около микросекунды, то бишь 500кГц, и ШИМ думаю может потянуть в районе 20кГц .. это "мало"? Конечно не мегагерцы... но мне - движки крутить, а там чем выше ШИМ - тем хуже управление скоростью (инерция вращения якоря).
Упс. Уточнил. 680пф - это у n-канального, у p=канального 920пф .. да, хуже раза в полтора. 2.2RC даст 2.02 нс/ом или для 620 ом будет 1.25мксек. Это частота в районе 400кГц. Соответственно, предел для ШИМ раз в 20 меньше.
Считать надо не емкость, а общий заряд затвора -- Total Gate Charge. Не смотря на то, что это некий синтетический параметр, именно его надлежит использовать в расчете скорости нарастания напряжения на затворе.
Питание моста напряжением выше 5-7 вольт вызывает не только проблемы с питанием М/С логики, но и выставляет требование разносить по времени переключение верхних и нижних мосфетов. Даже если вообразить, что каким-то образом удалось бы электрически прикрутить логику, то проблему возникающих "сквозняков" это бы не решило. Требуется либо существенная переработка схемы в сторону усложнения, либо введение организационных ограничений по эксплуатации моста.
По последнему варианту схему я в этой ветке уже рисовал, но не собирал для полной проверки, лишь ограничившись прогоном в симуляторе. Евгений свой вариант без М/С логики собирал и он у него успешно прошел испытания. Но, насколько я понимаю, вам для лего оно не подойдет, т.к. выполнить требования по разносу фронтов организационно там не получится.
У меня были мысли запилить мостовой драйвер с собственным МК, который управлялся бы через какой-нибудь из интерфейсов I2C/SPI/UART, но пока дальше обдумывания общей концепции я не продвинулся. У меня пока отсутствует потребность в таком устройстве, но сама идея довольно интересная и я время от времени к ней возвращаюсь в мыслях.
Если вы опишете чуть подробнее требования к вашему драйверу, а еще лучше то устройство, которое будет им управлять, то можно было бы поразмышлять о том, как лучше сделать то или иное.
Идея в том, чтобы на базе Ардуино Мега2560 и "моторного шилда", втыкаемого сверху в разъемы меги собрать блок управления по типу Лего майндшторм, но с существенно лучшими параметрами. По параметрам - хочется вытянуть из Меги2560 всё что получится "по максиуму". Получается до 8-и маршевых моторов с энкодерами - есть чем управлять, если по 2 ноги на драйвер. При этом сохраняются все интерфейсы и ещё остаются ноги под 14 датчиков, из которых до 8-и аналоговых (без учета энкодеров)
В части требований к моторным драйверам - компактность (место на шилде), затем возможность PWM в основном для плавного разгона движков (управление скоростью - вторично). Питание, отличное от самой Меги на 4..12 вольт, токовая нагрузка до 2А в постоянном режиме включения (типовая электрическая мощность движков 4-8ватт: больше напруга - меньше ток). PWM - конечно же программный, то есть "не скоростной" или типовой для серводвигателей - 50Гц.
Посмотрел ещё раз все варианты, описанные тут. Проще всего тогда взять схему Евгения по управлению верхними парами, а на нижние таки влепить 2И для уменьшения ножек. Кстати, у него пользуются 2N7002, они тянут до 20/60В и ток до 115мА .. резисторы открытого коллектора можно легко уменьшить по номиналу, увеличив скорость разряда силовых мосфетов вплоть до 120 ом (питание двигла 12в). В этом случае ориентировочное время переключения составит около 250нс, но возрастет потребление в рабочем режиме. Но, раз у него на 8 вольтах 1килоомники показали себя хорошо, то нет никакого смысла. А элементы 2И внизу - не требуют ОК. Можно и 74HC00 поставить по штуке на пару.
Исключать сквозняки можно программно: сначала отключаем ШИМ, отрубая оба нижних плеча, а потом меняем DIR и включаем ШИМ с заданной скважностью. Можно воткнуть паузы между действий по 2мкс - "за глаза" будет.
Теперь тока вечером. Собственно там симбиоз из #254 - управление вехними плечами мосфетов (DIR) и из #47 (есть ещё много, #290) - управление нижними плечами через 74HC08 (DIR & PWM). Инвертированные сигналы DIR можно взять с соответствующих верхних плеч, их там должно хватить (можно килоомник уменьшить).
Упс. Ошибочка. На левом разъеме контакт 2 - DIR, 3 - PWM, на схеме подписано наоборот...
Может кто-нибудь помочь просчитать что получится на 6 и 12 вольтах питания Vss? В смысле какой частоты ШИМ схема сможет держать и какие ожидаются сквозняки, при условии что DIR не переключается когда разрешен PWM.
Заранее пасибки, сам ещё с ПО для радиолюбительства только осваиваюсь. И как-то оно бедно (kicad)...
Тут на али копался, нашел микрухи логики в мелких (3 х 2мм) восьминогих корпусах, типа msop или что-то наподобие. Раньше их не было или они были дороги, а сейчас появились по нормальной цене. За HC04 (3 элемента НЕ) и HC08 (2 элемента 2И) просят по десять рублей при покупке десятком. С такими чипами плату драйвера можно сделать размером с пятирублевую монету, если не меньше.
Триггеры Шмидта вообще по шесть рублей за корпус. Вот чем надо кнопари от дребезга защищать.
Так может ну её нафиг, эту "мегу"? Оставить один I2C и пусть пашет... :) (не шибко на него много получится: сервы + движки + гирокомпас + гироскоп + дисплей + .. а скорости на всех - хватит? )
А по схеме: можете что посоветовать, подправить или сказать как оно будет работать?
Так ежели I2C, конешно программный. Там аппаратный уже все равно бесполезен. Чтобы пробовать, надо дождаться прихода деталек и таки освоить этот kicad .. не разводит он плату у меня ни в какую... по резисторам: можете помочь где какие надо воткнуть в цифру, а какие лишние? Давно это все было, забылось ужо. Да и КМОП .. не работал с ним раньше.
тиньку конечно запрограммировать и исползовать схему из 254 поста, и управлять как сервой, что вообще требует один пин основной ардуины
Здесь хорошо бы знать, что хочет Arhat109-2 от схемы. Если ему требуется формировать ШИМ вне схемы драйвера, то тинька тут только мешаться будет.
Цитата:
в случае когда нужен не один драйвер можно использовать мегу 8. 6 шимов это 3 драйвера. а управлять по i2c например
Шимов там, к сожалению, только три, причем, один из них восьмибитный. Рискую быть опять обвиненым в офтопике, но я бы в этом случае смотрел в сторону stm32f030f4p6. Он и дешевле атмеги8 (хоть и с разницей в рубль-два) и несравнимо мощнее, что по периферии, что по производительности. 48-и мегагерцовое ядро и пять шестнадцатибитных таймеров. Наружу выходят шесть каналов шим, но два канала делят ноги с i2c, так что при использовании последнего, аппаратных шимов остается четыре. С учетом же, что на всех пяти таймерах есть каналы сравнения в разном количестве, то софтовых каналов можно сделать вообще дофига, причем, за счет высокой частоты ядра, весьма приличных частот и разрядностей. С использованием в разработке у него нет никаких сложностей, т.к. встроенный бутлоадер позволяет грузить прошивку через последовательный порт, что даже программатора не нужно. Только переходник USB-UART.
На первой странице мануала по атмеге 8 написано, что число каналов шим равно трем. Это же можно обнаружить, разглядывая распиновку: таймер 0 не имеет выходов наружу, у таймера 1 их два и у таймера 2 один. Всего три.
По поводу стм-ов, поверьте на слово, они больше выглядят непостижимым чудищем, чем им на самом деле являются.
Ко всему еще могу добавить, что именно в узко-специализированном применении младших стм есть особая прелесть: стм-ы на борту имеют весьма продвинутые аппаратные навороты, которые можно применять не исписывая горы кода. В то же время, более крупные модули управления часто проще делать на атмеге и ардуине, т.к. для них существует обширная инфраструктура, библиотеки и поддержка сообщества. Все вместе это называется экосистема. Кто-бы что ни говорил, но экосистема атмеловских камней более продвинута по сравнению с армами, т.ч. сравнивая МК разных семейств это всегда нужно иметь ввиду.
Возвращаясь к нашим баранам, мне не видится чем-то странным, если арудина будет управлять кучей драйверов, где мозгом последних будут стм32. При сегодняшних ценах на младшие стмы их можно ставить вместо чипов классической логики и использовать лишь на пол-процента потенциала.
Во первых, существуют и более ногастые корпуса, а во вторых, никто не мешает повесить на SPI гирлянду из сдвиговых регистров и получить столько ног, сколько нужно. Причем, если использовать разные сдвиговые, то это могут быть, как выходы, так и входы. Цифровые, правда. Штатная частота SPI для F030 -- 12мбит. Нештатная, но тем не менее отлично работающая -- 24мбит. Два hc595, висящие на SPI в последнем случае могут трясти шестнадцатью ногами с частотой ближе к мегагерцу, причем каждая нога может исполнять свой собственный танец. Я не пробовал, но расчет показывает, что таким образом можно все эти ноги сделать отдельными ШИМ-каналами с частотой ~23кгц и пятибитным разрешением (ну или с частотой пониже, а битностью повыше). Если выделить под описание параметров ШИМ-сигнала область памяти в ОЗУ размером 512 байт, то зациклив передачу через DMA из этого буфера по SPI на сдвиговые, получим шестнадцать полностью независимых аппаратных ШИМ-каналов, которые будут работать без участия процессора.
A5021 пишет: "Здесь хорошо бы знать, что хочет Arhat109-2 от схемы. Если ему требуется формировать ШИМ вне схемы драйвера, то тинька тут только мешаться будет."
Гы. Собственно это как раз я извиняюсь за свой оффтоп в вашем проекте. Проект хорош, и показался мне полезным, вот и решил продолжить, вместо того чтобы начитать свой. )
Задача: сделать из Arduino Mega2560 r.3 "Лего-кирпич" (так они называют свой блок управления в наборах "Lego MaindStorm") по своим возможностям значительно перекрывающий любой из оригинального Лего (их сейчас 3 варианта) И желательно в размерах оригинала с обрамлением из Лего-деталек.
Лего-кирпич имеет наружные размеры 13х9х5 "лего-дырок" или 104х72х47.5 мм. или "внутренний размер": 88х56х45 мм. По 8мм с горизонталей - толщина стенок для креплений "лего-деталек". Сюда входит собственно плата + батарейный отсек на 6 АА аккумуляторов. Со сторон 72мм имеет по 4 разъема для подключения 4-х датчиков с одной стороны и 4-х двигателей с другой. ФСЁ. )
1. Именно Мега2560 и никакая иная. Ну, .. есть она уже у меня. Понятно что на stm32 - можно слепить и меньше и круче. Тут крайне желательно БЕЗ переделок оригинальной платы, ибо их выпускается как г*на (к моим потугам есть интерес у ряда Лего-кружков нашего города - тоже УЖЕ имеют Мегу 2560: "давай мы сначала посмотрим что у тебя получится").
2. Сохранить удобство пользования "кирпичем" для "детишек". Вот с этим, пока проблема: то что сделано - требует гирлянды проводов что крайне неудобно на практике. Поэтому и озадачился шилдом для моторов.
3. По возможности, не уменьшать аппаратные ресурсы Меги. Ну, .. есть они, почему бы не использовать. И вот тут, у меня пока получается следующая раскладка:
а) аппаратный ШИМ для серводвигателей. Есть 4 16-битных счетчика по 3 канала. За вычетом 13 ноги == 11 серводвигателей. Программно управлять аппаратным шимом - проще простого: analogWrite() при верно настроенном счетчике (50Гц). Но, только 5-й таймер имеет полный комплект ног у Ардуино плат .. уж не знаю по каким причинам. Поэтому он у меня выделен в отдельное применение.
"подитог": +8 серв; На практике - уже опробовано, проверено и выяснено что "хватает с небольшим запасом" (есть 10, макс. использование - 7шт.).
б) аппаратный 8-и битный ШИМ. Есть 2 счетчика по 2 канала, один из которых перепрограммировать - нельзя (таймер времени). Как вариант и второй счетчик оставить на той же частоте в 125кГц. Для управления двигателями - явно "многовато", но можно использовать как яркостные каналы "кирпича". У нас уже есть "примеры": Скорая помощь, которая обнаружив препятствие плавно моргает светодиодом "в стиле спец. сигнала".
+ "подитог": +4яркостных ШИМ; На практике - полезно только как антураж, но прикольный. В скетчах часто светодиод на 13 ноге использую как датчик "загрузки процессора". )
в) встроенные интерфейсы: I2C, 4xUART, ISP, JTAG - пока есть задачи только для I2C, ISP и 1 UART. На оставшиеся ноги смотрю как на "резерв". Смущает что на I2C уже висят: LCD1602 + GY-271 + GY521 + BMP180 .. мне кажется уже "многовато". Но шилды гироскопов и альтиметра (ещё датчик tilt) легко помещаются между разъемами платы Меги, на подложке, прямо на проце меги и, что называется, "не отсвечивают" никак; Тут хочется в "итого" оставить "как можно больше", но пока это - резерв по большей части;
+ "подитог": +I2C + 1-4UART + ISP (+JTAG условно, не знаю нафига)
г) 16 аналоговых входов Меги. Пока планируются и частично уже пользуются как входы подключения разных датчиков и микрофонов. Часть входов из набора 8-15 планируются под энкодеры двигателей для подсчета силами прерываний (PCINT2 16..23) или от других датчиков, позволяющих работу по прерываниям.
+ "подитог": до 16-и датчиков. На практике задействованы 2 микрофона (уши) + ультразв. датчик (echo) + 2 датчика определения линии (больше нету в наличии) + 2 IR датчика препятствий. Итого 7 шт.
д) ну и "доп. разъем Меги". Во-от... тут есть полноценный 5-й счетчик, который пока однократно был использован под шилд TCS3200 (датчик определения цвета), да и то почти по скетчу производителя.. но тут есть идеи на предмет аппаратного счета через вход T5 или T5ICP. Ну и тут же заняты 4 ноги под ISP на самом деле.
Здесь же, есть xbus интерфейс из 19 ног, который легко позволяет расширять SRAM до 64кбайт. Под него и 1 доп. ногу уже спроектировал плату памяти на 1 мегабайт SRAM, но делать пока не стал - доставшаяся SRAM-микруха памяти оказалась "битой" (на макетке 2 ноги адреса не ожили). Шилд получается на latch-защелке + 2 SN74LS189 (РУ8) и одном транзисторе .. плюсом микросхема памяти. Страничный расширитель SRAM на 256 страниц по 4кбайт, управляется легко через ту же xmem.h. С ним остается свободными "всего" .. 3 ноги от доп. разъема. Пока помню про него как "резерв", если не хватит памяти нашему кирпичу. )
По сути, под маршевые двигатели можно задействовать эти 3 ноги (из них 1 уходит под узв. датчик!) и 6 резервных ног дополнительных UART, а соответственно имеем место под 4 маршевых движка. Практика показывает что "надо" от 3 до 6, и часто 5-6... маловато будет. ) Сейчас имеем 4 шилда L298N на 8 двигателей. Но, проблема "гирлянды проводов" - просто катастрофическая: подключить "не туда", детям - легко. Да и в конструкциях, вся эта висящая лапша существенно мешает и периодически отваливается.
Ну и как опять же, показала практика, шилд без радиаторов всеж-таки греется, хоть и медленно. А с ними, да 4шт .. конструкция получается "впечатляющих размеров", что сильно ограничивает "построюшки".. на соревнованиях есть предельный габарит в 25х25х25см. в "сложенном виде".
Вот, вместо x-bus шилда и задумал сделать шилд на 8 маршевых моторов. В этом случае, под датчики освободится ещё 6 ног. И тогда, вторую группу аналогов можно будет честно использовать под энкодеры моторов и/или не занимать интерфейсные пины дополнительных UART-ов.
Итого, пока получается кирпич с возможностями одновременного подключения (в случае доп. шилда с моторами):
8 серв + 8 маршевых моторов (до 8 энкодеров) + I2C + UART + SPI + (внутри кирпича: GY-271 + GY-251 + BMP180 + Tilt) + 4 LED-PWM + LCD1602 (сверху) + внешние датчики (гнезд): HCSR04 + TCS3200 + 2 Микрофонных шилда + 2 IR шилда + 2 шилда линий. + батарейный отсек на 4 АА аккумулятора и крону для самой ардуины. Всё это по оценкам, должно влазить в габарит 120х72х48мм, что уже не настолько "много и печально", а главное исключает гирлянды служебных проводов.
Предистория: сам - программист с 1979года, имеющий опыт работы практически на всех типах ЭВМ, в т.ч и микроконтроллеров: "не пугайте меня клавиатурой! Я начинал, когда их не было"
Кроме этого, за плечами хорошее конструкторское образование + старый опыт радиолюбительства, начиная с лампового детекторного приемника, лет в 10.
Дитенок, практически с 2-х лет грезит роботами, лет с 6-и толчется у меня за спиной, уже пробует писать скетчи сам (сейчас ему 9лет, не пускал раньше - нефиг глаза портить, успеет ещё), вот когда был выбор "что купить", выбрал Мегу.. теперь вот мучаемся.. )
Посмотрел КМОП каскадные соединения транзисторов и особенности входных каскадов .. вот последний вариант драйвера одного мотора:
Пока продолжаю воевать с разводкой в kicad .. вроде как "получается". Но, в автомате - коряво... )
Номиналы резисторов открытого кллектора "150..1К": верхний предел из соображений, что в #254 такое работает успешно, а нижний предел из нагрузочной способности 2N7002 при предельном напряжении питания моторов в 12в. Тут получается, что "чем меньше" номинал - тем шустрее ШИМ, но и тем больше потребление самого драйвера.
Оценочно, при номинале в 150ом получим предельный ШИМ (1/20 частоты переключения мосфетов) в районе 160кГц. С пиковыми утечками только через 2N7002 около 80мА на 12 вольтах.
На 1 килооме будем иметь макс.ШИМ около 25кГц с потреблением через 2N7002, в пиках 12мА на 12 вольтах.
При уменьшении питания моторов до 6 вольт скоростные способности слегка улучшаются, а вот потребление в пиках снизится пропорционально. )
P.S. кстати, теоретически, драйвер должен быть работоспособным вплоть до 30 вольт - допустимого напряжения для AO4606 и поддерживать моторы с током до 5А .. надо только подобрать коллекторные резисторы верно для такого режима.
У меня линукс, и винды нет лет 10 как (последняя - хрюша со вторым сервиспаком) - сейчас "ваще не в курсях" что на винде есть и как юзается. Ставить wine - он глючный как мой ночной кошмар, а на виртуал бокс - не хочется по ресурсам. Если надоест линуксовый софт (то ещё чудо), то скорее всего поставлю XP2 через дуалбут. Но, пока "терплю и разбираюсь". Гимп, вот оказался вполне себе конкурент фотожабе .. но, блин, опять оффтоп. )
18650 - это снова Li-ion .. как обеспечить не превышение 7вольт для питания серводвигателей? Ставить преобразователь? .. снова габарит .. ) Для увеличения емкости батарейного отсека, сейчас присматриваюсь к формату уккумов ААА .. получается что их можно 8шт. втыкнуть вроде попарно в параллель. Заодно и разброс параметров меньше влиять будет. Да и их запас - около 12шт. по 1000мач и все рабочие. )
Не, одна 18650 пойдет на питание самой ардуинки, уже присмотрел место взамен кроны..
Прочитал весь топик. Респект за разработки, тоже сам поначалу хотел на транзисторных мостах лепить для себя .. но посмотрел на L298N модули и прикупил их. покупал в мае 4шт за 360руб .. итого 90руб за готовый модуль на 2 мотора по 2А...
Вопрос: чем они хуже чем самодельные мосты на АО4606 по приведенным схемам?
Дело в том, что засовывая платы от Ардуино в Лего-детальки, уже подумал "а не сделать ли шилд" для Меги с моторами и серво? По идее, в формат платы Меги2560 можно упихать пару L298N и разъемы для 12-и серводвигателей (на базе всех 4-х 16-и разрядных таймеров).. тогда "проводов окажется значительно меньше..
Есть аргументы в пользу АО4606 или IRF7319 и навесухи?
ага: падение напряжения. теряется мощность и нагрев самого драйвера
плюс торможение драйвером мотора при 0 или 1 шима. не то чтобы очень критично, но я хотел чтобы его не было. дополнительный нагрев и торможение двигателя
а вообще дело твое. если все это некретично не стоит и заморачиваться
но я говорю о этой схеме
http://arduino.ru/forum/proekty/arduino-draiver-motora-dlya-robota?page=...
Не очень понял, или меня это действительно мало интересует.
Дело в том, что у меня на моих шилдах L298N работают перемотанные 130-е моторы проводом 0.2-0.25мм под напругой в 4-6В от 4-х NiMH имею: ХХ=0.15А, рабочий ток 0.5-0.9А под нагрузкой, а ток останова у них около 2.5А .. шилды пашут вполне нормально, не греются (или я не замечаю). С пары шилдов поснимал радиаторы и положил микросхемы для уменьшения высоты сборки с Лего деталями - тоже "особых проблем" не вижу.
.. или вы это отписали на предмет АО4606, в смысле что ежели делать на них, то греться будет? Поясните, правда не понял.
Текущий конструктив "моторного блока" выглядит примерно так:
А хочется в виде платы в формате Мега2560, чтобы соединять с Мегой не проводами, а тупо втыканием в разъемы... вот и думал, что может не разбирать свои шилды, а сделать на мостах 4606 по тутошним схемам..
P.S. Ну и хотелось упихать все 8 моторов на один шилд, а заодно сделать "расческу" для серво двигателей на нем же ..
от двух литиевых запитай заряженных и посмотри. я в гусеничном шасси заметил. гонял правда по песку, траве и всяким препяттствиям, нагрелся сильно, палец не выдерживал. и это с радиатором
шасси как на первом фото
http://arduino.ru/forum/proekty/tank-upravlyaemyi-dzhoistikom-ps-2
а вообще ты спросил я ответил, я не убеждаю тебя не использовать
Там, аккумы конечно уже юзанные из фотика, но КЗ в 3-5А ещё выдают .. Посмотрю тщательнее. Li-ion - нету. Не подходят по диапазону напряжений: 3.7-4.2В .. поставить 1 - "маловато будет", а поставить 2 - сервы погорят (SG90 - до 7В, где-то читал..), а силовая напруга от одного блока батареек. Делать ещё и Dc-Dc преобразователь .. нафига?
А по тутошним схемам - будет греться на АО4606? По даташиту они вроде как 5 амперники. Расчетные токи нужны в районе ампера - это нормальная работа движков. Лего детали имеют солидное трение в ряде случаев, особенно когда "неродное лего".
Просто уже очень хочется развести это на шилд ... 4хL298N на 8 моторов = 3*8 = 24 провода от шилдов к меге .. а ещё энкодеры 8шт от моторов .. там такой "зверь" получается .. :)
у меня почти не греются. токи до 1.4А. хотя не уверен что не выше, амперметр в блоке питания думаю врет, импульсные токи занижает
да если все устраивает собирай на L298))
Пасибки, что надоумили потестировать. Вчера проверил эту версию, что без радиаторов. Да, на новых аккумах из фотика, или на свежих алкалиновых батарейках - греется. Поставил стенд и покрутил моторы в режиме 0.5сек "туда и обратно" с интервалом на переключение в 50миллисекунд. Начиная с середины третьей минуты - греется весьма ощутимо: пальцем уже держать проблемно. При этом, токи на стенде не превышали 1.5А, сказалось "отсутствие нагрузки". Похоже поддохшие аккумы не выдают достаточного тока когда мосты переключаются и оба плеча открыты.
Э-эх, полез на али заказывать микрухи... как понимаю, схема в №254 (ваша) это по сути управление затворами через "открытый коллектор".
да схема моя, точнее совместная получилась
имей в виду. схема из 254 поста на 1 мотор требует 2 шим канала и 1 обычный. итого на 8 моторов нужно 16 шимов и 8 обычных
еще не передумал делать эту схему или 8 каналов?)))
не знаю где там открытый коллектор, там вообще биполярников нет)) шим подается только на n канальные, так как их микроконтроллер легко переключает, а p-канальные задают направление. программная задержка на переключение направления, чтобы не было сквозных токов
В вашей схеме затворы АО4606 управляются транзюками, стоки (коллекторы) которых подвязаны на напругу питания моторов через резистор. Такой подход "в целом" называется "выход с открытым коллектором". Есть куча простой логики с таким выходом, как раз для развязки напряжений логики управления и силовой части. Если схему из начала темы перевести на микрухи с "ОК" (открытый коллектор), то можно решить вопрос по "любому" способу управления, в т.ч. и с 1 ШИМ сигналом... вечерком попробую накидать схемку.
Да, мне надо (ну очень хочется) реализовать плату на 8 маршевых (силовых) моторов. 32 ноги меги я на них "уже выделил" (ещё энкодеры! забыл про них для других применений: X-bus: А0-7, С0-7, WR, RD, ALE + T0in + UART1-3 и 8 аналоговых входов, которые прерывания PCINT 3-го уровня). ШИМ на моторах - будет программный. Сюда же, на плату хочу вывести все PWM ноги "в ряд" с доп. ногами для земли и питания, так чтобы серводвигатели можно было втыкать прямо в такой шилд. Для маршевых моторов думаю приспособить USB-разъемы: 2 силовых и один на энкодер.
Остальные ноги - вывести как входы датчиков .. Аналоги 0-3 у меня уже работают в "микрофонных ушах" робота в режиме дифференциального сравнения с усилением 10/200 раз. С сервой - могут поворачиваться и реагировать, скажем на хлопок ... или есть программная фильтрация - ловит "шум моторов" вражеского робота и определяет направление по углу серв на "ушах". Это как "дополнение" к ультразвуковому датчику. :)
"итого" получится шилд на 11-12 аппаратных серв (все 16-и разрядные счетчики позволяют поставить 50гц через регистр захвата таймера! Командно достаточно только менять значение в OCRрегистре канала), 4-3 ШИМ "моргалки" .. проблема с 13 ногой - она совмещенная.. и 8 силовых моторов с энкодерами. Обрамить это чудо также как мегу и получить в результате "блок управления" круче любого Майндшторма "на порядок" ... в меньшем размере. :)
LM393. вот у нее открытый коллектор. да не суть
http://www.ti.com.cn/cn/lit/ds/symlink/lm393-n.pdf
ну раз хочется делай))
По схеме. хз пока чем рисовать, но за основу хочу взять схему с #46,47,65, с заменой 74ACT08 на 74HC09 (ЛИ2) - это 4 х 2И с открытым коллектором. А вот их коллекторы надо будет подвесить на питание моторов как в вашей схеме #254 и #74.
1. Открытый коллектор и резисторы позволяют питать моторы напругой отличной от питания логики.
2. Выхода Ардуино отвязаны от мосфетов
3. Всего 2 сигнала управления DIR и PWM, что радует.
Пробую освоить линуксовый kicad, типа что-то такого:
Схем плохо читается, т.к. слишком мелкая, но даже так видно, что P-канальные и N-канальные мосфеты перепутаны местами.
ну хз как будут раскачиваться емкости затворов при такой схеме. я не зря полевик с резистором поставил только на смену направления, так как на землю разряжается емкость хорошо, а заряжается через резистор дольше. изза этого дополнительный нагрев. хотя если уменьшить номинал может и получится, надо проверять
Не смог выложить поудобнее. Там рисунок практически так и выглядит в этом "кикаде" .. уродство какое-то или я с ним ещё не подружился. Идея, надеюсь понятна: заменить 74HC08 (ЛИ1) на 74HC09 (ЛИ2), и соответственно воткнуть резисторы подтяжки до питания моторов. Остальное - как было. Предельный ток там вроде как 25ма .. точно такой же как и у вас через 470 ом.
Если можете отрисовать и просчитать в чем-то разумительном - буду признателен. Напруга моторов от 6 до 12 вольт.
Тут тоже буду думать. Вчера чуть не пожег серву SG90... аккумы сели, и я воткнул 8шт вместо 4-х, дабы не ждать сутки когда зарядятся... в итоге, во время остановки маршевых моторов напруга подскакивала до 9.5 вольт .. серву клинануло по серъезному, пришлось разбирать. Движок был горячий как утюг. Остыла, вроде работает. Похоже таки не зря пишут про предел в 7.2 вольта...
По компоновке на мега-шилд: получается что "в ряд" можно поставить тока 4 мотора, поэтому вчера заказал 74-ую серих тоже в SOP корпусах, дабы смонтировать по 4 драйвера на каждую сторону платы.. :)
а зачем так много моторов?
Ну .. у нас этакий "лего-ардуино-конструктор", как видно из фото. Собери робота сам, какого хочешь. Оффтоп конечно, но поясню:
1. Практика показывает что 3-4 моторов Лего-майндшторм явно и катастрофически недостаточно для сборки роботов. Но там это "всего". Серводвигателей я там не заметил. Народ решает "проблему" подключением 2-х и более блоков управления.. что "дорого". Один полноценный комплект Лего - тянет на 30-45тыс.руб., а уж два ... поэтому и занятия в основном "в платных кружках". Мои "соседи" (кружок Легороботов) в апреле закупались на областную дотацию .. на 150тыс.р. и оказалось "маловато" .. :(
Вот и задумал сделать Ардуино вариант: дешево и сердито. ;)
2. Далеко не всегда подходят сервы. В частности, свои 4 мотора мы приладили "на ура" в первый же день как собрали шилд на 4 мотора: 2 мотора - "туда-сюда" тележкой, 1 мотор - на поворот "стрелы" 360грд, и 1 мотор ушел на "крюк" крана + серва (тогда была только 1шт) на наклон стрелы .. а часто требуется только 4 мотора на движение тележки (полный привод а-ля "луноход").
Сейчас, когда пришли сервы и их теперь аж 10шт (6xSG90 + 2xMG90S + 1xMG995 + 1xMG996) .. легче, но "не значительно": 3 сервы уходит теперь только на оконечную часть "руки": захват + 2 поворота для точной настройки.. на вращение руки 360грд - 1 мотор, на её наклон - 1 мощная серва, на выдвижение руки (4 секционный пантограф на 0 .. 40см) ещё 1 мощная серва + серва на датчик узв. + 2 сервы на вращение "ушами" (2микрофона) ..
Итого уже 8 серв + 5 движков (ещё полный привод тележки). Пока так, но "аппетит приходит во время еды". Хочется таки иметь "запас". Ибо уже идут разговоры что надо ещё для спец. упоров хотя бы парочку, когда в сумо бороться это чудо будет (тоже движки, сервы...) :)
Да, кстати. С ЛИ2 - засада. Посмотрел чего заказал и там его не оказалось. Типа "нету"... пошарил по даташитам и упс. "обломс": есть только 74S09 но очень дорого или 74LS09 .. но они чахлые - 4-8мА, а вот "подходящих" серий типа 74HC09 (20мА) - нетути... и в наших магазах ЛИ2 - на "раз-два" и обчелси... ушел думать как переделать на 2И-НЕ с ОК...
В свое время я уже задумывался насчет логики с ОК, но нашел эту идею несостоятельной. Там получаются сразу несколько врожденных дефектов, каждый из которых стоит того, чтобы отказаться от данного решения полностью.
Посмотрите внутреннюю схему, которую приводит производитель для 47HC09:
Если вы подтянете "OUTPUT" на рисунке к напряжению питания моста, то последнее через подтягивающий резистор и расположенный слева от "OUTPUT" диод благополучно окажется на шине питания +5в (Vcc). Последствия могут быть самые неожиданные, но вряд ли приятные.
Ну вот как раз xx74HC09xx -- имеют какие-то "странные" описания. Так на Али TC74HC09AF -- это внезапно "сдвиговый регистр", причем у "каждого первого" поставщика.
Вот классика схем с открытым коллектором: http://html.alldatasheet.com/html-pdf/27366/TI/SN74LS09D/51/2/SN74LS09D.... нет там никаких "диодов". Это ТТЛ, а не КМОП. У последних - каких только и куда только диодов бывает не обвешано..
Впрочем, я уже прикинул, что схема легко трансформируется на базу 2И-НЕ, особенно если учесть что вход "dir" - по большому счету все равно какое плечо моста включает. А среди них каких только нет и с "ну очень большим током" и "в повышенным напряжением ОК" и супер скоростные.. :)
В целом требуется 1 инвертор на транзюке и 1 логика 2И-НЕ (ЛА..) на мост. Тут вот ещё что подумалось ... а нельзя ли логику организовать на транзюках тоже и использовать какую-нибудь транзисторную сборку на 6-8 шт.? Есть такие? Тогда вопрос "предельного напряжения" для моста как-бы отпадает тоже.
По схеме: использование инверсионного и прямого сигнала для "dir" приводит к тому, что задержка на инверторе дает порядок работы моста типа 1-2-2-1, в том смысле, что если PWM - включен, то сквозные токи - практически гарантированы на время инвертора при одном из смен направлений. Но, с другой стороны, если смена направления (dir) происходит при запрещенном pwm - то ваще 146% гарантия от сквозных токов (чем и понравилось).
На 2И-НЕ получается примерно так:
Поскольку у меня парное количество драйверов, то поставил отдельно инверторы.
Так, заметил что один инвертор можно убрать, или перебросить ногу 5 на ногу 1 инверторов. Тогда, правый полумост будет управляться с задержкой t1, а левый с задержкой 2t1, но оба плеча (верх и низ) - синхронно. Почти.
Идея ШИМить верхними транзисторами будет считататься условно-годной, только, если по другому никак. P-канальные мосфеты обладают худшими характеристиками, чем N-канальные и это приводит к тому, что максимальные частоты там будут существенно ниже, а тепла выделяться значительно больше. Ну и задумка разряжать затворы верхних мосфетов через резисторы определяет, что ШИМ там будет медленным и печальным.
В свое время я уже задумывался насчет логики с ОК, но нашел эту идею несостоятельной. Там получаются сразу несколько врожденных дефектов, каждый из которых стоит того, чтобы отказаться от данного решения полностью.
Посмотрите внутреннюю схему ...
Да, пожалуй Вы правы. Серия 74HC и прочие, что сейчас продаются - это все КМОП, и там по сути нет "открытого коллектора" как явления. Стало быть "втыкать" можно только наши ТТЛ типа К155, КР153х .. смотреть по токам и временам "что лучше подойдет". Или монстрячить ОК транзистором.
Ну это я нарисовал только как идею перевода схемы на 2И-НЕ логику. "медленный" - это сколько?
по даташиту емкость затвора около 680пф на АО4606. Стало быть имеем время разряда около 1.5нс на каждый ом резистора .. около микросекунды, то бишь 500кГц, и ШИМ думаю может потянуть в районе 20кГц .. это "мало"? Конечно не мегагерцы... но мне - движки крутить, а там чем выше ШИМ - тем хуже управление скоростью (инерция вращения якоря).
Упс. Уточнил. 680пф - это у n-канального, у p=канального 920пф .. да, хуже раза в полтора. 2.2RC даст 2.02 нс/ом или для 620 ом будет 1.25мксек. Это частота в районе 400кГц. Соответственно, предел для ШИМ раз в 20 меньше.
Считать надо не емкость, а общий заряд затвора -- Total Gate Charge. Не смотря на то, что это некий синтетический параметр, именно его надлежит использовать в расчете скорости нарастания напряжения на затворе.
Питание моста напряжением выше 5-7 вольт вызывает не только проблемы с питанием М/С логики, но и выставляет требование разносить по времени переключение верхних и нижних мосфетов. Даже если вообразить, что каким-то образом удалось бы электрически прикрутить логику, то проблему возникающих "сквозняков" это бы не решило. Требуется либо существенная переработка схемы в сторону усложнения, либо введение организационных ограничений по эксплуатации моста.
По последнему варианту схему я в этой ветке уже рисовал, но не собирал для полной проверки, лишь ограничившись прогоном в симуляторе. Евгений свой вариант без М/С логики собирал и он у него успешно прошел испытания. Но, насколько я понимаю, вам для лего оно не подойдет, т.к. выполнить требования по разносу фронтов организационно там не получится.
У меня были мысли запилить мостовой драйвер с собственным МК, который управлялся бы через какой-нибудь из интерфейсов I2C/SPI/UART, но пока дальше обдумывания общей концепции я не продвинулся. У меня пока отсутствует потребность в таком устройстве, но сама идея довольно интересная и я время от времени к ней возвращаюсь в мыслях.
Если вы опишете чуть подробнее требования к вашему драйверу, а еще лучше то устройство, которое будет им управлять, то можно было бы поразмышлять о том, как лучше сделать то или иное.
Ну оно практически тут выше описано.
Идея в том, чтобы на базе Ардуино Мега2560 и "моторного шилда", втыкаемого сверху в разъемы меги собрать блок управления по типу Лего майндшторм, но с существенно лучшими параметрами. По параметрам - хочется вытянуть из Меги2560 всё что получится "по максиуму". Получается до 8-и маршевых моторов с энкодерами - есть чем управлять, если по 2 ноги на драйвер. При этом сохраняются все интерфейсы и ещё остаются ноги под 14 датчиков, из которых до 8-и аналоговых (без учета энкодеров)
В части требований к моторным драйверам - компактность (место на шилде), затем возможность PWM в основном для плавного разгона движков (управление скоростью - вторично). Питание, отличное от самой Меги на 4..12 вольт, токовая нагрузка до 2А в постоянном режиме включения (типовая электрическая мощность движков 4-8ватт: больше напруга - меньше ток). PWM - конечно же программный, то есть "не скоростной" или типовой для серводвигателей - 50Гц.
Посмотрел ещё раз все варианты, описанные тут. Проще всего тогда взять схему Евгения по управлению верхними парами, а на нижние таки влепить 2И для уменьшения ножек. Кстати, у него пользуются 2N7002, они тянут до 20/60В и ток до 115мА .. резисторы открытого коллектора можно легко уменьшить по номиналу, увеличив скорость разряда силовых мосфетов вплоть до 120 ом (питание двигла 12в). В этом случае ориентировочное время переключения составит около 250нс, но возрастет потребление в рабочем режиме. Но, раз у него на 8 вольтах 1килоомники показали себя хорошо, то нет никакого смысла. А элементы 2И внизу - не требуют ОК. Можно и 74HC00 поставить по штуке на пару.
Исключать сквозняки можно программно: сначала отключаем ШИМ, отрубая оба нижних плеча, а потом меняем DIR и включаем ШИМ с заданной скважностью. Можно воткнуть паузы между действий по 2мкс - "за глаза" будет.
Кто что думает?
схему давай. а то не очень понятно
Теперь тока вечером. Собственно там симбиоз из #254 - управление вехними плечами мосфетов (DIR) и из #47 (есть ещё много, #290) - управление нижними плечами через 74HC08 (DIR & PWM). Инвертированные сигналы DIR можно взять с соответствующих верхних плеч, их там должно хватить (можно килоомник уменьшить).
Вот, типа такого получилось.
*** изображение удалено как неверное ***
Упс. Ошибочка. На левом разъеме контакт 2 - DIR, 3 - PWM, на схеме подписано наоборот...
Может кто-нибудь помочь просчитать что получится на 6 и 12 вольтах питания Vss? В смысле какой частоты ШИМ схема сможет держать и какие ожидаются сквозняки, при условии что DIR не переключается когда разрешен PWM.
Заранее пасибки, сам ещё с ПО для радиолюбительства только осваиваюсь. И как-то оно бедно (kicad)...
Входы у логики висят на питании моста. Нечего тут считать. Негодная схема.
Блин, точно. Нк значит надо ещё один инвертор входного сигнала.
Тут на али копался, нашел микрухи логики в мелких (3 х 2мм) восьминогих корпусах, типа msop или что-то наподобие. Раньше их не было или они были дороги, а сейчас появились по нормальной цене. За HC04 (3 элемента НЕ) и HC08 (2 элемента 2И) просят по десять рублей при покупке десятком. С такими чипами плату драйвера можно сделать размером с пятирублевую монету, если не меньше.
Триггеры Шмидта вообще по шесть рублей за корпус. Вот чем надо кнопари от дребезга защищать.
Исправил и резисторы добавил где забыл:
А вот развести в kicad пока никак не получается.
а по 20 рублей можно взять тиньку
http://ru.aliexpress.com/item/Free-Shipping-10PCS-LOT-ATTINY13-ATTINY13A...
тиньку конечно запрограммировать и исползовать схему из 254 поста, и управлять как сервой, что вообще требует один пин основной ардуины
в случае когда нужен не один драйвер можно использовать мегу 8. 6 шимов это 3 драйвера. а управлять по i2c например
У тиньки 15 ножек. Из них 2 запрограммировать на I2C, а на 12 можно повесить аж 4 драйвера из #254. Итого 2 тиньки = 8 моторов. :)
А ещё есть такой девайс аж на 16 серв и тоже по I2C: http://ru.aliexpress.com/item/16-Channel-12-bit-PWM-Servo-shield-I2C-interface-PCA9685-Adafruit-Compatible-new/32230165641.html?adminSeq=201164481&shopNumber=1414081
Так может ну её нафиг, эту "мегу"? Оставить один I2C и пусть пашет... :) (не шибко на него много получится: сервы + движки + гирокомпас + гироскоп + дисплей + .. а скорости на всех - хватит? )
А по схеме: можете что посоветовать, подправить или сказать как оно будет работать?
схема похожа на рабочую, пробуй
это что за тинька на 15 ножек. 2313 чтоли. я говорил от тиньке13. даже ссылку дал
и 4 драйвера чтобы повесить нужно 8 шимов. где их взять? программный только
Так ежели I2C, конешно программный. Там аппаратный уже все равно бесполезен. Чтобы пробовать, надо дождаться прихода деталек и таки освоить этот kicad .. не разводит он плату у меня ни в какую... по резисторам: можете помочь где какие надо воткнуть в цифру, а какие лишние? Давно это все было, забылось ужо. Да и КМОП .. не работал с ним раньше.
тиньку конечно запрограммировать и исползовать схему из 254 поста, и управлять как сервой, что вообще требует один пин основной ардуины
Здесь хорошо бы знать, что хочет Arhat109-2 от схемы. Если ему требуется формировать ШИМ вне схемы драйвера, то тинька тут только мешаться будет.
Шимов там, к сожалению, только три, причем, один из них восьмибитный. Рискую быть опять обвиненым в офтопике, но я бы в этом случае смотрел в сторону stm32f030f4p6. Он и дешевле атмеги8 (хоть и с разницей в рубль-два) и несравнимо мощнее, что по периферии, что по производительности. 48-и мегагерцовое ядро и пять шестнадцатибитных таймеров. Наружу выходят шесть каналов шим, но два канала делят ноги с i2c, так что при использовании последнего, аппаратных шимов остается четыре. С учетом же, что на всех пяти таймерах есть каналы сравнения в разном количестве, то софтовых каналов можно сделать вообще дофига, причем, за счет высокой частоты ядра, весьма приличных частот и разрядностей. С использованием в разработке у него нет никаких сложностей, т.к. встроенный бутлоадер позволяет грузить прошивку через последовательный порт, что даже программатора не нужно. Только переходник USB-UART.
шимов 6. это таймеров 3
стм конечно хорошо но кто умеет с ним работать? немногие среди здесь находящихся
хотя я для одного проекта возможно рискну использовать стм. ну просто ардуинки не хватает, дуе у меня нет, но есть mapple mini и дискавери
На первой странице мануала по атмеге 8 написано, что число каналов шим равно трем. Это же можно обнаружить, разглядывая распиновку: таймер 0 не имеет выходов наружу, у таймера 1 их два и у таймера 2 один. Всего три.
По поводу стм-ов, поверьте на слово, они больше выглядят непостижимым чудищем, чем им на самом деле являются.
блин перепутал. да в меге8 3 шима, это в 328 6
Ко всему еще могу добавить, что именно в узко-специализированном применении младших стм есть особая прелесть: стм-ы на борту имеют весьма продвинутые аппаратные навороты, которые можно применять не исписывая горы кода. В то же время, более крупные модули управления часто проще делать на атмеге и ардуине, т.к. для них существует обширная инфраструктура, библиотеки и поддержка сообщества. Все вместе это называется экосистема. Кто-бы что ни говорил, но экосистема атмеловских камней более продвинута по сравнению с армами, т.ч. сравнивая МК разных семейств это всегда нужно иметь ввиду.
Возвращаясь к нашим баранам, мне не видится чем-то странным, если арудина будет управлять кучей драйверов, где мозгом последних будут стм32. При сегодняшних ценах на младшие стмы их можно ставить вместо чипов классической логики и использовать лишь на пол-процента потенциала.
даже в таком дешевом камне есть dma
ног больно мало
Во первых, существуют и более ногастые корпуса, а во вторых, никто не мешает повесить на SPI гирлянду из сдвиговых регистров и получить столько ног, сколько нужно. Причем, если использовать разные сдвиговые, то это могут быть, как выходы, так и входы. Цифровые, правда. Штатная частота SPI для F030 -- 12мбит. Нештатная, но тем не менее отлично работающая -- 24мбит. Два hc595, висящие на SPI в последнем случае могут трясти шестнадцатью ногами с частотой ближе к мегагерцу, причем каждая нога может исполнять свой собственный танец. Я не пробовал, но расчет показывает, что таким образом можно все эти ноги сделать отдельными ШИМ-каналами с частотой ~23кгц и пятибитным разрешением (ну или с частотой пониже, а битностью повыше). Если выделить под описание параметров ШИМ-сигнала область памяти в ОЗУ размером 512 байт, то зациклив передачу через DMA из этого буфера по SPI на сдвиговые, получим шестнадцать полностью независимых аппаратных ШИМ-каналов, которые будут работать без участия процессора.
звучит красиво. это надо проверять
A5021 пишет: "Здесь хорошо бы знать, что хочет Arhat109-2 от схемы. Если ему требуется формировать ШИМ вне схемы драйвера, то тинька тут только мешаться будет."
Гы. Собственно это как раз я извиняюсь за свой оффтоп в вашем проекте. Проект хорош, и показался мне полезным, вот и решил продолжить, вместо того чтобы начитать свой. )
Задача: сделать из Arduino Mega2560 r.3 "Лего-кирпич" (так они называют свой блок управления в наборах "Lego MaindStorm") по своим возможностям значительно перекрывающий любой из оригинального Лего (их сейчас 3 варианта) И желательно в размерах оригинала с обрамлением из Лего-деталек.
Посмотрел КМОП каскадные соединения транзисторов и особенности входных каскадов .. вот последний вариант драйвера одного мотора:
Пока продолжаю воевать с разводкой в kicad .. вроде как "получается". Но, в автомате - коряво... )
Номиналы резисторов открытого кллектора "150..1К": верхний предел из соображений, что в #254 такое работает успешно, а нижний предел из нагрузочной способности 2N7002 при предельном напряжении питания моторов в 12в. Тут получается, что "чем меньше" номинал - тем шустрее ШИМ, но и тем больше потребление самого драйвера.
Оценочно, при номинале в 150ом получим предельный ШИМ (1/20 частоты переключения мосфетов) в районе 160кГц. С пиковыми утечками только через 2N7002 около 80мА на 12 вольтах.
На 1 килооме будем иметь макс.ШИМ около 25кГц с потреблением через 2N7002, в пиках 12мА на 12 вольтах.
При уменьшении питания моторов до 6 вольт скоростные способности слегка улучшаются, а вот потребление в пиках снизится пропорционально. )
P.S. кстати, теоретически, драйвер должен быть работоспособным вплоть до 30 вольт - допустимого напряжения для AO4606 и поддерживать моторы с током до 5А .. надо только подобрать коллекторные резисторы верно для такого режима.
ну почему оффтоп. по теме. может у тебя получится лучше. это хорошо что 50 шт заказал. я штук 5 полевиков сжег на экспериментах
а аккумуляторы лучше поставь 18650 и самую дешевую зарядку к нему
я сам в diptrace развожу
У меня линукс, и винды нет лет 10 как (последняя - хрюша со вторым сервиспаком) - сейчас "ваще не в курсях" что на винде есть и как юзается. Ставить wine - он глючный как мой ночной кошмар, а на виртуал бокс - не хочется по ресурсам. Если надоест линуксовый софт (то ещё чудо), то скорее всего поставлю XP2 через дуалбут. Но, пока "терплю и разбираюсь". Гимп, вот оказался вполне себе конкурент фотожабе .. но, блин, опять оффтоп. )
18650 - это снова Li-ion .. как обеспечить не превышение 7вольт для питания серводвигателей? Ставить преобразователь? .. снова габарит .. ) Для увеличения емкости батарейного отсека, сейчас присматриваюсь к формату уккумов ААА .. получается что их можно 8шт. втыкнуть вроде попарно в параллель. Заодно и разброс параметров меньше влиять будет. Да и их запас - около 12шт. по 1000мач и все рабочие. )
Не, одна 18650 пойдет на питание самой ардуинки, уже присмотрел место взамен кроны..
ну смотри сам. как компенсировать разряд аккмуляторов будешь? и просадку под нагрузкой
ацп начнет еще гулять. да и столько моторов и серв будут питаться от отдельного источника? короче питание ты не продумал