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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> LPC210x - Настоящий ли там PLL?
Rst7
сообщение Jul 16 2009, 07:25
Сообщение #1


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Возник вопрос в связи с тем, что надо сделать устройство с ногодрыгом, синхронным с внешней тактовой. В LPC210x для тактирования ядра есть PLL. Однако, в даташите (и мануале) совсем не видать параметров сего модуля. Интересует, настоящий ли там PLL или какой FLL - т.е. удерживается ли тактовая частота проца с точностью до фазы?

Может быть кто из форумчан проверял этот момент? Или, может быть, имеет возможность уделить пол-часа времени для проверки? Или вообще, знает NXP'шный документ, освещающий этот вопрос?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 16 2009, 08:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А здесь AN10331 - Philips LPC2xxx family phase lock loop ничего полезного нет?
Насколько я понимаю, при наличии аналогового CCO (Current Controlled Oscillator) устройство PLL близко к классическому ФАПЧ: с фазовым детектором и набором счетчиков-делителей с программируемым коэффициентом деления.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 16 2009, 08:32
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А здесь ничего полезного нет?


Именно по моему вопросу - нет.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jul 16 2009, 08:37
Сообщение #4


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Rst7 @ Jul 16 2009, 12:32) *
Именно по моему вопросу - нет.



а здесь ?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 16 2009, 08:49
Сообщение #5


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
а здесь ?


Ну о том, что в SAM7 именно PLL, можно догадаться по виду наружного фильтра smile.gif

К сожалению, SAM7 не подходит, надо уметь за 2 такта дрыгнуть ножкой.

Цитата
Насколько я понимаю, при наличии аналогового CCO (Current Controlled Oscillator) устройство PLL близко к классическому ФАПЧ


Я, конечно, на это надеюсь. И это нетрудно проверить в живую. Но так исторически сложилось, что под рукой нет ни одного девайса на LPC sad.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
smac
сообщение Jul 16 2009, 09:06
Сообщение #6


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

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(Rst7 @ Jul 16 2009, 12:49) *
Я, конечно, на это надеюсь. И это нетрудно проверить в живую. Но так исторически сложилось, что под рукой нет ни одного девайса на LPC sad.gif


Могу попробовать помочь, у меня есть отладочная плата SK-LPC-S3E на LPC2378, правда я с АРМами только начал разбираться, если Вы методику обрисуете и код пришлете (если исходник то желательно чтобы WinARMом откомпилировался или IAR тем который бесплатный до 32 кБайт кода). По времени - вечером после 18.00 могу приступить.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 16 2009, 09:12
Сообщение #7


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Могу попробовать помочь


О, спасибо. Какая у Вас версия IAR'а? Я тогда под нее проект состряпаю. И если можно, бросьте в личку какой-либо свой контакт типа аси (мой можете посмотреть у меня в профиле).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 16 2009, 09:45
Сообщение #8


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



а нафег выкинуть фапч и поключить выход кварцевого генератора к процессору?
получите тактовую 8...12 мгц и фазу колебаний кварца. тока я сомневаюсь что ноги за 2 такта дрыгатся будут. как я мерял на lpc2103 4 такта на переключение пина при записи через быструю шину и FastIO
Go to the top of the page
 
+Quote Post
etoja
сообщение Jul 16 2009, 09:52
Сообщение #9


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

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



У меня есть своя плата на процессоре LPC2138, тактируемом от внешнего генератора Epson с частотой 20.48МГц.
В прерывании от таймера программно включается и выключается светодиод.
Двухлучевой осциллограф Tektronix показывает, что переключения светодиода происходят строго синхронно с входной тактовой частотой, и
картинка на экране "стоит" (развёртку синхронизировал как по сигналу включения светодиода, так и по сигналу выключения светодиода).
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 16 2009, 09:54
Сообщение #10


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



значит обычная фапч внутри с фазовым детектором, а не петля с частотным дискриминатором.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2009, 10:03
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Jul 16 2009, 12:12) *
Я тогда под нее проект состряпаю....

Ну железа всякого и у меня много. Измерители того-же джитера имеются (правда под телекомуникации - 2048-8448-25776-34368 килобит)... Если на LPC21xx Могу, например, на олимексовcкой P2148 (без FAST GPIO) кварц -любой, попробовать.
Компилятор - любой IAR.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 16 2009, 10:21
Сообщение #12


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(klen @ Jul 16 2009, 12:45) *
а нафег выкинуть фапч и поключить выход кварцевого генератора к процессору?
получите тактовую 8...12 мгц и фазу колебаний кварца.


Мне не годится. Мне надо умножить входную тактовую на 2.

Цитата
тока я сомневаюсь что ноги за 2 такта дрыгатся будут. как я мерял на lpc2103 4 такта на переключение пина при записи через быструю шину и FastIO


Что-то не то меряли. Через FastGPIO состояние ноги изменяется за 2 такта (столько же выполняется STR).

Цитата(etoja @ Jul 16 2009, 12:52) *
Двухлучевой осциллограф Tektronix показывает, что переключения светодиода происходят строго синхронно с входной тактовой частотой, и
картинка на экране "стоит"


Полезная инфа, спасибо. Действительно, это поведение честного PLL. Только еще случайное начальное значение сдвига фазы в пределах 2pi/коэффициент_умножения должно наблюдаться.

Цитата(zltigo @ Jul 16 2009, 13:03) *
Ну железа всякого и у меня много. Измерители того-же джитера имеются (правда под телекомуникации - 2048-8448-25776-34368 килобит)... Если на LPC21xx Могу, например, на олимексовcкой P2148 (без FAST GPIO) кварц -любой, попробовать.


Это спасибо, но измерители - то круто, тут просто двухлучевым осциллографом проще (меня мало интересуют количественные характеристики, на глаз определить "синхронно/несинхронно" - будет достаточно.), а вот без FastGPIO - я хз как там устроен этот мост между шинами.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2009, 10:28
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Jul 16 2009, 13:21) *
Это спасибо, но измерители - то круто, тут просто двухлучевым осциллографом проще (меня мало интересуют количественные характеристики, на глаз определить "синхронно/несинхронно" - будет достаточно.)

На глаз не корректно, если только не описать условия синхронихации и ждать-ждать-ждать....
Цитата
, а вот без FastGPIO - я хз как там устроен этот мост между шинами.

С Fast у меня тоже есть, но это уже не универсальное железо, или LPC23/24xx


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 16 2009, 10:43
Сообщение #14


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
На глаз не корректно, если только не описать условия синхронихации и ждать-ждать-ждать....


Дык глаз-диаграммы сигнала с шевелящегося пина (развертка засинхронизирована с частотой кварца) с накоплением в десяток миллисекунд будет вполне достаточно.

CODE

#include <NXP/iolpc2378.h>
#include <intrinsics.h>

__ramfunc void ToggleIO(void)
{
FIO2DIR = 1<<3; //pin P2.3 configured as output
for(;;)
{
FIO2SET = 1<<3;
FIO2CLR = 1<<3;
FIO2SET = 1<<3;
FIO2CLR = 1<<3;
FIO2SET = 1<<3;
FIO2CLR = 1<<3;
__no_operation();
}
}

void StartPLL(void)
{
// 1. Init OSC
SCS_bit.OSCRANGE = 0;
SCS_bit.OSCEN = 1;
// 2. Wait for OSC ready
while(!SCS_bit.OSCSTAT);
// 3. Disconnect PLL
PLLCON_bit.PLLC = 0;
PLLFEED = 0xAA;
PLLFEED = 0x55;
// 4. Disable PLL
PLLCON_bit.PLLE = 0;
PLLFEED = 0xAA;
PLLFEED = 0x55;
// 5. Select source clock for PLL
CLKSRCSEL_bit.CLKSRC = 1; // Selects the main oscillator as a PLL clock source.
// 6. Set PLL settings 288 MHz (from 12MHz), Fpll=(2*12(M)*12MHz/1(N))
PLLCFG_bit.MSEL = 12-1;
PLLCFG_bit.NSEL = 1-1;
PLLFEED = 0xAA;
PLLFEED = 0x55;
// 7. Enable PLL
PLLCON_bit.PLLE = 1;
PLLFEED = 0xAA;
PLLFEED = 0x55;
// 8. Wait for the PLL to achieve lock
while(!PLLSTAT_bit.PLOCK);
// 9. Set clk divider settings
CCLKCFG = 6-1; // 1/6 Fpll
USBCLKCFG = 6-1; // 1/6 Fpll - 48 MHz
PCLKSEL0 = PCLKSEL1 = 0; // other peripherals
PCLKSEL1_bit.PCLK_GPIO = 1; //GPIO prescaller 1:1
// 10. Connect the PLL
PLLCON_bit.PLLC = 1;
PLLFEED = 0xAA;
PLLFEED = 0x55;
}

void GPIOinit(void)
{
// Set to inputs
IO0DIR = \
IO1DIR = \
FIO0DIR = \
FIO1DIR = \
FIO2DIR = \
FIO3DIR = \
FIO4DIR = 0;

// Enable Fast GPIO0,1
SCS_bit.GPIOM = 1;

// clear mask registers
FIO0MASK =\
FIO1MASK =\
FIO2MASK =\
FIO3MASK =\
FIO4MASK = 0;

// Reset all GPIO pins to default primary function
PINSEL0 =\
PINSEL1 =\
PINSEL2 =\
PINSEL3 =\
PINSEL4 =\
PINSEL5 =\
PINSEL6 =\
PINSEL7 =\
PINSEL8 =\
PINSEL9 =\
PINSEL10= 0;
}


int main()
{
// MAM init
MAMCR_bit.MODECTRL = 0;
MAMTIM_bit.CYCLES = 3; // FCLK > 40 MHz
MAMCR_bit.MODECTRL = 2; // MAM functions fully enabled
StartPLL();
GPIOinit();
ToggleIO();
return 0;
}


Нечто типа такого. Код дергает ножкой P2.3, частота кварца 12МГц, PLL - x4, т.е. такты проца 48МГц, значит сигнал на ножке будет как раз с частотой кварца (каждое состояние - 2 такта, итого период 4 такта). Собирается в иаре 5.20 в ARM-режиме с макс. оптимизацией по скорости - то что надо.

Положу сразу весь проект до кучи (таргет - Debug).Прикрепленный файл  TestPLL.zip ( 3.89 килобайт ) Кол-во скачиваний: 131


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2009, 10:50
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Jul 16 2009, 13:43) *
Нечто типа такого....

Ну тогда, если никто не сделает, то поближе к субботе - сейчас просто подходящей железки с Fast нет под руками. Только вот чего проверить-то хотите? Умножитель там будет умножать тупо и безвариантно, а деление, даже если и сделан "цифровой" c подсбросом, то это не проверяете, ибо не делите. Да, допустим, будет иметь джиттер полтакта от частоты после умножителя (сотни мегагерц)- это критично?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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