Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 05.03.2019, 21:54   #1
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию dsPIC33CH

Всем привет.


хочу перенести пару старых проектов с dsPIC33ep и dsPIC33ev на эту новую серию dsPIC33CH. мне как раз тогда не хватало скорости, 140МГц было маловато, а здесь аж 200МГц, да еще и 2 ядра


1. Master 180МГц
2. Slave 200МГц


ни кто не пробовал такого "чудо зверя"?
Gera82 вне форума   Ответить с цитированием
Старый 05.03.2019, 22:03   #2
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Странно Вы оцениваете производительность по частоте тактирования...
Обычно принято по МИПСам.
А какая у Вас задача? Это я к тому, что ресурсы этого семейства даже не в двухядерности, а в стеке контекста. Переключение задач происходит практически мгновенно.
Но нужно разбираться как все это хозяйство поддерживает компилятор, а то опять на АСМе писать....
Марк вне форума   Ответить с цитированием
Старый 05.03.2019, 22:23   #3
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от Марк Посмотреть сообщение
Странно Вы оцениваете производительность по
Обычно принято по МИПСам.
окей перепишу для вас:
70 МИПС было маловато, а здесь аж 100 МИПС, да еще и 2 ядра

1. Master 90МИПС
2. Slave 100МИПС

я сейчас именно за 16битнкик Микрочипа говорю.

Код:
хозяйство поддерживает компилятор, а то опять на АСМе писать.... :D
вот как раз и хотел узнать может кто экспериментировал
Gera82 вне форума   Ответить с цитированием
Старый 05.03.2019, 22:41   #4
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от Марк Посмотреть сообщение
А какая у Вас задача?
задача, проста перенос небольшого проекта и изучаем новые Микрухи Микрочипа.


есть проект дсПИК33еп 70Мипс, вот кусок программы:
Код:
 while(1)
 {  
 
    temp = PORTA;

    if (temp != temp_alt)
     {
        richtung = ((temp & 1) ^ ((temp_alt>>1)&1));
        temp_alt = temp;
     }

   if (richtung == 0)
    {

    switch(temp) //
             {
             case 0:
                  anfang = 0;
             break;

             case 3:
                  if (anfang == 0) { temp2 = 0;}
             break;

             case 7:
                  temp2 = 4;
                  anfang = 1;
             break;

             default:
             break;
    }

   }
   else
   {
    switch(temp) //
             {
             case 0:
                  if (anfang == 1) {anfang = 0;}
             break;

             case 2:
                  if (anfang == 1) {temp2 = 4;} else {temp2 = 0;}
             break;

             case 7:
                  temp = 3;
                  anfang = 1;
             break;

             default:
             break;
           }

    }

     LATB = temp | temp2;
}
Программа формирует пакет данных при инициализации (здесь невидно), а патом, копирует сигналы с частотой до 300кГц RA0->RB0, RА1->RB1, и на RB3 формирует Пульс.

Оптимизация компилятора, максимальная (s).


Эта все работает четко и без сбоев до 300кГц частоты по входу, уже годами.

а вот на днях понадобилось 400кГц, и здесь железо не успевает.

Последний раз редактировалось Gera82; 05.03.2019 в 22:47.
Gera82 вне форума   Ответить с цитированием
Старый 06.03.2019, 04:55   #5
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

А 2 ядра тут каким боком? Второе ядро - это ОТДЕЛЬНЫЙ процесс. Для второго ядра даже отдельный проект в МПЛАБ создается.
Собственно, код второго (слейвного) ядра грузится в PRAM из общего флеша и запускается. Исполнение асинхронное и никакого отношения к коду основного (мастер) ядра не имеет. Обмен через мейл-боксы. Периферия у ядер разная.
Как это ускорит простейший код?
У меня ощущение, что Вы задачу для простого CPLD решили на дспике... и зачем дспик, если достаточно пик24?
Марк вне форума   Ответить с цитированием
Старый 06.03.2019, 08:52   #6
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,083
Вес репутации: 3977/85
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Марк
да. очень похоже на задачу для CPLD.
besogon вне форума   Ответить с цитированием
Старый 06.03.2019, 09:13   #7
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Кстати, не исключено, что можно допустить общую задержку проталкиваемой диаграммы и спокойно перевести ее на хардварное исполнение, резко увеличив скорость. Интересно, а что за входные сигналы тут? Какой то протокол?
Марк вне форума   Ответить с цитированием
Старый 06.03.2019, 10:17   #8
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от Марк Посмотреть сообщение
У меня ощущение, что Вы задачу для простого CPLD решили на дспике... и зачем дспик, если достаточно пик24?

правильное ощущение это решение есть на atf750c, у меня место нету на плате, а контроллер точно нужен, для формирования данных (при инициализации). я решил все в маленький qfn28 5x5mm dspic33EV в пихать.

Проблема решилась и работает.


Цитата:
Собственно, код второго (слейвного) ядра грузится в PRAM из общего флеша и запускается. Исполнение асинхронное и никакого отношения к коду основного (мастер) ядра не имеет. Обмен через мейл-боксы. Периферия у ядер разная.
Как это ускорит простейший код?
я так понимаю, что здесь надо два проекта в МПЛАБе и они друг от друга не зависят, правило?

я думал только СЛАЙВ на 200МГц "раскочегарить" и мне бы как раз хватило бы.


да там небольшой протокол, в который пре включении периферии надо залезть.

Последний раз редактировалось Gera82; 06.03.2019 в 10:26.
Gera82 вне форума   Ответить с цитированием
Старый 06.03.2019, 11:34   #9
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Подробности создания проектов на два ядра я не готов озвучить. Сам пока на начальном этапе. Я лишь более-менее ознакомился с архитектурой и фичами. Поскольку по результату код для обоих ядер должен оказаться в одном флеше, проекты как то зависят друг от друга. Но сам исполняемый код не зависит. И отладка раздельная (даже слейвные пины ICSP имеются, при этом данные и клоки мастера и слейва топологически на одних и тех же пинах, а ресеты на разных).
Марк вне форума   Ответить с цитированием
Старый 06.03.2019, 22:08   #10
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

А dspic33ck, это получается те же самые, только с одним ядром и на 100МИПС.

я думаю с этой серии CK и надо начать, надо тестовые чипы заказать, ну и один dspic33ch "побаловаться"







Operating Temperature -40 to 150°C -> это же опечатка, я искал не мог найти

Последний раз редактировалось Gera82; 06.03.2019 в 22:17.
Gera82 вне форума   Ответить с цитированием
Старый 24.03.2019, 23:02   #11
LKIJ/ЛДКО
Member
 
Аватар для LKIJ/ЛДКО
 
Регистрация: 28.10.2014
Адрес: Lithuania / Литва, Vilnius / Вильнюс
Возраст: 33
Сообщений: 70
Вес репутации: 100/18
LKIJ/ЛДКО will become famous soon enoughLKIJ/ЛДКО will become famous soon enough
По умолчанию Re: dsPIC33CH

Привет. Друг кинул техзадачу посчитать, PIC32 либо dsPIC33CH, а я смотрю при создании проекта в MPLAB X нету ASM компилятора. Возможно как то программировать их на ассемблере?
__________________
Кто, если не мы, когда, если не сейчас?
LKIJ/ЛДКО вне форума   Ответить с цитированием
Старый 24.03.2019, 23:07   #12
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,083
Вес репутации: 3977/85
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: dsPIC33CH

LKIJ/ЛДКО
Возможно как то программировать их на ассемблере? - просто создайте в проекте файл с расширением .S и toolchain самостоятельно вызовет ассемблер.

Если у Вас нет опыта работы с gcc ассемблером, то может потребоваться определенное время для освоения gnu asm.
besogon вне форума   Ответить с цитированием
Старый 25.03.2019, 08:08   #13
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Сама среда не определит по расширению исходника с чем работать. Нужно при создании проекта выбрать Си компилятор. АСМ в его составе и будет кушать S файл исходника.
Автор видимо ожидал наличия АСМа без Си компилятора.
Марк вне форума   Ответить с цитированием
Старый 25.03.2019, 08:13   #14
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,083
Вес репутации: 3977/85
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Марк
там коллекция утилит.
besogon вне форума   Ответить с цитированием
Старый 26.03.2019, 13:39   #15
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

пришили пару dspic33ck только "Extended" до 125 °C.

Попытался запустить на 100 Мипс с FRC, 50Мипс работатет 70Мипс тоже, а вот 100Мипс не пашет и виснет.


Программа у настройки простейшие:
Код:
//#pragma config BWRP = ON
//#pragma config BSS = DISABLED  //HIGH High Security
//#pragma config BSEN = OFF      //No Boot Segment 
//#pragma config GWRP = OFF       //General Segment may be written 
//#pragma config GSS = DISABLED  //HIGH
//#pragma config CWRP = OFF      //ON
//#pragma config CSS = DISABLED  //HIGH 
//#pragma config AIVTDIS = OFF   //Alternate Interrupt Vector Table bit
#pragma config FNOSC = FRCPLL     //
#pragma config IESO = OFF       //Start up device with FRC, then switch to user-selected oscillator source
//#pragma config POSCMD = NONE   //Primary Oscillator disabled 
//#pragma config OSCIOFNC = ON   //OSC2 is general purpose digital I/O pin
//#pragma config FCKSM = CSECMD  //Clock switching is enabled,Fail-safe Clock Monitor is disabled
#pragma config PLLKEN = ON     //PLL lock signal will be used to disable PLL clock output if lock is lost  
//#pragma config XTBST = ENABLE  //Boost the kick-start
//#pragma config RWDTPS = PS8192 //Run Mode Watchdog Timer Post Scaler select bits
//#pragma config RCLKSEL = FCY   //Use peripheral clk when system clock is not INTOSC/LPRC and device is not in Sleep;otherwise, use INTOSC/LPRC 
//#pragma config WINDIS = OFF    //Watchdog Timer operates in Window mode
//#pragma config SWDTPS = PS8192 //Sleep Mode Watchdog Timer Post Scaler select bits
//#pragma config FWDTEN = ON_SW  //WDT controlled via SW, use WDTCON.ON bit
//#pragma config BISTDIS = DISABLED //Memory BIST Feature Disable
#pragma config ICS = PGD1      //Communicate on PGC1 and PGD1 
//#pragma config JTAGEN = OFF    //JTAG is disabled
#pragma config DMTDIS = OFF    //Dead Man Timer is Disabled and can be enabled by software 





/********************************************************************************
 *                                                                              *
 *  Funktion:      OSCswitching                                                 *
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: code example for 50 MIPS system clock using 8MHz FRC
 ********************************************************************************/
void OSCswitching_FRC_50MIPs(void)
{
  
// Configure PLL prescaler, both PLL postscalers, and PLL feedback divider
CLKDIVbits.DOZEN = 0;  //0 = Processor clock and peripheral clock ratio is forced to 1:1
CLKDIVbits.PLLPRE = 1; // N1=1
PLLFBDbits.PLLFBDIV = 50; // M = 50
PLLDIVbits.POST1DIV = 2; // N2=1
PLLDIVbits.POST2DIV = 1; // N3=1
// Initiate Clock Switch to FRC with PLL (NOSC=0b001)
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(OSCCON | 0x01);
// Wait for Clock switch to occur
while (OSCCONbits.OSWEN!= 0);

// Wait for PLL to lock
while (OSCCONbits.LOCK!= 1);

Nop();

}


/********************************************************************************
 *                                                                              *
 *  Funktion:      OSCswitching                                                 *
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: code example for 100 MIPS system clock using 8MHz FRC
 ********************************************************************************/
void OSCswitching_FRC_100MIPs(void)
{
  
// Configure PLL prescaler, both PLL postscalers, and PLL feedback divider
CLKDIVbits.DOZEN = 0;  //0 = Processor clock and peripheral clock ratio is forced to 1:1
CLKDIVbits.PLLPRE = 1; // N1=1
PLLFBDbits.PLLFBDIV = 50; // M = 50
PLLDIVbits.POST1DIV = 1; // N2=1
PLLDIVbits.POST2DIV = 1; // N3=1
// Initiate Clock Switch to FRC with PLL (NOSC=0b001)
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(OSCCON | 0x01);
// Wait for Clock switch to occur
while (OSCCONbits.OSWEN!= 0);

// Wait for PLL to lock
while (OSCCONbits.LOCK!= 1);

Nop();

}
опять меня микрочип кинул где мои 100 мипс


Цитата:
100 MIPS (N1 = 1, N2 = 1,
N3 = 1, M = 50, FVCO = 400 MHz,
FPLLO = 400 MHz)
Gera82 вне форума   Ответить с цитированием
Старый 26.03.2019, 14:13   #16
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Fvco=400MHz - это самая граница допустимых значений. Может стоит приподнять эту частоту и отойти от границы? Рост тактовой частоты может усложнять режим питания PLL и то, что прокатило на 50 МИПСах, может не работать на 100.
Ну и неплохо бы определить в каком месте происходит зависание и в чем оно проявляет себя.
ЗЫ. Зачем Вы стартуете с включенным PLL? Выключите его в конфиге.

Последний раз редактировалось Марк; 26.03.2019 в 14:20.
Марк вне форума   Ответить с цитированием
Старый 26.03.2019, 14:24   #17
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от Марк Посмотреть сообщение
Fvco=400MHz - это самая граница допустимых значений. Может стоит приподнять эту частоту и отойти от границы?
Ну и неплохо бы определить в каком месте происходит зависание и в чем оно проявляет себя.

Да пытался на 800, толку нет, также виснет, в Nop() не попадаю:
Код:
void OSCswitching_FRC_100MIPs(void)
{
  
CLKDIVbits.FRCDIV = 0b000;   //000 = FRC divided by 1 (default)            
// Configure PLL prescaler, both PLL postscalers, and PLL feedback divider
CLKDIVbits.DOZEN = 0;  //0 = Processor clock and peripheral clock ratio is forced to 1:1
CLKDIVbits.PLLPRE = 1; // N1=1
PLLFBDbits.PLLFBDIV = 100; // M = 50
PLLDIVbits.POST1DIV = 4; // N2=1
PLLDIVbits.POST2DIV = 1; // N3=1
// Initiate Clock Switch to FRC with PLL (NOSC=0b001)
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(OSCCON | 0x01);
// Wait for Clock switch to occur
while (OSCCONbits.OSWEN!= 0);

// Wait for PLL to lock
while (OSCCONbits.LOCK!= 1);

Nop();

}
Цитата:
Сообщение от Марк Посмотреть сообщение
ЗЫ. Зачем Вы стартуете с включенным PLL? Выключите его в конфиге.
Код:
#pragma config FNOSC = FRC     //
да потому-то тогда вообще ничего не работает, не 50 и не 70 Мипс
только вот так запускаеться
Код:
#pragma config FNOSC = FRCPLL
Gera82 вне форума   Ответить с цитированием
Старый 26.03.2019, 14:27   #18
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

void OSCswitching_FRC_100MIPs(void)
{

CLKDIVbits.FRCDIV = 0b000; //000 = FRC divided by 1 (default)
// Configure PLL prescaler, both PLL postscalers, and PLL feedback divider
CLKDIVbits.DOZEN = 0; //0 = Processor clock and peripheral clock ratio is forced to 1:1
CLKDIVbits.PLLPRE = 1; // N1=1
PLLFBDbits.PLLFBDIV = 100; //
PLLDIVbits.POST1DIV = 5; //
PLLDIVbits.POST1DIV = 4; //

PLLDIVbits.POST2DIV = 1; //
// Initiate Clock Switch to FRC with PLL (NOSC=0b001)
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(OSCCON | 0x01);
// Wait for Clock switch to occur
while (OSCCONbits.OSWEN!= 0);

// Wait for PLL to lock
while (OSCCONbits.LOCK!= 1);

Nop();

}
зеленая настойка работает без проблем, красная нет
Gera82 вне форума   Ответить с цитированием
Старый 26.03.2019, 16:24   #19
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

стабильно работает только до 90МИПс:
Код:
#pragma config FNOSC = FRC     //
#pragma config IESO = ON       //Start up device with FRC, then switch to user-selected oscillator source
#pragma config POSCMD = NONE   //Primary Oscillator disabled 
//#pragma config OSCIOFNC = OFF   //OSC2 is general purpose digital I/O pin
#pragma config FCKSM = CSECME  //Clock switching is enabled,Fail-safe Clock Monitor is disabled
#pragma config PLLKEN = ON     //PLL lock signal will be used to disable PLL clock output if lock is lost  
//#pragma config XTBST = ENABLE  //Boost the kick-start
//#pragma config RWDTPS = PS8192 //Run Mode Watchdog Timer Post Scaler select bits
//#pragma config RCLKSEL = FCY   //Use peripheral clk when system clock is not INTOSC/LPRC and device is not in Sleep;otherwise, use INTOSC/LPRC 
//#pragma config WINDIS = OFF    //Watchdog Timer operates in Window mode
//#pragma config SWDTPS = PS8192 //Sleep Mode Watchdog Timer Post Scaler select bits
//#pragma config FWDTEN = ON_SW  //WDT controlled via SW, use WDTCON.ON bit
//#pragma config BISTDIS = DISABLED //Memory BIST Feature Disable
#pragma config ICS = PGD1      //Communicate on PGC1 and PGD1 
//#pragma config JTAGEN = OFF    //JTAG is disabled
#pragma config DMTDIS = OFF    //Dead Man Timer is Disabled and can be enabled by software 



void OSCswitching_FRC_100MIPs(void)
{
  
CLKDIVbits.FRCDIV = 0b000;   //000 = FRC divided by 1 (default)            
// Configure PLL prescaler, both PLL postscalers, and PLL feedback divider

CLKDIVbits.PLLPRE = 1; // 
PLLFBDbits.PLLFBDIV = 180; //
PLLDIVbits.POST1DIV = 4; // 
PLLDIVbits.POST2DIV = 1; // 

CLKDIVbits.DOZEN = 0;  //0 = Processor clock and peripheral clock ratio is forced to 1:1r

// Initiate Clock Switch to FRC with PLL (NOSC=0b001)
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(OSCCON | 0x01);

// Wait for Clock switch to occur
while (OSCCONbits.OSWEN!= 0);
// Wait for PLL to lock
while (OSCCONbits.LOCK!= 1);

Nop();

 }
бывает и что на 100МИПс (PLLFBDbits.PLLFBDIV = 200; ) работает, но 2-3 секунды или вообще не запускается, с накружним кварцем я вообще не пробовал, только FRC.

Последний раз редактировалось Gera82; 26.03.2019 в 16:36.
Gera82 вне форума   Ответить с цитированием
Старый 26.03.2019, 16:27   #20
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: dsPIC33CH

Тогда уже проверьте верхнюю рабочую частоту: 112 на множитель (900) и 5 на делитель: 90 мипс
Марк вне форума   Ответить с цитированием
Старый 26.03.2019, 16:34   #21
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от Марк Посмотреть сообщение
Тогда уже проверьте верхнюю рабочую частоту: 112 на множитель (900) и 5 на делитель: 90 мипс
44,8 мипс (там FPLLO всегда делиться на 2 или нет??
Gera82 вне форума   Ответить с цитированием
Старый 26.03.2019, 16:43   #22
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от Gera82 Посмотреть сообщение
хочу перенести пару старых проектов с dsPIC33ep и dsPIC33ev на эту новую серию dsPIC33CH. мне как раз тогда не хватало скорости, 140МГц было маловато, а здесь аж 200МГц, да еще и 2 ядра


1. Master 180МГц
2. Slave 200МГц

Может dspic33ck тоже ядро на 180МГц, тогда все совпадает , короче на 90МИПс работает стабильно
Gera82 вне форума   Ответить с цитированием
Старый 01.04.2019, 19:15   #23
anatoly22
Junior Member
 
Регистрация: 23.11.2015
Возраст: 50
Сообщений: 4
Вес репутации: 100/0
anatoly22 will become famous soon enoughanatoly22 will become famous soon enough
По умолчанию Re: dsPIC33CH

https://www.microchip.com/forums/m1069904.aspx
anatoly22 вне форума   Ответить с цитированием
Старый 01.04.2019, 19:19   #24
anatoly22
Junior Member
 
Регистрация: 23.11.2015
Возраст: 50
Сообщений: 4
Вес репутации: 100/0
anatoly22 will become famous soon enoughanatoly22 will become famous soon enough
По умолчанию Re: dsPIC33CH

Мне особенно понравился комментарий :

"The dsPIC33CK MCU and peripherals are fantastic. Using my benchmark code, even running at 90MHz (180MHz Fosc), it runs away from a Cortex-M4 running at 180MHz (executes the code 50% faster than the M4, not even counting interrupt latency). Plus, the PWM is much more configurable and it has a much broader temperature range. I just wish the ones I tested would actually run properly at 100MHz, since that is how it is being advertised. This makes me pause when considering it in my designs."
anatoly22 вне форума   Ответить с цитированием
Старый 05.04.2019, 15:19   #25
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 37
Сообщений: 553
Вес репутации: 349/44
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: dsPIC33CH

Цитата:
Сообщение от anatoly22 Посмотреть сообщение

Вот я же говорил, что не один я , "Мелкочип" кинул многих. я решение Проблемы не увидел
я на 90Мипс скинул скорость и у меня все работает.


как не странно что у некоторых работает на 100мипс, у меня тоже работает ну только 2-5 секунд
Gera82 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 13:12.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot