| AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
Алгоритм управления ШД, микрошаг, требуется помощь
18.10.2015, 22:22
|
|
|
Частый гость
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Алгоритм управления ШД, микрошаг, требуется помощь
Всем привет. Я получил на свою голову проблемку, убил прошивку в одном важном девайсе, скопировать с другого не могу, потому как защита стоит. Решил попрактиковаться с шаговиком, сваять прошивку самому.
Описание девайса. Это блок управления мощным шаговым двигателем. У него есть режим принудительного включения и режим, когда скорость шаговика зависит от скорости входящих импульсов. Крутится всегда в одну сторону. Важна точность +\- и потребляемый ток, потому как БП не очень мощный.
Я анализатором снял сигналы, выходящие с контролера. Схему примерную для понимания - прилагаю.
canal0 - PB2
canal1 - PB1
canal2 -выход PD1 какой то выход, я пока не знаю зачем он
canal3 вход PB0,PD0,PD2 тактовые импульсы, если замкнуть на землю - двигатель делает шаг, а может
и несколько шагов, не понятно - это надо узнать из данных анализатора.
canal4 принудит вкл PD4. Замыкаем на землю - двигатель крутит 1 оборот за 2.7 сек
canal6 - PD3
canal7 - PB3
Давай глянем файл шагориг_принудит. в этом файле я просто 3 раза включаю двигатель.
В канале 4 на 2.7сек я включаю двиг и работает он до 4.5сек, потом двиг работает с 5.19 по 6.98сек,
потом с 7.6сек и до конца мотор крутит.
В канале 3 - скорее всего помехи, я его не трогаю.
У меня в проге каналы с 0 по 7
Прога Saleae Logic 1.2.3 Beta
Анализатор 8 каналов 24мГц.
В файле 16 MHz, 160 M шагориг_на входземля я эмитирую входящий импульс, нашел очень интересное место, кидаю картинку. На вход Канал 3 приходит 0, мотор делает шаг
Это я так понимаю микрошаг. Как определить сколько там микрошагов?
В архивчике 16_10 я прилагаю свою прошивочку и файл с протеуса, моторчик просто крутит, но момент просто никакой, хотя ток потребляет приличный.
В фале анализатор есть еще 2 примера моего шага. 16 MHz, 160 M microstep_moy это файл полученый с помощью моей прошивки.
Файл 16 MHz, 160 шагмой это так же моя прошивка с полушагом, момент у мотора отличный, ток даже меньше, чем надо, можно конечно и его использовать, НО мне хочется докопаться до истины и понять как микрошаг реализован в оригинале.
Ну и самое невероятное - может кто то узнает свое детище. Пароль Клен-Луганск.  Мне бы в идеале прошивочку оригинальную купить
Зы: добавил прошивочку с полушагом, которая офигенно крутит двигатель.
Последний раз редактировалось Vovan_G5; 19.10.2015 в 13:52.
Причина: Добавил прошивку
|
|
|
|
19.10.2015, 23:01
|
|
|
Прохожий
Регистрация: 14.01.2007
Сообщений: 1
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
|
|
|
|
19.10.2015, 23:46
|
|
|
Частый гость
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
Спасибо, это конечно вариант, но не спортивно.
|
|
|
|
20.10.2015, 10:43
|
|
|
Частый гость
Регистрация: 30.07.2010
Сообщений: 30
Сказал спасибо: 6
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
Сообщение от Vovan_G5
|
|
сваять прошивку самому.
|
Я вам не помогу с программой прошивки, но алгоритмом поделюсь. Тем алгоритмом, который я сваял лет 40 назад для двигателей ШД5-Д1 на одном своем девайсе.
У меня было 2 источника - на 5В и 40В. Ток в обмотки двигателя подавался импульсом от 40В до момента достижения номинального тока через обмотку с последующей отсечкой тока, и параллельно - от 5В до момента завершения поворота на полшага. В определенный момент времени без выключения тока на первой обмотке подавался так же точно ступенчатый импульс 40-В-5В на соседнюю обмотку. Время опережения завиело от требуемой скорости вращения. То есть при медленном перемещении, по шагам - без упреждения, чем скорость выше - тем упреждение больше.
Измерял токи на резисторе 0.05Ом. Сами понимаете, время тогда было - логарифмическими линейками считали, осциллографами мерили. Руками паяли, головой думали. Может чем поможет мной написанное? Да, диод на ключе сбрасывал ЭДС самоиндукции на шину питания - какая-никакая рекуперация энергии катушек двигателя.
|
|
|
|
20.10.2015, 11:12
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
Не понимаю, зачем вы все здесь это пишите. По таймеру битовая маска накладывается на порты. Если маска инвертирована, порт меняет состояние и мотор вращается. Если нет - мотор стоит на месте. А почесать языком можно в курилке. И совершенно безнаказанно.
|
|
|
|
20.10.2015, 11:33
|
|
|
Частый гость
Регистрация: 24.03.2005
Сообщений: 28
Сказал спасибо: 3
Сказали Спасибо 16 раз(а) в 8 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
ШД дёргается обычно при отсутствии одной фазы или при неправильной последовательности импульсов, управляющих ключами. Проверьте алгоритм, что МК выдаёт на управление шаговиком.
Судя по схеме, могу предположить, что в нормальной прошивке при одном положении переключателя реализован какой-то конкретный режим (полного или дробного шага) на макс. скорости, а на другом - этот же режим, только в режиме внешнего прерывания ( на каждый входящий управляюший импульс меняется состояние выходных портов в соответствии с алгоритмом полного или дробного шага).
|
|
|
|
20.10.2015, 13:00
|
|
|
Частый гость
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
Народ, посмотрите файлы с анализатора, плиз. Если есть конкретная мысль по алгоритму в них реализованному - прошу ткнуть меня носом и разжевать. Я не силен ни в программировании ни в математике.
То, что я написал на картинке схемы, то , что дергается, то было раньше, по моим прошивкам с шагом и синусоидальным током и просто полушагом с постоянной шим модуляцией - ничего не дергается, но надо сделать так , как задумал автор.
Ну а двумя напряжениями я делать не буду - у меня железо готовое, да и ток в обмотках измерять не могу, в моем железе это не предусмотрено.
|
|
|
|
20.10.2015, 13:40
|
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
Сообщение от Vovan_G5
|
|
Народ, посмотрите файлы с анализатора, плиз
|
Ну че там смотреть??? Смотреть на то как шимом синусоиду делать??? Так этого в Инете полно... Ты вот лучше сам на это посмотри, разберись и сможешь все сделать сам...
пример твоей прошивки с исходниками...
|
|
|
|
20.10.2015, 15:46
|
|
|
Частый гость
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
А я это уже делал и выложил в 16_10.zip и прошивку и протеус
Мне надо сделать так, как автор сделал в 16 MHz, 160 M шагориг_принудит из ахива аназизатора. Вот выделите мне, где там 1 шаг, 1 микрошаг, есть ли там разгон и торможение?
|
|
|
|
20.10.2015, 21:26
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Алгоритм управления ШД, микрошаг, требуется помощь
Сообщение от Vovan_G5
|
|
выложил в 16_10.zip
|
И что мы должны сделать с вашим кексом?
Если желаете ответов и конструктивной критики, кладите исходник.
Сообщение от Vovan_G5
|
|
Прога Saleae Logic 1.2.3 Beta
|
У меня 1.1.15, менять по вашему желанию не собираюсь.
Сообщение от Vovan_G5
|
|
Как определить сколько там микрошагов?
|
Тупо подавать импульсы на вход step до повторения картинки.
На втором таймере можно сделать 512 микрошагов (пусть кривеньких, но 512).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:43.
|
|