Ура! я разобрался! У автора всё правильно, кондёры C9,C10,C11 не нужны резисторы R24,R25,R26,R28 не нужны Главное, чтобы BEMF_REF == max(BEMF_[A,B,C])/2 Когда резисторами игрался перепутал BEMF_A BEMF_C местами (у меня на рассыпухе), поэтому было само возбуждение, компаратор не то ловил. Всё работает как на последнем графике,http://rmmx.gmxhome.de/bldchv/english/pwm.html Нужно компаратором поймать точки, которые пунктирной линией обозначены, между 0,1 и 6,7 (гавное от правильной фазы )
Последний раз редактировалось linvinus 20 май 2011, 22:45, всего редактировалось 1 раз.
Вот видео как результат (обновил видео, теперь звук совпадает) Звук не совпадает с картинкой, баг перекодировщика.Старт стабильный, я первый раз рукой полностью остановил, не ожидал, сработал рефлекс, начал вращать рукой второй раз специально остановил , запускается сам по себе сторожевым псом. Программа каждые 10 сек повышает обороты, на осциллографе видно что программа адаптируется и меняет время переключения под нагрузкой, это означает что всё работает правильно. Ток тоже маленький. Я программу переписал чтобы использовать только один PORTB для mosfet драйвера. все переключения транзисторов аналогичны оригинальной схеме, т.е. во время ШИМ помогают гасить наведённую ЭДС то верхние то нижние транзисторы, это важно, т.к. нужно чтобы гафик изменения напряжения на фазах совпадал с ожиданиями компаратора. Я не ожидал, что программный ШИМ будет работать хорошо на больших оборотах. В общем полезный опыт.
Последний раз редактировалось linvinus 22 май 2011, 12:36, всего редактировалось 2 раз(а).
Хай. Резисторы и кондёры выпаял. Молчит, но вал крутить трудней стало. Сейчас спаяю новый тестер, посмотрим. Влад говорил, там сигнал с сервотестера инвертированный (где оптрон стоит). хз.
Молчит т.к. он ждёт импульс, если проверку на импульсы отключить то он запустит процедуру старта, а затем свободные обороты на минимальной скорости. Какие строки комментировать я писал выше. Если трудности с компилятором, могу выложить скомпилированную прошивку с этими изменениями.
Понятно, тогда желаю побыстрее разобраться. На видео видно как под нагрузкой проседают обороты, для фрезера важны обороты и подача, если режим не оптимальный то будут вибрации и неровный рез, так что прошивку лучше будет дополнить пид регулятором скорости. И какой нибудь выход для кад программы, чтобы та была в курсе работает двигатель или нет.
дополнить прошивку мне врядли скоро удастся. а софт не мудрёный - только и умеет ж-код отправлять на сангвину. это думаю в ней(сангвине) нужно дописывать. ---------- ктати, когда затеял эту штуку к репрапу, была мысль сделать проверку на работу шпинделя(когда поумнею ). вот только недавно столкнулся с этой проблемой. двиг молчит, а подача идёт. кнопки останова не подключены. сидишь и наблюдаешь, как сверло 0.3 медленно ломается. а если и есть та кнопка, а ты не рядом..
>Влад говорил, там сигнал с сервотестера инвертированный (где оптрон стоит). хз. Сигнал инвертированный, но программа ожидает что начало импульса MCUCR |= INT1_RISING; , т.е. не инвертированный, для этого на вход оптрона нужно подавать инвертированный сигнал, или править программу. Здесь я автора не понял, может программа была написана до установки оптрона?