Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

PIC24F FRC OSCTUN въпрос
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=12824
Страница 1 от 1

Автор:  speedblue [ Чет Апр 03, 2014 1:53 am ]
Заглавие:  PIC24F FRC OSCTUN въпрос

Платка с процесор PIC24F... (PIC24FJ256GB106) ме мъчи, че не успявам да подкарам ръчната донастройка на бързия вътрешен FRC генератор.
Има едни почти ясни насоки, но на практика нещо не зацепват нещата.
Теоретично съм прегледал почти всички методики, 2-3-4 съм тествал.
Като особеност в случая може да се посочи, че подкарвам FRC+PLL при което регистъра OSCTUN се твърди, че няма да даде отражение. За целта трябва да се премине само на FRC, трябва да се отключи регистъра OSCCON по дадена методика за смяна типа генератор, пипва се OSCTUN.. после отново се преминава на FRC+PLL и ... не става нищо.
Утре ще пробвам процесора да тръгва първоначално от FRC, после пипане в OSCTUN без да се ползва PLL и евентуално после да мине през PLL.

Някой по някакъв начин изобщо успявал ли е да пише успешно с реална промяна на честотата в този OSCTUN на PIC24F ?!?

Автор:  TheWizard [ Чет Апр 03, 2014 7:28 am ]
Заглавие:  Re: PIC24F FRC OSCTUN въпрос

и защо ти е да го донагласяш... преди време пусках FRC+PLL точно на тази серия и го мерих с осцилоскопа - беше си "тамън"
упс тези бяха с USB - имах проблеми и сложих кварц, обаче после се оказа че няма проблем да се подкара и с FRC - ако намера сорсq ще ти пасна кода за Init

Автор:  speedblue [ Съб Апр 05, 2014 12:10 am ]
Заглавие:  Re: PIC24F FRC OSCTUN въпрос

Нещо не ставаше до преди, сега се донастройва генератора и в режим FRC+PLL.
Първоначално тръгва на по-ниска честота (FNOSC_FRCDIV) после превключвам да минава през PLL. Не е задължителна тази последователност.
Код:
#include <p24FJ256GB106.h>

_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & ICS_PGx2 & COE_OFF & FWDTEN_OFF & WINDIS_OFF & FWPSA_PR128 & WDTPS_PS32768 )
_CONFIG2( IESO_OFF & PLLDIV_DIV2 & PLL_96MHZ_ON & FNOSC_FRCDIV & FCKSM_CSECMD & OSCIOFNC_OFF & IOL1WAY_OFF & DISUVREG_ON & POSCMOD_NONE )

...
...

// Set up the core frequency
SRbits.IPL= 0b111;      // Disable ALL interrupts
CLKDIVbits.RCDIV= 0;
CLKDIVbits.CPDIV= 0;
__builtin_write_OSCCONH(0b00000001);  //
__builtin_write_OSCCONL(0b00000001);  //
// Wait for Clock switch to occur
while (OSCCONbits.COSC != 0b001);
// Wait for flag that switching is complete
while(OSCCONbits.OSWEN != 0) {};
SRbits.IPL= 0b000;      // Enable ALL interrupts
   
OSCTUN= 0b000000;       // Set manual tuning of FRC

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/