Контроллер BLDC на основе ATmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Собираю контроллер для бесколлекторного 3-фазного двигателя постоянного тока. В протеусе всё работает и двигатель медленно набирает обороты. Собрал всё на плате, подключил двигатель от HDD, он дергается в разные стороны. Раскручиваю его вручную, он останавливается и продолжает дергаться :dont_know:

Код: Выделить всё

#include <mega8.h>



#define BLDC_DDR  DDRD
#define BLDC_PORT PORTD


#define UH        PORTD.0
#define UL        PORTC.1
#define VH        PORTC.2
#define VL        PORTC.3
#define WH        PORTC.4
#define WL        PORTC.5


unsigned char a=0;
unsigned char b=0;
void main()
{


DDRB.3=1;
PORTB.3=1;


BLDC_DDR|=0x3F;
BLDC_PORT=0x00;



//Настройка TC0    
TCCR0=0x04;
TIMSK|=0x01;
TCNT0=0x7F;

TCCR2|=(1<<WGM21)|(1<<CS22)|(1<<CS21); // clock/256, CTC
TIMSK|=(1<<OCIE2);//T/C2 compare match interrupt
OCR2=0xFF;
SREG|=0x90;

ADMUX= 0x20;//ADLAR, ADC0, AREF
//ADCSRA= 0xC8;//ADEN, ADIE
ADCSRA= 0x88;


while (1);
}


interrupt [TIM2_COMP] void TC2_CMP(void)
{
  a+=1;
  
  if (a==1)
  {
    UH=1;
    VL=1;
    WH=0;
  } 
  else if (a==2)
  {
    VL=0;
    WL=1;
  }
  else if (a==3)
  {
    UH=0;
    VH=1;
  }
  else if (a==4)
  {
    UL=1;
    WL=0;
  }
  else if (a==5)
  {
    VH=0;
    WH=1;
  }
  else if (a==6)
  {
    UL=0;
    VL=1;
    a=0;
  }
}   

interrupt [TIM0_OVF] void tim0_isr(void)
{
    TCNT0=0x7F;
    ADCSRA|=0x40;
    
}   

interrupt [ADC_INT] void adc_isr(void)
{
    
    b=ADCH;
    OCR2=b;
 
}
Вложения
BLDC.rar
(18.9 КБ) 1078 скачиваний
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Чт май 21, 2009 13:54:07
Откуда: Москва

Сообщение romazan »

Напильник нужен хорошиий! :))
Контактная информация:
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

romazan, по существу что-нибудь можешь сказать?
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

По существу разберитесь как все-таки следует работать с bldс motor. Инфы в сети предостаточно. Наводящая подсказка - моменты коммутации должны быть привязаны к положению ротора...
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Сообщение Satyr »

До неработоспособного упрощенное управление.
Рекомендую полглядеть аппноты на атмеле - там нормальных исходниково управления BLDC моторами куча.
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Goodefine писал(а):По существу разберитесь как все-таки следует работать с bldс motor. Инфы в сети предостаточно. Наводящая подсказка - моменты коммутации должны быть привязаны к положению ротора...
Это всё понятно и я это знаю. Но двигатель и без этого будет работать, пока нагрузку на него не повесишь. Ведь его разгоняют по таблице, когда обратная ЭДС мала.

Satyr, AVR444 называется, знаю.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Чт май 21, 2009 13:54:07
Откуда: Москва

Сообщение romazan »

Контактная информация:
Опытный кот
Сообщения: 772
Зарегистрирован: Вс апр 10, 2011 02:24:06
Откуда: г.Северодонецк

Сообщение eufs »

Такую работу я делал еще лет 8 назад. Даже плата где-то валяется,еще на 51 МК.
BLDC - разновидность синхронного двигателя, поэтому для него важен именно синхронный режим работы.
Если двигатель без ДПР, слежение за положением ротора (для синхронизма) может происходить двумя методами. Первый-оцифровка значения ЭДС в моменты коммутационных пауз силовых ключей(как в AVR444). Второй - измерение сдвига фазы коммутируемого тока в обмотках. Но даже имея эти данные, управление скоростью такого двигателя-непростая задача. Уж очень громозкие формулы, посмотрите хотя бы ссылку выше. Мало того. Такие двигатели (без ДПР) применяют там, где фиксированная частота вращения, например HDD, тогда хотя бы немного задача упрощается, и то спецконтроллеры стоят. В CD и DVD приводах и в старых флоппи применяются BLDC с ДПР на элементах холла. Тогда все намного проще.
В аннотации к AVR444 сказано, что они не предоставляют теории управления таким двигателем, а фокусируются на теории снятия сигналов для такого управления. Делайте выводы.
Не имея данных о положении ротора запустить такой двигатель можно плавно увеличивая частоту вращения ,чтобы двигатель не выпустить из синхронного режима , но при малейшей нагрузке на вал, произойдет срыв синхронного поля и ротор остановится.
C0FFEE=‭12648430‬
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

eufs, благодарю. Сделал плавное увеличение частоты и он начал крутиться. Определение положения ротора- это вторая задача.
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса

Сообщение clawham »

Купите готовый китайский преобразователь на компактной платке с силовыми ключами на 30 ампер!!!! крутит любые моторы блдц хоть с сидюка по трём проводам хоть с винта хоть самодельные хоть авиамодельные....при этом по сути дела эти моторы по принципу работы являются коллекторниками только вместо щёток и колектора применяется контроллер и мосфеты...потому можно сильно задирать мощности при компактных размерах....
китайский контроллер на 30 ампер с доставкой в любую точку мира стоит 5-10 доларов!!!! разве это те деньги изза которых стоит изобретать сложную прошивку и палить кучу мосфетов?
контроллеры эти работаю...нормлаьно уверенно стабильно....и не горят если специально не спалить...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

У меня есть такой контроллер от RC вертолета. На ATmega8 собран.
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса

Сообщение clawham »

ye и в чём прикол-то? хотите повторить? идите на сайт микрокоптер де там есть прошивка и т.д.
я и сам хотел когдато этим заниматься а потом плюнул ибо даром ненужный кошкин труд.....зачем копать ямки и потом закапывать если есть унитаз?
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Я не спрашиваю, где купить и откуда скачать прошивку. Спасибо за советы.
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса

Сообщение clawham »

там на сайте выложен исходник!!!
разжевана теория и нарисована платка!!!
впрочем я лично просто не понимаю что Вам хочется от этих моторчиков получить?
всякие реживы дополнительные типа гувернеров и таймингов? сомневаюсь что чтото толковое получится...
я просто тоже этим делом горел долго и уныло...и мегу 168 купил...и прогу уже прикинул и платку выходную с драйверами спаял...но...весь ступор в запуске....очень сложно запускать эти моторчики...
а точнее сложно определить момент когда наша система определения положения ротора по эдс начнет уверенно работать ...ведь для низко КВ моторов это очень низкие обороты будут и впринципе переключиться можно на 3-м "шаговом" пинке.....а для мотора с кв 3800 .... да с питанием 25 вольт....нужно очень аккуратно чтоб не спалить подавать "газ" и при этом существенно быстрее клацать в шаговом режиме....в общем я так и не понял как сделать более менее плавный старт и когда запалил 3 мотора и пачку транзисторов....я пришел к тому что купить готовый с плавным стартом, гувернером и контролем тока - гораздо проще решение....я делаю электромопед на блдц двигателе без контроля положения ротора и я пока прекрасно обошелся регулятором НН40А у которого в меню настраивается плавный старт и тайминги...а большего мне и не надо...транзюки силовые вынесены за пределы на радиаторы и...в общем 100 ампер на фазе я выжимал при питании 24 вольта при этом "тянущее" усилие на колесе было 10 килограмм...была попытка поездить без контроля тока...но.....молейший резкий рывок "газа" и силовые транзюки исчезли...остались только кусочки ножек...вот сейчас собрал и контроллер тока и пидрегулятор и т.д. на днях будет попытка номер 2...по крайней мере на моторе 3800 кв 500 ватт в "домашних" условиях ток ограничивает очень четко.....посмотрим что будет на большом моторе...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Контактная информация:
Открыл глаза
Сообщения: 79
Зарегистрирован: Вт июн 07, 2011 12:53:26

Сообщение Jonson77 »

А прошивочку можно и какие биты конфигурации выставлять на МК?
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Jonson77, скачайте апноут AVR444, в нем всё пояснено. Если что-то не поймете, спрашивайте здесь.
Я сделал контроллер на основе этого кода, портировал его под CVAVR.
Открыл глаза
Сообщения: 79
Зарегистрирован: Вт июн 07, 2011 12:53:26

Сообщение Jonson77 »

Что-то я не найду апноут может просто выложите готовый HEX. Я вот нарыл одну схему от авиамодели и хочу использовать ее для раскрутки двигателя от CD-ROMa, но не знаю как ею управлять. Мне нужно что-бы двигатель вращался, а найденые мною схемы серво тестеров подходят только для регулировки позиции двигателя и вращают его в диапазоне одного полуоборота. Помогите со схемой управления, хотел использовать двигатель не для авиамоделей, а просто как двигатель и если можно в управлении просто кнопи запуска, остановки и регуляции скорости оборотов.
Вложения
Proteus.rar
(599.96 КБ) 589 скачиваний
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса

Сообщение clawham »

а можно вопрос?
ЗАЧЕМ!?!?
строить свой контроллер убивая пачки тарнзюков и моторов когда самый простой контроллер авиамодельный на 30 ампер чтоит 50 грн....ато и 30 грн....при этом 200% работает с любыми BLDC моторами!!!

а управлять ним очень просто!
при подаче силового питания на контроллер ему на управление нужно давать импульс....длиной 1000 us 20-50 раз в секунду...
потом плаавно нужно наращивать длину импульса при этом будет увеличиваться ШИМ заполнение.....максимум будет 2000 микросекунд(2 миллисекунды)...вот и всё
серво тестер не крутит моторчик на угол...он всего лишь выдаёт сигнал 1-2 миллисекунды в зависимости от положения крутилки!
если к нему сервопривод подключить - то да....тот будет отклонять вал соответственно положению крутилки.....а если к нему контроллер bldc подключить - будет вам счастье...при этом там и контроль перегрева есть ...и слежение за напругой АКБ....и в некоторых - логгирование тока напруги оборотов и т.д. и т.п....в общем....я забросил эту идею гиблую
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Контактная информация:
Открыл глаза
Сообщения: 79
Зарегистрирован: Вт июн 07, 2011 12:53:26

Сообщение Jonson77 »

И где такие цены, я бы купил. А нет ли простой схемы управления для драйвера BLDC, чтобы был старт, стоп и регулятор скорости - ну как на станках ЧПУ? :dont_know:
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса

Сообщение clawham »

неужели сложно собрать на 555 таймере генератор 1-2 миллисекундного сигнала? нет - берите тини13 мегу8 и так далее....но плавный старт очень желателен ибо щетки выдерживают перетоки просто искря а вот транзисторы ..... они не щетки...и искры в транзисторах обычно очень быстро заканчиваются :)
такие цены ВЕЗДЕ ...в китае на руках в авиамодельных магазинах....
НЕ РЕКЛАМА...ну раз спросили - вот
http://forum.modelka.com.ua/index.php?showtopic=26157
там есть что выбрать....обычно у регулей до 30 ампер включительно нет драйверов у ключей - ключи от МК напрямую и используются N канальные внизу и P канальные вверху(3 плечевой мост)...у регулей на 40 ампер и выше - уже драйвера и все транзюки N канальные следовательно можно нарастить хоть IRF3205 до 100 - 200 - 300 ампер
аналогично могу подсказать и по моторам....
сам делаю электромопед...точнее уже сделал на 95% авиамотор на полтора киловатта.....
в общем обращайтесь....а....создавать свои регуляторы...это....ну....сложно и практически невозможно если Вам проблема апноут соответствующий скачать-то :)
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Контактная информация:
Ответить

Вернуться в «AVR»