Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Зависает LPC1756 при переключении такирования на RTC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
BSVi
Пытаюсь запустить PLL LPC1756 от RTC (32кГц). Задача - получить 30мГц на CCLK. Код запуска приведен ниже.
На строчке CLKSRCSEL_bit.CLKSRC = 2; зависает все, в том числе и отваливается отладчик. Эта строчка переключает ядро на тактирование от часового кварца.

Все делаю по инструкции из User Manual'а. На Кварце - чистый синус размахом 169мВ.


Код
   _DINT(); // disable interrupts

   // 1. Disconnect PLL0 with one feed sequence if PLL0 is already connected.
   PLL0CON_bit.PLLC = 0;
   PLL0FEED = 0xAA;
   PLL0FEED = 0x55;

   // 2. Disable PLL0 with one feed sequence.
   PLL0CON_bit.PLLE = 0;
   PLL0FEED = 0xAA;
   PLL0FEED = 0x55;

   // 3. Change the CPU Clock Divider setting to speed up operation without PLL0, if desired.
   CCLKCFG_bit.CCLKSEL = 3;

   // 4. Write to the Clock Source Selection Control register to change the clock source if
   //    needed.
   CLKSRCSEL_bit.CLKSRC = 2; // RTC is PLL clock source.

   // 5. Write to the PLL0CFG and make it effective with one feed sequence. The PLL0CFG
   //    can only be updated when PLL0 is disabled.
   PLL0CFG_bit.MSEL = 13733 - 1;  // 30.0002 MHz
   PLL0CFG_bit.NSEL = 3 - 1;
   PLL0FEED = 0xAA;
   PLL0FEED = 0x55;

   // 6. Enable PLL0 with one feed sequence.
   PLL0CON_bit.PLLE = 1;
   PLL0FEED = 0xAA;
   PLL0FEED = 0x55;

   // 7. Change the CPU Clock Divider setting for the operation with PLL0. It is critical to do
   //    this before connecting PLL0.
   CCLKCFG = 10-1;   // divide by 10
   PCLKSEL0 = PCLKSEL1 = 0;

   // 8. Wait for the PLL to achieve lock, 200 / FREF seconds when FREF is less than 400 kHz
   GlobalTimeStart();
   DelayMs( 200000UL/32768UL );

   // 9. Connect PLL0 with one feed sequence.
   PLL0CON_bit.PLLC = 1;
   PLL0FEED = 0xAA;
   PLL0FEED = 0x55;


Может кто сталкивался? В чем у меня ошибка - в железе или аппаратуре?



//------------------------------------------------------------------------------------------------------------------------------------
Новости с фронта - запустил RTC. Работает прекрасно! Стало быть, 38кГц генератор исправен.
KRS
Частота становится слишком низкой, ниже чем частота клоков JTAG, надо или снизить частоту JTAG, или обойти это место поставив брекпоинт за новой инициализацией PLL
BSVi
Спасибо, именно так и было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.