|
LPC2366, при записи в CCLKCFG все ломается. |
|
|
|
Apr 15 2008, 10:49
|

Местный
  
Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484

|
Никак не пойму, что я делаю не так: при записи 199 (и при записи 1 тоже) в CCLKCFG все ломается. Кварц у меня 3.686МГц. На МК написано следующее: Код LPC2366FBD100 SH3959.1 01 ZSD0743BY Код void init_system_controls_and_status_register(void) { PCONP = 0;
// 6.14 PLL setup sequence PLLCON_bit.PLLC = 0; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; PLLCON_bit.PLLE = 0; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2;
SCS = BIT_(hw::SCS_GPIOM) | BIT_(hw::SCS_OSCEN); while (!SCS_bit.OSCSTAT) {} CLKSRCSEL = hw::CS_MAIN_OSCILLATOR; PLLCFG_bit.MSEL = PLL_REGISTER_M - 1; PLLCFG_bit.NSEL = PLL_REGISTER_N - 1; PLLCON_bit.PLLE = 1; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; while (!PLLSTAT_bit.PLOCK) {} CCLKCFG = 0; CCLKCFG = 199; // до этой строчки стабильно доходит, а через нее - нет
PLLCON_bit.PLLC = 1; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; }
|
|
|
|
|
 |
Ответов
|
Apr 15 2008, 10:57
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(meister @ Apr 15 2008, 13:49)  Никак не пойму, что я делаю не так: при записи 199 (и при записи 1 тоже) в CCLKCFG все ломается. Кварц у меня 3.686МГц. На МК написано следующее: Код LPC2366FBD100 SH3959.1 01 ZSD0743BY Код void init_system_controls_and_status_register(void) { .............. PLLCFG_bit.MSEL = PLL_REGISTER_M - 1; PLLCFG_bit.NSEL = PLL_REGISTER_N - 1; PLLCON_bit.PLLE = 1; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; .............. } Почемуто в в мануале написано (а кто его читает?) что это нужно делать одной командой а не тремя.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Apr 15 2008, 10:59
|

Местный
  
Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484

|
Цитата(amw @ Apr 15 2008, 14:57)  Почемуто в в мануале написано (а кто его читает?) что это нужно делать одной командой а не тремя. Я читаю мануал. It's very important not to merge any steps above. For example, don't update the PLLCFG and enable the PLL simultaneously with the same feed sequence.
|
|
|
|
|
Apr 15 2008, 11:17
|

читатель даташитов
   
Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999

|
Цитата(meister @ Apr 15 2008, 13:59)  Я читаю мануал. Читайте еще  Вот так - работает: Цитата PLLCFG = PLL_MValue | (PLL_NValue << 16); PLLFEED = 0xaa; PLLFEED = 0x55; PLLCON = 1; /* Enable PLL, disconnected */ PLLFEED = 0xaa; PLLFEED = 0x55;
|
|
|
|
|
Apr 15 2008, 11:23
|

Местный
  
Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484

|
Цитата(HARMHARM @ Apr 15 2008, 15:17)  Читайте еще Вот так - работает: Запускается у меня PLL, раз он проходит цикл Код while (!PLLSTAT_bit.PLOCK) {} у меня делитель частоты CCLK не ставится. Код void init_system_controls_and_status_register(void) { PCONP = 0;
PLLCON_bit.PLLC = 0; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; PLLCON_bit.PLLE = 0; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2;
SCS = BIT_(hw::SCS_GPIOM) | BIT_(hw::SCS_OSCEN); while (!SCS_bit.OSCSTAT) {} // æäàòü ïîêà çàïóñêàåòñÿ CLKSRCSEL = hw::CS_MAIN_OSCILLATOR; // âûáðàòü â êà÷åñòâå èñòî÷íèêà ÷àñòîòû êâàðö PLLCFG_bit.MSEL = PLL_REGISTER_M - 1; PLLCFG_bit.NSEL = PLL_REGISTER_N - 1; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2;
PLLCON_bit.PLLE = 1; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; while (!PLLSTAT_bit.PLOCK) {}
// вот тут PLL работает (раз управление сюда доходит). // осталось подключить его через адекватный делитель к процессору. CCLKCFG = 0; // без делителя работает CCLKCFG = 199; // делитель 200 все ломает
PLLCON_bit.PLLC = 1; PLLFEED = hw::PLLFEED_DATA1; PLLFEED = hw::PLLFEED_DATA2; }
|
|
|
|
Сообщений в этой теме
meister LPC2366, при записи в CCLKCFG все ломается. Apr 15 2008, 10:49 amw Вот так у меня работает. Правда кварц другой.
Кодv... Apr 15 2008, 11:46 Axel Может этот вариант поможет (в свое время родился п... Apr 15 2008, 14:15 meister Цитата(Axel @ Apr 15 2008, 18:15) И, на в... Apr 15 2008, 14:44  HARMHARM Цитата(meister @ Apr 15 2008, 17:44) Как ... Apr 15 2008, 15:09  lebiga Цитата(meister @ Apr 15 2008, 18:44) Это ... May 28 2008, 10:36   meister Цитата(lebiga @ May 28 2008, 14:36) Вопро... May 28 2008, 12:52    lebiga Цитата(meister @ May 28 2008, 16:52) 500 ... May 28 2008, 15:14     meister Цитата(lebiga @ May 28 2008, 19:14) А в e... May 28 2008, 16:16      lebiga Цитата(meister @ May 28 2008, 20:16) Это ... May 28 2008, 17:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|