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

arisov77
Stillwell:

…я так понял вывод 8,9,12,13 на А, 1,2,5,6 на В

Вообще то, без разницы какие входа буферного каскада (CD4011) будут подключены к выходам AS5040 (в.3-“А”,в.4-“В”).
Как я уже писал в схеме rcopen.com/forum/f110/topic40981/411 у меня ошибка, в “печатке” всё нормально. Чтобы было меньше вопросов - выкладываю исправленную схему.
На плате для индикации состояния выходов были установленны ЧИП-светодиоды типоразмера 1206.

Stillwell

А я нашел вот такую схему какие будут мысли 😃

25 days later
Stillwell

без этого резистора работает только PWM_LSB а A_LSB_U И B_Dir_V не работает;)

Stillwell

Я собрал схему и меня получается, что по выходу A B много лишних импульсов и что с этим делать совсем не ясно? компараторы тоже будет ложные срабатывания. вообще вывод таков что микросхема не так проста как это может показаться, она требует настройки.

Stillwell

Нужна очень точная центровка по центру микросхемы, в домашних условиях не реально, и по этой причине импульсы в определенном месте радиуса импульсы идут с грязью ложных срабатываний.
Якобы это можно откалибровать при помощи само диагностики микросхемы но её нужно включить какой то хитрой комбинацией сигналов я там честно ни чего ни понял. может кто поможет?

20 days later
georgnsk

А не проще шаговик от старого флопика вместо энкодера прицепить? 200 шагов минимум можно получить, максимум без особых ухищрений 800 имп/оборот.

Stillwell

вот то что выдаёт энкодер на базе AS5040, крутить магнит двигатель 360о с постоянной скоростью, как видите есть какая то мертвая точка пропуск импульсов и что с этим делать не понятно.
Возможно это из за того что микросхемы используемые в данной схеме это семплы с сайта производителя, но зачем им делать дурную рекламу не понятно, хотя как понять этих буржуев

georgnsk:

А не проще шаговик от старого флопика вместо энкодера прицепить? 200 шагов минимум можно получить, максимум без особых ухищрений 800 имп/оборот.

Эта система будет работать только на малых скоростях так как на больших фронты импульса смажутся и сосчитать что-то будет весьма проблематично.
И всё же мир не без добрых людей, так как мне подарили ROD-426 1024 и ещё какой то там А58 серии на 2000 импульсов

georgnsk
Stillwell:

Эта система будет работать только на малых скоростях так как на больших фронты импульса смажутся и сосчитать что-то будет весьма проблематично. И всё же мир не без добрых людей, так как мне подарили ROD-426 1024 и ещё какой то там А58 серии на 2000 импульсов

Если нагрузить резистором каждую обмотку, то откуда возьмется смазывание? ЕДС пропорциональна скорости вращения, поэтому чем быстрее вращаешь тем круче фронт.

Stillwell

Как вы можете видеть то, что одиночные шаги шд практически не дает ни каких импульсов, ситуация меняется с увеличением скорости, но все ровно это ни как ни решает проблему енкодера так как нам нужны


1 0 1 0
 0 1 0 1

а получается, что если это использовать для подсчёта пройденного расстояния то будет добавляться импульс так как система будет думать что он сработал

georgnsk

Одиночный шаг характерен малой скоростью вращения, соответственно и ЭДС будет мала, поэтому придется сигнал с обмотки ШД сначала усилить , а потом ограничить до логического уровня.

Deemann

а что далеко-то ходить, вот “велосипед” 😉ra3ggi.qrz.ru/UZLY/encod.htm
встречно-параллельные диоды срезают вершины пиков - получается почти меандр.
доработать схемку можно, на триггеры Шмитта, более крутые фронты будут.

Промышленные оптические энкодерные чипы содержат достаточно длинный конвейер фотоприёмников, для коррекции перекосов и прочих “шумов”. и они рассчитаны, как правило, на комплектные кодомерные диски или линейки, с рисками именно под эти чипы. но не факт, что они не смогут “читать” другие интервалы, отличные от “родных”. конвейер по сути - линейная видеокамера, которая позволяет держать в поле зрения сразу до 4-8 рисок, исходя из “увиденного” бега группы рисок чип уже решает, как это выдать в квадратуру. это я про инкрементальный, с абсолютными всё гораздо замудрёнее, там несколько каскадов кодомерных дисков и цифра на выходе.

зы. и интересно, какое разрешение самодельного энкодера планируется?

georgnsk

Вполне подойдет! По ссылке есть кое-что и еще…

Stillwell

Вообще вы с энтузиазмом отнеслись к этой теме но должен сказать, что схема в которой используют данный энкодер это трансивер, и как я понимаю используется для подстройки или настройки частоты приёма, и это не оптический энкодер в сервоприводе. И там как я думаю, в микроконтроллере есть специальный вход под энкодер, что решает проблему связанную с отсутствием устойчивого положения энкодера.

georgnsk

Пожалуй про трансивер здесь скажем э… не уместно, это немного из другой оперы. Применение ШД как замены оптическому энкодеру не противоречит никаким законам физики. Фронты будут более “размазанными” и только, а учитывая что ШД имеет 200 импульсов на оборот, а оптика в разы больше, то такое дрожание нас не сильно должно беспокоить.

Deemann

Получился вот такой девайс 😎 Работает, однако 😁
Квадратурный сигнал вперёд и назад 😵

21 days later
Stillwell

Вообще этот магнитный энкодер как оказалось полная лажа, 1024 импульса это для PWM, а в квадратурном режиме который включается при помощи посадкой пина CSn на GND на прямую или через резистор номиналом до 50кОм, выдает всего то 256 импульсов что конечно же мало!!!

arisov77
Stillwell:

… 1024 импульса это для PWM, а в квадратурном режиме который включается при помощи посадкой пина CSn на GND на прямую или через резистор номиналом до 50кОм, выдает всего то 256 импульсов что конечно же мало!!!

Я могу ошибаться, спорить не буду (подзабыл), но вроде бы, когда я AS5040 подключал к сервоконтроллеру и смотрел в программе ServoTuning, то в окне «Текущая позизия» / кн. «Получить» я получал значение 1024 при вращении рукой (в режиме «ШИМ») вала двигателя на 1 оборот. Проблем с центровкой не возникало, наоборот понравилось, то что особо ничего не настраивая и не центрируя удалось получить чёткое и стабильное количество импульсов на оборот. Также подачей напряжения «напрямую» на двигатель я получил стабильную частоту импульсов выше 100кГц (после «учетверения» импульсов от АS5040 в МК (на его выходе) в тестовом режиме). Но полноценно с сервоконтроллером в режиме «Серво» я не испытывал – появились другие дела и проект был «закинут на дальнюю полку».
Может дело в применённом магните? У меня «оригинальный» AS5000 www.prochip.ru/products/brands/ams/362657/ (М1 или М2 - не помню, если надо, то через пару недель могу уточнить).
У Вас получилось 256 имп/об с одного канала? Если это так, то для правильного получения разрешения энкодера это число надо умножить на 4.
В DataSheet где-то указанно, про 256имп/на оборот в инкрементальном режиме, без перепрограммирования AS5040? Если не трудно укажите номер страницы DataSheet со ссылкой на него.
P.S.: Вывод 11 AS5040 у меня на «корпусе» (в печатке это так), видимо в печатке я ошибки подправил, а в схеме забыл.
Кстати, судя по DataSheet www.prochip.ru/cms/f/367019.pdf (стр.7)резистор к 11 ножке должен быть не до 50кОм, а до 5кОм.

Stillwell

Я не знаю, что там написано в даташите, тому как все мои попытки понят что там написано не увенчались успехом и поэтому прочтенные данные очень поверхностны, но счетчик собранный на тини2313 говорит что 256.
выложу скрины скоро

Stillwell

The output combinations change with each absolute position step. As shown below, you need four absolute positions to
generate one pulse sequence for Outputs A and B. The sequence repeats every four absolute positions. Consequently,
the number of pulses per revolution is: number of absolute position / 4.
For 10 bit resolution, this means: pulses per revolution = 1024 / 4 = 256

Stillwell

www.qsl.net/oe5jfl/ant_cont.htm
Вот здесь есть конвертер протокола SSI в квадратурный сигнал но использованный там микроконтроллер довольно устарел, возможно найдется энтузиаст и перепишет программу на более современный микроконтроллер.

13 days later
rv9yw

добрый день. Я так и не понял - расталкуйте:

если на диске у меня например 100 прорезей то:

  1. в инкрементальном режиме - 100 имп/оборот
  2. а в квадратурном получится - 400 имп/оборот

какую цифру брать для расчета. Т.е. какая дискретность получится 100 или 400?