Контроллер бесколлекторного двигателя

Ewgeny
chabapok:

Народ, подскажите с назначением фрагмента схемы, который показан на приаттаченом рисунке. Что это, и для чего нужно? Со всем остальным - вроде ясно, а вот для чего заюзали компаратор в атмеле - не могу понять.

Это защита по току.

chabapok
Ewgeny:

Это защита по току.

Не пойму. Помогите, люди добрые!
Защита ЧЕГО и ОТ ЧЕГО? Зачем там стабилитрон, да еще и в “прямом” включении? Какую роль он там выполняет? Там что - получается обходня цепь через контроллер, через которую при коммутации на питание может пролезть высокий уровень? Маловероятно такое - контреллер от бросков может и пошабашить. То как включен этот стабилитрон - не является по большому счету источником опорного напряжения, стабилитрон нужно было включать впараллель. А может это автор так хотел гарантировать, что на AIN1 будет потенциал ниже, чем на AIN0 при открытом полевике? но тоже странно - 20к резистора (по сравнению с 10к в цепи ain0) вполне бы хватило.

Теперь так - в какой момент срабатывает эта защита? Если исходить не из того “зачем”, а из того “как” оно работает, то помоему очевидно тот стабилитрон нафиг не нужен, и то, что подано на AIN1 фактически есть опроным напряжением, поскольку пренебрежимо мАло изменяется на протяжении всей работы регулятора. Что касаемо AIN0, то тут наиболее большие броски могут происходить при закрытии полевиков. В этом случае ток, который тек через полевик и обмотку мотора, идет через резистор R4, причем за весь “период” один раз ток течет в прямом, а другой раз - в обратном направлении. Ясно, что компаратор может сработать только 1 раз за весь период. Что это даст и от чего это может защитить? Впринципе используя этот компаратор можно посчитать обороты. Только смысла в этом нет поскольку обороты можно посчитать и без него.

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

Есть еще одна идея - этот компаратор есть датчиком какого-то порогового значения скорости вращения двигателя. При маленькой скорости вращения после выключения полевиков через какое-то время на ain0 будет ЭДС самоиндукции меньшая, чем на Ain1. А на оборотах выше, чем какой-то порог - эта ЭДС всегда будет больше. Только если это так - все равно неясно зачем стабилитрон…

anm
chabapok:

Не пойму. Помогите, люди добрые!
Защита ЧЕГО и ОТ ЧЕГО? Зачем там стабилитрон, да еще и в “прямом” включении?

Защита токовая, от перегрузки регулятора. А стоит не стабилитрон а диод шотки, в последних вариантах просто кремневый диод. С шотки защита получилась сильно чувствительной.

Ewgeny

Чтобы отпали все вопросы рекомендую повнимательней изучить исходники и посетить сайт автора контроллера, а также RC Group. Там на форуме всё разжовано по нескольку раз и в полне доступной форме (правда на англицком).

anm

Подскажите где копать в такой ситуации. Регулятор с прошивкой 3,05 с разными моторами (от СД и переделанный). старт нормальный, но при дальнейшем разгоне происходит сбой, мотор тормозится и снова разгоняется так может присходить очень долго. Стабильная работа возможна только на очень малом газу. Аналогично с версией 3,15, но при гораздо больших оборотах, почти максимальных. При сбоях нет включения красного светодиода.

rulll
anm:

Стабильная работа возможна только на очень малом газу.

Проблема в несоответствии или отсутствии обратных связей фаз с выходных ключей на входы компараторов. Может гдето незапаял перемычку. Посмотри файл .inc чтоб соответствовал твоей схеме и плате.

anm
rulll:

Проблема в несоответствии или отсутствии обратных связей фаз с выходных ключей на входы компараторов.

Посмотрю еще раз. Сигнал от компараторов до МК доходит. На одной из плат была сопля, но тогда мотор не стартовал, сейчас стартует но не разгоняется до конца, на другой, тоже с версией 3,05, все аналогично. Думаю если-бы была закоротка, но и с версией lak3,15 работало аналогично, но там сбои только на очень высоких оборотах. Токовая защита отключена, батарея… красный светодиод не горит.

rulll
anm:

Думаю если-бы была закоротка, но и с версией lak3,15 работало аналогично, но там сбои только на очень высоких оборотах.

В лак315 две ступени разгона но обе асинхронные , поэтому разгоняется до больших оборотов. ИНК файлы смотри.

anm
rulll:

В лак315 две ступени разгона но обе асинхронные , поэтому разгоняется до больших оборотов. ИНК файлы смотри.

Значит дело в софте. И сбои происходят при переходе на синхронный режим.
Сейчас еще раз перепроверил железо и сигналы на компараторах. При попытках старта без мотора. На инветируемых входах сигнал в два раз меньше чем на не инвертируемых. На выходах четкие импульсы. Посмотрел питание. При сбое происходит сильная просадка напряжения, почти на 1в, как при КЗ. Завтра проверю инк и запишу новую прошивку.
PS. у кого есть рабочая прошивка к плате home.versanet.de/~b-konze/blmc_bko/BLMC_4428.LAY ?

21 days later
bea

Господа подскажите.
Собрал контроллер на mege8, заработал, так как первый опыт с бк двигателями на мой взгляд был плохой старт (работа на не перемотанный CD). поставил перемотанный от CD 16 витков 0.45, с родным магнитом-результат старт такой же (подергается и запустится) после длительности 1.5 ms дергается во время работы. Поставил винт 10х4.5 (для пробы) при старте подергался,остановился, а потом дым из ключей одной фазы.
В чем могут быть проблемы?
Есть ли у него токовая защита?
И как я понял колличество банок определяется резюками на плате?
Ewgeney- как ваши поиски в решение более правильного управления 7413,7416?
jeti- что можете сказать про старт?

dmitryu
bea:

В чем могут быть проблемы?

Какая прошивка, плата, из какой фазы дым пошёл?

У меня три раза горела средняя фаза, пока прошивку без тормоза не поставил.
Плата - Антона, прошивка - 306

bea:

Есть ли у него токовая защита?

В принципе есть. Программная. Но на плате Антона её точно нет.

Прошивка для BB13 на плате Антона
Без тормоза

bb13_306_NoBrakes.zip

bea

плату брал bb13_alex, прошивку bb13_306 (помоему плата anm не сильно отличается от Антона, просто в eagle.) попыток дыма было несколько все не засек,откуда, думал, что на больших оборотах скабатывает токовая стабилизация в блоке питания (3 max), поэтому подключил аккумуляторы, думал,что успею провод скинуть, если что-то не так. Ага, электроны быстей оказались- согжгли оба на нижней фазе.
как подвезут новые попробую спрошивкой без тормоза.
А каким оброзом можно в схему ввести токовую защиту, а то мне кажется если вал томозну в 0 то опять запах паленого полупровода?
Или бросить мегу и собирать на 2313?

jeti
bea:

jeti- что можете сказать про старт?

Ничего хорошего, у меня тоже дергается. На 2313 с прошивкой lark… (кажется) - лучшие тчо есть. Но все-равно на модель такое 😵 я ставить не буду.

Ewgeny
bea:

А каким оброзом можно в схему ввести токовую защиту, а то мне кажется если вал томозну в 0 то опять запах паленого полупровода?
Или бросить мегу и собирать на 2313?

Токовую защиту можно ввести если добавить шунт 0.01 Ом в минусовой провод. Посмотри по схеме там всё понятно.
Потом лучше всего использовать лампочку от автомобиля в цепи питания контроллера, тогда будеш быстрее электронов, и сохраниш больше транзисторов для экспириментов! (она просто загориться сильнее когда в цепи питания получится коротыш). Опыта по более правильному управлению IRF 7416 пока ни к чему не привели (я честно говоря и незанимался особо, небыло много времени;) всё семья, дети, машина и т.д. и т.п., новые проекты), но я точно знаю что это больно шустрый транзистор по сравнению с SI4425 который использовался в оригинале конструкции. И мне кажется что он слишком шустро закрываеться и открываеться, отсюда вобщемто и все проблеммы! (если я не прав то поправте меня).
Может быть кто нибудь замечал что прошивки 305, 306 неправильно определяют колличество подключённых аккумуляторов. Я подключаю питание 8,6в (это 2 LiPo) а он мне говоррит что у меня 3LiPo и отключает питание? Я нутром чую что это гдето в софте, но пока также руки не добрались.

rulll
Ewgeny:

Может быть кто нибудь замечал что прошивки 305, 306 неправильно определяют колличество подключённых аккумуляторов. Я подключаю питание 8,6в (это 2 LiPo) а он мне говоррит что у меня 3LiPo и отключает питание? Я нутром чую что это гдето в софте, но пока также руки не добрались.

Там резистивный делитель есть. от его точности , а так же от напряжения питания МЕГИ зависит точность определения. Корректируется в софте или этими резисторами.

Gold

Опять вечная тема всплыла? 😃 Тут на днях случайно набрел на одну курилку, там все интересующиеся могут укуриться до посинения. 😛 Скачиваете софт для бездатчикового мотора, а там внутри кроме исходников куча pdf с теорией.

dspvillage.ti.com/docs/…/dsptoolslist.jhtml?family…

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

rulll
bea:

дергается во время работы.

у меня ниче не дергается… 😃

Ewgeny
rulll:

Там резистивный делитель есть. от его точности , а так же от напряжения питания МЕГИ зависит точность определения. Корректируется в софте или этими резисторами.

Неправильно! Параметры резестивного делителя прописываются в софте! Питание Меги=5в+/- 0.2в.
Выставлял напряжение разное (благо БП позволяет ) результат всёравно 3LiPo!

dmitryu
Ewgeny:

Может быть кто нибудь замечал что прошивки 305, 306 неправильно определяют колличество подключённых аккумуляторов. Я подключаю питание 8,6в (это 2 LiPo) а он мне говоррит что у меня 3LiPo и отключает питание? Я нутром чую что это гдето в софте, но пока также руки не добрались.

Если я правильно прочитал исходник (и ты никаких параметров в нём не менял), то
2 гудка - кадмий
3 гудка - литий

Количество банок без правки исходника не пропискивается.
Напоминаю - это про BB13_306 (на ATmega8)

Кроме того, максимальное напряжение LiPo - 4,2В, т.е. 8,6 - это больше, чем две банки.
Подавай 8,3В

Ewgeny
dmitryu:

Если я правильно прочитал исходник (и ты никаких параметров в нём не менял), то
2 гудка - кадмий
3 гудка - литий

Количество банок без правки исходника не пропискивается.
Напоминаю - это про BB13_306 (на ATmega8)
Кроме того, максимальное напряжение LiPo - 4,2В, т.е. 8,6 - это больше, чем две банки.
Подавай 8,3В

Я уже писал что подавал разное напряжение! И
А судя по исходнику он должен гудками говорить сколько банок подключено!
.if Beep_Zells==0
rcall beep328ms ; signal: rcpuls ready
rcall beep328ms
Cbi Accu_Port,LOWACCU

sbrc flags2,LITHIUM_ACCU
rcall beep328ms
.else
sbrc flags2,LITHIUM_ACCU
rjmp LIaccuBeep
rcall beep328ms ; no accucount with NC accu
rcall beep328ms
rjmp Beep_end

LIaccuBeep:
lds adc_loop_counter,accu_cells
beepzells:
rcall beep328ms
dec adc_loop_counter
brne beepzells
Beep_end:

.endif
sei ; enable all interrupts
.endif

dmitryu
Ewgeny:

Я уже писал что подавал разное напряжение! И
А судя по исходнику он должен гудками говорить сколько банок подключено!

На всякий случай переспрошу: в строчке
.equ Beep_Zells = 0;
нолик на единичку поменял? По умолчанию эта фича выключена