Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

mcp19111

Вт дек 26, 2017 15:46:18

Здравствуйте! В общем имеется демонстрационная плата ADM00397 на контроллере mcp19111.Этот мк имеет внутри мощный mosfet драйвер, к которому подключаются 2 транзюка снаружи, которые соединяются на выводе PHASE.Как я понял мосфет драйвер тактируется от таймера 2 и подключать его к выходу самого драйвера программно не надо.Сам драйвер создает ШИМ на выходе PHASE со скважностью установленной через PWMRL.Про сам драйвер написано ,чтобы его включить надо обнулить регистр ATSTCON.Также необходимо установить выходное напряжение на выходе не понятно чего(Чего не понятно так как через регистры можно установить только маленькое напряжение ,а на выводе PHASE должно быть большое) через регистры OVCCON,OVFCON. Но, что то ничего не выходит.На выходе с PHASE всегда 1.23 вольта видимо обусловленные конденсаторами вне зависимости от скважности установленной через PWMRL и напряжения установленного в регистрах.Таймер 2 работает.Проверял через мигание светодиодом.Видимо я чего то не понимаю.Может кто сталкивался с этим мк? Питаю от зарядки 12V на 1.5А.

Код:
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#define _XTAL_FREQ 8000000
#include <xc.h>

void main(void) {


// PE1 =0;
//ABECON=0;
BUFFCON=0;
OVCCON=243;
OVFCON=140;
PR2=25;
PWMRL=15;
ATSTCON=0;
T2CON=7;

while(1){
}

return;
}

Re: mcp19111

Пн янв 01, 2018 23:34:58

В общем можно сказать, что я более менее разобрался как выставить заданное напряжение на выходе.Теперь остался один вопрос это про калибровочные слова.Калибровки разрабы сами зашили в отладочную плату или они зашиты в любом контроллере и их надо всегда подгружать? Ну в общем без них нормально не работает да и еще непонятные регистры требует, которые к делу не относятся.Вот,что получилось Выставляю 3.3В на выходе 3.35В Можно еще покоректировать обратной рампой думаю (slope compensation).Вот код.

Код:



#include <xc.h>
#pragma config MCLRE = ON
#pragma config CP = OFF
#pragma config PWRTE = OFF
#pragma config WDTE = OFF
#pragma config WRT = OFF
#define Vout 208
#define _XTAL_FREQ 8000000L


void main() {

PMADRH = 0x20; CALSEL = 1;
PMADRL = 0x80; RD = 1; NOP(); NOP(); DOVCAL = PMDATH; OSCCAL = PMDATL;
PMADRL = 0x81; RD = 1; NOP(); NOP(); TTACAL = PMDATH; BGRCAL = PMDATL;
PMADRL = 0x82; RD = 1; NOP(); NOP(); VROCAL = PMDATH; ZROCAL = PMDATL;

PE1 =0;
HIDIS = 1;
// OPTION_REG = 4;
PWMPHL = 0;

PWMRL = 19;
PR2 = 25;
T2CON = 4;


CMPZCON = 13;
// SLPCRCON=50;
// SLVGNCON=0;

// CSGSCON=5;
// VZCCON=128;
// CSDGCON = 0;


ABECON = 27;//27
BUFFCON = 3;
ATSTCON = 0X80;
OVCCON= Vout;
OVFCON = 128;



// HDLYBY=1;
// LDLYBY=1;
// DEADCON=19;

HIDIS = 0;


while(1){

}

return;
}
Ответить