реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Зависает LPC1756 при переключении такирования на RTC, Что с этим делать?
BSVi
сообщение Mar 5 2010, 07:56
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 18-12-07
Из: Киев
Пользователь №: 33 391



Пытаюсь запустить 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кГц генератор исправен.


--------------------
http://bsvi.ru/ - блог эмбеддера
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 5 2010, 09:58
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Частота становится слишком низкой, ниже чем частота клоков JTAG, надо или снизить частоту JTAG, или обойти это место поставив брекпоинт за новой инициализацией PLL
Go to the top of the page
 
+Quote Post
BSVi
сообщение Mar 5 2010, 15:02
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 18-12-07
Из: Киев
Пользователь №: 33 391



Спасибо, именно так и было.


--------------------
http://bsvi.ru/ - блог эмбеддера
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 22:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01342 секунд с 7
ELECTRONIX ©2004-2016