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

 
 
> LPC2378 и PLL, Не едается разогнать PLL на 288MHz
Abo
сообщение Apr 11 2007, 14:59
Сообщение #1


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

Группа: Свой
Сообщений: 101
Регистрация: 9-01-06
Пользователь №: 12 967



Второй день бьюсь с настройкой PLL для сабж.
Запрограммировал тестовый пример, который выводит на ногу поделенную на 4 таймером 0 частоту ядра.
Код
void lpc23xx_pin63_to_forth_cclk ( void  )
{
    PINSEL3 |= 3 << 24;     // Port P1.28 Pin 64 as MAT0.0
    PCLKSEL0 &= ~PCLKSEL0_PCLK_TIMER0_MASK;
    PCLKSEL0 |= 1 << PCLKSEL0_PCLK_TIMER0_BIT;
    PCONP   |= PCONP_PCTIM0;
    T0TCR   = 2;              // Остановим и сбросим таймер
    T0CTCR  = 0;              // Работа в режиме таймера
    T0PR    = 0;              // Нет предделителя
    T0MR0   = 1;
    T0MCR   = 2;              // Сброс по совпадению
    T0EMR   = 3 << 4;         // Инвертировать выход блока по совпадению
    T0TCR   = 0;              // Остановим Таймер
    T0TC    = 0;
    T0TCR   = 1;              // Пустим таймер
}

Кварц на 12МГц. Выход таймера наблюдаю на осциллографе с частотомером.
Испытывал различные значения N и M при CCLKCFG = 5 с целью добиться максимальной тактовой частоты.
При этом получилось, что при значениях N=1 и M = 15, вижу на выходе таймера 9600кГц, что соответствует 38,4 МГц тактовой ядра и 192 МГц частоте CCO. Частота стоит мертво - значения на частотомере не прыгают.
Если увеличить М до 16, что должно соответствовать Fcco = 204МГц, Fcclk = 40,8МГц и выход таймера 10.2 МГц, то наблюдаю на осциллографе дрожание импульсов и частота их прыгает в районе 9,98МГц.
Если же применить те установки PLL которые в примере от Кейловской борды N=0, M=11, Fcco=288, FCclk = 57,6 то на выходе таймера вообще белиберда - импульсы далеко не меандр а с переменной скважностью, и частота прыгает около 3,41 МГц.

То ли я не правильно считаю, то ли мне попался дохлый кристалл, то ли ошибка в еррате и Fcco не может быть больше 200МГц.
Кто нибудь сможет поставить подобный эксперимент на MCB2300 и развеять мои сомнения,
или поделиться своим кодом инициализации PLL чтобы я попробовал у себя.
Кстати на моем чипе написано S60771.2W09 ZSG0637-Y
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Abo
сообщение Apr 11 2007, 16:21
Сообщение #2


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

Группа: Свой
Сообщений: 101
Регистрация: 9-01-06
Пользователь №: 12 967



И в догонку еще одно наблюдение:
Есть следующая программа:
Код
int main(void)
{
  MAMCR = 0;
  MAMTIM = 6;
  MAMCR = 2;

  lpc23xx_pin63_to_forth_cclk(); // Выход таймера 0 - 1/4 Fcclk подает на 63 ногу

  // Будем дергать ногой P3.24 (40 pin)
  SCS |= SCS_GPIO0M;
  FIO3DIR |= 1 << 24;
  int i = 200000;
  lpc23xx_switch_to_pll(  otQUARTZ,       // (12 / 2) * 14 * 2 = 168 / 3 = 56
                                    12000000,       // Fosc
                                    13,             // Mvalue
                                     1,              // Nvalue
                                     2,              // CCLKCFG
                                     0               // USB_CLK_CFG
                                 );
  while(1){
    FIO3SET = 1<<24;
    FIO3CLR = 1<<24;
  }
}

Смотрю за выходом таймера0 на 63 ноге и дискретным сигналом P3.24 на 40 ноге.
Если установить MAMTIM = 6 то наблюдается на 60 ноге 14МГц, на 40 - 3.294МГц. Обе частоты стоят мертво.
Если во 2 строке MAMTIM сделать равным 5 то на 60 ноге частота дергается около 13.85МГц на 40 - около 7.23МГц. Начинаются редкие выпадения прораммы в undef_handler.
Если же в MAMTIM записать 4, что тоже не противоречит дадашиту (написано что если Fcclk > 40MHz надо писать 3) то на 60 ноге частота дергается около 13.77 и на 40 - около 7.51. Начинаются частые выпадения программы в undef_handler и pabort_handler.

Что же это получается - при значениях MAMTIM меньших 6 сигнал Fcclk ( тактовая ядра ) а вместе с ним и таймер (и наверное вся остальная периферия) начинает иногда пропускать такты. Вот это синхронная система получается! Значит с помощью таймера стабильную частоту кварцевого резонатора нацело не поделишь?
Но ведь этого не должно быть! Я наверное неправильно интерпретирую результаты эксперимента. Гуру - укажите мне где я ошибаюсь (или не я?).
Go to the top of the page
 
+Quote Post



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

 


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


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