MULTICOPTER.RU
http://multicopter.ru/forum/

BLDC
http://multicopter.ru/forum/viewtopic.php?f=7&t=1052
Страница 1 из 1

Автор:  SpLoiT [ 01 июл 2011, 08:41 ]
Заголовок сообщения:  BLDC

Вообщем пока появилось время сижу ковыряю прошивку BL контроллеров немецких... Вот эту и смотрю на вот эту схему BL_CtrlV1_1
Вот кусочек из BLMC.c:
Код:
//############################################################################
// + Interruptroutine
// + Wird durch den Analogkomperator ausgelöst
// + Dadurch wird das Kommutieren erzeugt
SIGNAL(SIG_COMPARATOR)
//############################################################################
{ ...
}

И из BLMC.h:
Код:
#define ClrSENSE            ACSR |= 0x10
#define SENSE               ((ACSR & 0x10))
#define SENSE_L             (!(ACSR & 0x20))
#define SENSE_H             ((ACSR & 0x20))
#define ENABLE_SENSE_INT    {CompInterruptFreigabe = 1;ACSR |= 0x0A; }
#define DISABLE_SENSE_INT   {CompInterruptFreigabe = 0; ACSR &= ~0x08; }


И не понимаю... даже если прямой вход(AIN0) подключен к ИОН, а он как я понимаю в любом случае не подключен... то по схеме на AIN1 висит светодиот... и настроена эта нога следовательно на выход...

Так в какой же момент времени происходит прерывание по компаратору? или сам компаратор не используется, а используется прерывание принудительной установкой бита ACI в ACSR? Вообщем... если кто может прошу разъяснить...

Автор:  Katsuk [ 01 июл 2011, 10:19 ]
Заголовок сообщения:  Re: BLDC

так все правильно, AIN0 идет на MITEL, а AIN1 внутри переключается между NULL_A, NULL_B, NULL_C, в зависимости от фазы. У AVRа второй вход компаратора можно подключать ко входам АЦП. А AIN1 используется просто как порт.

Автор:  SpLoiT [ 01 июл 2011, 11:03 ]
Заголовок сообщения:  Re: BLDC

АААААААААААААА точно через ACME в SFIOR... мультиплексор
Ну мне простительно))

Спасибо, большущие за разъяснение))) вылетело прям про эту возможность

Вы уж тогда темку не прибивайте... я еще что-нить при возникновении поспрашиваю...

Самое большое затруднение это немецкие слова... приходится в переводчик лазить... ну зато и лингвистическое развитие).

Спасибо, еще, раз!!!

Автор:  SpLoiT [ 09 июл 2011, 19:30 ]
Заголовок сообщения:  Re: BLDC

Katsuk, а ты пробовал компилировать прошивку с исходников с svn.mikrokopter.de? я имею ввиду в частности на БК контроллер...

Автор:  SpLoiT [ 09 июл 2011, 22:00 ]
Заголовок сообщения:  Re: BLDC

еще не могу вкурить в суть этого выражения:
Код:
while((SENSE_L && sense) || (SENSE_H && !sense));

,где:
Код:
//ACSR=|ACD|ACBG|ACO|ACI|     ACIE|ACIC|ACIS1|ACIS0|

Код:
#define SENSE_L             (!(ACSR & 0x20)) //0х20 = 0010 0000
#define SENSE_H             ((ACSR & 0x20)) //0х20 = 0010 0000

Код:
if(SENSE_H) sense = 1; else sense = 0;


Ведь SENSE_L никогда не будет нулевым с этой инверсией...
а SENSE_H будет нулевым, если бит ACO в ACSR = 0...

да, это всё происходит в BLMC.c
Кто чем может)

Вот просимулировал даже в Proteus'e:
Код:
SENSE_L=11111111 && sense=1 TRUE
SENSE_L=11111111 && sense=0 FALSE
SENSE_L=11011111 && sense=1 TRUE
SENSE_L=11011111 && sense=0 FALSE

SENSE_H=00000000 && !sense=1 FALSE
SENSE_H=00000000 && !sense=0 FALSE
SENSE_H=00100000 && !sense=1 FALSE
SENSE_H=00100000 && !sense=0 TRUE

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/