Усовершенствованный сервопривод Чена

arisov77

Попробуйте уменьшить скорость СОМ-порта (в диспетчере устройств) у меня стоит 9600.

Скорее всего датчики Холла от старого винта не подойдут, т.к. они не датчики тока, а датчики положения ротора. Обычно их 3 шт.

BlrUsr

Все нормально , спасибо . не было экрана, а рядом шаговики и импульсные источники “трещат”

Вопрос про обнуление станка. Как мне использовать маркер в линейке для точного обнуления.
Хотя понимаю , что для большинства хобби применений пойдут и концевики.

В линейке “энкодере”
A , неA
B , неB
R , неR

В сервоприводе художника(чена) показан как дополнительный вход на ATMEGу энкодера Z.
Он как-то влияет на систему?

arisov77
BlrUsr:

В сервоприводе художника(чена) показан как дополнительный вход на ATMEGу энкодера Z.
Он как-то влияет на систему?

Что-то я не нашёл по схеме у Художника доп. вход Z, есть вход Reserved. Я его не пробовал использовать, но судя по прошивке servo_mega8_int.asm – это должен быть вход ограничения движения (при лог.0 на этом входе переход на подпрограмму il_fall). В прошивке servo_mega8.asm этот вход не используется.

emilcnc

“для ServoTuning.exe): скорее всего надо обращаться к Alexander A. Karsakbayev”

помогите связатся с ним …

ICQ 110874072

emilvv@gmail.com

arisov77

emilcnc попробуйте связаться с Карелиным Максимом k2soft.narod.ru/contacts.htm , возможно он поможет. Художник (Дмитрий Жабин) указывает на www.k2soft.narod.ru в качестве домашней страницы www.cnczone.ru/forums/index.php?showuser=10. Или напишите Художнику в личку на форумах www.cnczone.ru и www.sapr2k.ru/index.php, так как с этого форума его изгнали. Кстати интересно за что?

27 days later
Anton_M
arisov77:

«слетала» EEPROM.

Чтоб память не слетала нужно правильно установить Фьюзы - смотрите в низу странички - avr123.nm.ru/02.htm

Anton_M
Anton_M:

Чтоб память не слетала нужно правильно установить Фьюзы - смотрите в низу странички - avr123.nm.ru/02.htm

Полевики советую брать для Н-моста на ток в 5 раз больший чем вам нужен для мотора (ток аппаратной защиты на 50% больше) и на напряжение на 50 % выше чем питание моста.

Микроконтроллер разумно выбрать с аппаратным интерфейсом для квадратурного энкодера - dsPIC30 или 33.

http://www.microchip.com/stellent/idcplg?I…;param=en533540

duritskiy

кто бы отладил и наладил производство недорогих сервоконтроллеров…

ATLab
duritskiy:

кто бы отладил и наладил производство недорогих сервоконтроллеров…

А оно нужно? В объемах, окупающих затраты на развертывание производства и приносящих прибыль и при этом недорогих?
При этом нужно учесть, что сервоконтроллер и двигатель суть “близнецы братья” - параметры одного сильно зависят от другого, что грамотно настроить сервопривод намного сложнее, чем просто подключить ШД…
Кто хочет серво - покупает микроконтроллер UHU и делает сам. Или покупает готовое решение - вместе с двигателем.
А вообще, серво - скорее из профессионального использования, а не хобби, и там недорогой контроллер скорее не нужен. Важнее надежность и качество.

arisov77
Anton_M:

Чтоб память не слетала нужно правильно установить Фьюзы…

Не поможет. На надёжность EEPROM в AtMega8 отвечает только 1 фьюз – BODLEVEL. Он у меня =0, т.е. сброс происходит при 4В, а сбой всё равно происходил. Очень хорошо описаны причины и способы устранения «слёта» EEPROM в книге В.Н. Баранова «Применение микроконтроллеров AVR: схемы, алгоритмы, программы», стр. 154-156. (выкладываю здесь – Reset_EEPROM.rar).
Из-за того, что нет гальванической развязки между МК и двигателем при искрении коллектора очень даже возможен сбой. (При питании 110В осциллограф стоящий рядом с проводами к движку «с ума сходит»). Для бесколлекторников, мне кажется это не так актуально.
Пути уменьшения вероятности слёта я вижу следующие: полная гальваноразвязка МК и выполнить рекомендации указанные В.Н. Барановым, т.е. Brown-детектор, изменение адреса EEPROM после записи и считывания, на адрес не содержащий данных, и мажоритирование. И есть на мой взгляд, самый надежный способ – это совсем отказаться от хранения данных в EEPROM, что я сделал. Хотя в этом способе есть недостаток – неудобство настройки, но надежность превыше всего.

Anton_M:

Полевики советую брать для Н-моста на ток в 5 раз больший чем вам нужен для мотора (ток аппаратной защиты на 50% больше) и на напряжение на 50 % выше чем питание моста.

Спасибо за советы. Об этом ещё писал emilcnc. Я сам до этого дошел после нескольких «бахов» во время своих экскрементов. Один (я уже выше на этой ветке писал) из-за своей ошибки, 2-ой раз - из-за перегрева транзисторов (при токе 1А - IRF740 без радиатора проработали около 30 сек.), 3 раз - из-за резкой смены направления. В принципе при правильном настроенном контроллере и Масh (плавный разгон и торможение в закладке Config/Motor Tuning) можно эксплуатировать сервопривод и без аппаратной защиты, но никто не застрахован от глюков Mach, наезда на препятствие и т.п.
Мне всё-таки пришлось поставить аппаратную защиту (на отдельной маленькой платке), установить радиаторы. На IRF740 c небольшим радиатором (очень хорошо подошёл алюминивый профиль от оконного карниза) и током ограничения около 1А привод можно эксплуатировать. На мой взгляд полевики надо брать с 10 кратным запасом (IRF740, 400V, 10A). При хорошем радиаторе можно, наверное, и 5 кратный запас.
Также выяснилось, что при удержании двигателя (при 1А) 2-ух ватный резистор RC-цепочки подключенной параллельно движку начинает сильно греться, пришлось поставить в параллель 2 шт. МЛТ-2 по 3кОм. Сейчас жду IRFP260N, Nкан 200В 49А, ТО247АС как у UHU. Как их получу буду дальше умощнять, о результатах сообщу позднее. Из-за этого у меня весь процесс затормозился.
При экспериментах (при «высоких» напряжениях) выяснилось, что контроллер чувствителен к наводкам по входу энкодера. Как выяснилось, из-за высокого выходного сопротивления датчиков энкодера. Пробовал щелевые оптопары с нагрузочным резистором 1кОм и экранированный провод – стало гораздо лучше, но ложные всплески всё равно оставались (смотрел по осциллографу). Помогло только расположение буферного усилителя с низким выходным сопротивлением непосредственно около оптопар. Экранированный провод я не стал использовать, но он не помешает.
Фото плат (без дополнений, качество платы не очень, бывает и получше, но как уж получилось…), схему с добавленным узлом контроля тока и внешним усилителем энкодера выкладываю в архиве. Также в новой схеме исправлены некоторые ошибки предыдущей (из-за не внимательности), которые я обнаружил: HL1, HL2 – свето, а не фото-диоды, аноды диодов VD16, VD19 должны «идти» к истокам соответствующих транзисторов. При сборке по моему варианту печатки, надо учесть, что VT2 - BC847 (SOT-23) надо перевернуть «вверх ногами».
R11 идущий на РС2 AtMegи на будущее, хочу сделать ограничение по времени срабатывания токовой защиты. Например, при заклинивании двигателя (при перегрузке) более 5 сек. следует отключение его на 15 сек., затем снова включается на 5 сек. И если перегрузка ещё остаётся, то опять выключить на 15 сек. и так несколько раз. Если перегрузка не будет устранена, то движок отключить совсем. Следующее включение только после выкл.-вкл. питания. Возможно это не и надо. Но это обезопасит двигатель и полевики.

Servo_2.rarReset_EEPROM.rar

13 days later
arisov77

Выходим на международный уровень www.cnczone.com/forums/showthread.php?t=62911.
Пару человек, которые повторили конструкцию или использовали прошивку от Художника (с прерываниями), мне там в личке написали, что у них тоже происходил через некоторое время сбой в работе сервоконтроллера.

chkmatulla

ATLab писал: “При этом нужно учесть, что сервоконтроллер и двигатель суть “близнецы братья” - параметры одного сильно зависят от другого, что грамотно настроить сервопривод намного сложнее, чем просто подключить ШД…”
Я подключаю любые движки к своим контроллерам UHU и никаких проблем не встречал. Разве что, для идеальной характеристики меняю величины PID, в контроллере.
Или мы говорим о разных вещах ?

arisov77

Пока ждал полевики IRFP260 (200В, 49А) переделал прошивки под AtMega88. Я тестировал только на этом МК, но уверен, что после незначительных изменениях в исходниках (см. комментарии) будет работать и с AtMega48. Возможно использование Atmega168 при соответствующем изменение таблицы векторов сброса. Если кому надо могу отдельно сделать исходники под AtMega48/168. Кстати при использовании AtMega88 у меня изменения EEPROM пока ещё не происходило.
В этих прошивках активирован WatchDog (в AtMega8, я забыл про него). Тоже если кому надо, могу выложить исходники с активированным WatchDog под AtMega8.
Также в исходниках есть отключенный «кусок» кода для увеличения Dead-Time, который мне на cnczone.com предложил китайский товарищ cbcb128. Но я его не стал использовать, т.к. в IR2184 есть уже аппаратный Dead-Time (500ns). Этот кусочек лучше использовать если драйвер выполнен, например как у Elm Chan.

Наконец получил IRF260, думал, что уж с ними греться ничего не будет. Ни тут-то было – через 20-30 сек. при удержании двигателя и срабатывании токового ограничения на уровне 1,5А транзисторы нагревались так, что «рука не терпит». Какие я только радиаторы не вешал, хотел уже вентилятор вешать. Однако заметил, что если токовое ограничение увеличить до 2А и при нагрузке движка 1,5А (удерживал двигатель и ServoTuning в режиме ШИМ прибавлял постепенно ток), то ничего не греется. Решил попробовать во время перегрузки отключать транзисторы не по SD в IR2184, как у UHU и у меня в первоначальном варианте, а входу IN. В результате – транзисторы перестали греться! Нагружал 3А (больше, имеющийся у меня двигатель, не потребляет) – транзисторы чуть тёпленькие.
Я думаю, что это произошло по следующей причине: когда ограничение тока происходит по SD-входу, то при лог. 0 на этом входе происходит полное закрытие всех транзисторов и в этот момент ЭДС самоиндукции «потекёт», например от +Motor -> левый верхний внутренний А-К диода полевика -> через низкое внутреннее сопротивление источника питания –> А-К диода нижнего правого полевика -> - Motor (как бы происходит шунтировании ЭДС двигателя на источник питания через внутренние диоды транзисторов). В этом случае на каждом транзисторе (диоде) «падает» около 0,6В.
Если же ограничение тока производиться по входу IN, то при лог.0 на этом входе верхние транзисторы закрываются, а нижние открываются и ЭДС мотора шунтируется через их низкое сопротивление каналов. При этом напряжение на транзисторах выделяется гораздо меньше. Соответственно и нагрев меньше.
Возможно нагрев уменьшился из-за чего-то другого. Было бы интересно это узнать.
Вариант схемы с изменениями и исходники для AtMega88 в архиве.

Servo_Mega88.zip

mura

Скажите плс, какой номинал R8?

arisov77

Все 3 выкладываемые мною схемы пересмотрел – везде чётко написано R8 - 10кОм, но можно поставить любой от 1кОм до 100кОм.
В последнем варианте нашёл, что на схеме отсутствует позиционное обозначение R11.

chkmatulla

А греются все транзисторы ? Или парами ?

Zon
arisov77:

Тоже если кому надо, могу выложить исходники с активированным WatchDog под AtMega8.

Выкладывай.

mura
arisov77:

Все 3 выкладываемые мною схемы пересмотрел – везде чётко написано R8 - 10кОм, но можно поставить любой от 1кОм до 100кОм.
В последнем варианте нашёл, что на схеме отсутствует позиционное обозначение R11.

Вопрос был совсем не от того, что мне нечего поставить. Сопротивление завышено в 10-15 раз (это для 10К, про 100К вааще молчу).

Мач выдает импульс длительностью макс 25мкС, так вот импульс такой длительности через оптрон с нагрузкой в 10К не проходит.
При 1К - с натяжкой а при 330 ом все намана.

Отсюда вопрос, Вы делали привод или это все теория?

ATLab
mura:

Мач выдает импульс длительностью макс 25мкС, так вот импульс такой длительности через оптрон с нагрузкой в 10К не проходит.
При 1К - с натяжкой а при 330 ом все намана.

Отсюда вопрос, Вы делали привод или это все теория?

Да это не единственное “спорное” место: лично у меня вызывает сомнение необходимость такой наверченной цепи в затворе полевика. Зачем, если используется драйвер, в котором уже есть защита от “сквозняков” и время включения больше времени выключения? А стабилитрон - для увеличения входной емкости полевика?
В цепи накачки драйвера выпрямительный диод и электролит большой емкости - первый раз вижу такое решение.
Может я, конечно, чего не понимаю… Тогда требуется пояснение автора.

arisov77
chkmatulla:

А греются все транзисторы ? Или парами ?

У меня они на общем радиаторе, поэтому не знаю. Откручивать не стал, был печальный опыт – сгорели IRF 740 от теплового пробоя. Перегрелись 2 транзистора одного плеча (по диагонали).

mura:

Вопрос был совсем не от того, что мне нечего поставить. Сопротивление завышено в 10-15 раз (это для 10К, про 100К вааще молчу). Мач выдает импульс длительностью макс 25мкС, так вот импульс такой длительности через оптрон с нагрузкой в 10К не проходит. При 1К - с натяжкой а при 330 ом все намана. Отсюда вопрос, Вы делали привод или это все теория?

Привод работает у меня на макете, скоро буду ставить на станок. От Mach я пробовал всё отлично работает (при комнатной температуре) с резистором 10кОм (проверял так – давал линию, например 1000мм. При скорости 4000 мм/мин вал двигателя всегда встаёт на одно и тоже место. Мои настройки Motor Tuning: Steps Per =120 имп/об., Velocity =4000 мм/мин, Step Pulse =0. Не думаю, что в реальном станке из-за задержки в оптроне что-то измениться, если только при колебаниях температуры. К тому же у меня ещё один оптрон стоит в плате согласования. Получается 2 оптрона (PC817 и KP1010) последовательно и всё работает. Попробовал сегодня для чистоты экскримента в Mache проинвертировать сигнал Step (время выключения у оптронов обычно больше), также пропусков не обнаружил. Во многих импульсных блоках питания бытовой техники распространенные оптроны РС817 работают на частоте 100-150кГц.
Но я с Вами согласен, для надёжности лучше поставить 1кОм.

ATLab:

Да это не единственное “спорное” место: лично у меня вызывает сомнение необходимость такой наверченной цепи в затворе полевика. Зачем, если используется драйвер, в котором уже есть защита от “сквозняков” и время включения больше времени выключения? А стабилитрон - для увеличения входной емкости полевика?
В цепи накачки драйвера выпрямительный диод и электролит большой емкости - первый раз вижу такое решение.

Драйвер я просто «слепо» скопировал у UHU – у многих работает, зачем «изобретать велосипед». Во время поиска причин нагрева транзисторов я «накоротко» замыкал «затворные» цепи и также замыкал диод с параллельным конденсатором («шло» через низкоомный резистор =22 Ом) – разницы по нагреву не заметил. Можно только ограничиться низкоомным резистором, но когда проектировал плату – об этом не думал.
Стабилитроны надо ставить обязательно – они не раз «спасали» IR2184. Несколько десятков пикушек, а может меньше (я не нашел емкость BZX55C15) на фоне 5200пФ IRF260 роли не сыграют.
Драйвер скопировал, да видимо «проглядел» емкости 220n. Признаю ошибку, но 220 мкФ работают, как говориться «кашу маслом не испортишь», но т.к. электролиты менее надёжны, то конечно лучше поставить керамику или что-то подобное. Выпрямительные диоды – как у UHU, думаю, что КД522 маловато будет (по току).

Спасибо всем за замечания. Может ещё что найдётся?