Rst7 5 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Да, допустим, будет иметь джиттер полтакта от частоты после умножителя (сотни мегагерц)- это критично? Мне надо, чтобы фронты шевеления GPIO имели постоянный фазовый сдвиг относительно входной частоты (более-менее постоянный). Относительно той частоты, которая потом умножается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Мне надо, чтобы фронты шевеления GPIO имели постоянный фазовый сдвиг относительно входной частоты (более-менее постоянный). Относительно той частоты, которая потом умножается. Если не будет деления, а множитель на 4 то не вижу никаких причин, что-бы от реализации PLL чего-либо зависило. Кстати, судя по наличию нижней границы частоты, PLL там "аналоговый", но если Вам нужен LPC210x, то тестировать LPC23 некорректно - там явно другой PLL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба что-бы от реализации PLL чего-либо зависило. Если там действительно PLL (ФАПЧ) - то все будет правильно. А вот если там словом PLL обозвано, например, АПЧ (без фазы), то (_*_). Смущает то, что PLL у Atmel'а имеет внешний фильтр. Возможно - дань традиции или "ниасилили", но... но если Вам нужен LPC210x, то тестировать LPC23 некорректно - там явно другой PLL. Думаете? Частота генератора выше, а вот реализация врядли сильно отличается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smac 0 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Дык глаз-диаграммы сигнала с шевелящегося пина (развертка засинхронизирована с частотой кварца) с накоплением в десяток миллисекунд будет вполне достаточно. К своему стыду я не знаю что такое глазковая диаграмма, т.е. как ее грамотно получить (кнопки на моем осциллоскопе с соответствующей надписью нет, в инструкции тоже не нашел). Если сможете дать хорошую ссылку то постараюсь сделать. Опять же вопрос - будет ли заменой следующее измерение: синхронизируемся от кварца, развертываем период сигнала на весь экран и делаем накопление за некоторое время (до бесконечности)? Соответственно на экране получим полосу определенной ширины формой повторяющей сигнал, и чем она уже тем меньше фазовый шум (надеюсь я правильно понимаю). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Соответственно на экране получим полосу определенной ширины формой повторяющей сигнал, и чем она уже тем меньше фазовый шум (надеюсь я правильно понимаю). Дык это и есть глаз-диаграмма, грубо говоря. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Думаете? Частота генератора выше, а вот реализация врядли сильно отличается. И минимальная опорная еще от 32KHz вместо 10MHz у LPC21xx. Cущественная разница. Вам нужен дополнительный простор для фантазий? Похоже, если пробовать, то Вам чего-то конкретно что-то LPC2106/01 требуется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба И минимальная опорная еще от 32KHz вместо 10MHz у LPC21xx. Дополнительным делителем. Ладно, попробуем на 2378 и понадеемся, что в 210x/01 тоже самое. Должен же быть фарт в жизни, тем более, что путь для отступления есть :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Дополнительным делителем. Причем тут делитель? Минимум входной частоты от 32KHz вместо 10MHz. Совсем совсем другие условия работы ФАПЧ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Причем тут делитель? Ну я так мыслю, что это точно отдельным костылем обеспечивается (и дополнительными битами в делителе M-divider на рисунке 16 в UM10211 LPC23XX User Manual). Хотя, конечно, Вы правы - нужна другая постоянная фильтра. Если он там есть, кстати... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Если он там есть, кстати... При этом у LPC23/4 есть встроенный генератор, т.е. какая никакая реактивность в потрохах реализована, а у 210x такого и близко нет... Если уж пробовать, то на реальном железе. Иначе просто кинте монетку ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Ну железа всякого и у меня много. Измерители того-же джитера имеются (правда под телекомуникации - 2048-8448-25776-34368 килобит)... Если на LPC21xx Могу, например, на олимексовcкой P2148 (без FAST GPIO) кварц -любой, попробовать. А разве LPC2148 бывает без FastGPIO ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба А разве LPC2148 бывает без FastGPIO ? Описался :( там сейчас запаян один и первых 2138 - без Fast Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smac 0 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Дык это и есть глаз-диаграмма, грубо говоря. Наверное я слишком опрометчиво предложил Вам помощь, но я постараюсь оправдать ожидания. Итак что сейчас есть. 0. Запустить Ваш пример мне не удалось, наверное было моей ошибкой написать про IAR ибо не волоку в нем нифига 1. Попробовал сделать свой пример, пока вот такой (см. вложение) на WinARM (тоже волоку в нем слабо). Там настройки GPIO, PLL и MAM сделанные практически тупым копипастом с Вашего проекта, единственное не стал заморачиваться с подсаживанием IARовских дефайнов (после нехитрых манипуляций - закомментирования конструкции{ if трам пам пам; error "этот файл только для ЯРА" endif} - подсадить не удалось) поэтому наскоро сделал свои дефайны битов 3. Пока функция дрыганья ногами не размещена в ОЗУ (просто делал чтобы посмотреть будут-ли шевеления ногами и т. п.), сейчас буду разбираться как разместиь ее где нада с помощью WinARM. Продолжение в следующем посте #include #include #include "lpc23xx.h" void StartPLL(void); void GPIOinit(void); int main(void){ // MAM init #define MODECTRL 0 //MODECTRL 1:0 #define CYCLES 0 //CYCLES 2:0 MAMCR = 0; MAMTIM = 3< 40 MHz MAMCR = 2< StartPLL(); GPIOinit(); FIO2DIR = (1<<4)|(1<<3); while(1) FIO2PIN ^= (1<<4)|(1<<3); return 0; } void StartPLL(void) { #define OSCRANGE 4 #define OSCEN 5 #define OSCSTAT 6 #define PLLC 1 #define PLLE 0 #define CLKSRC 0 #define MSEL 0 //MSEL 14:0 #define NSEL 16 //NSEL23:16 #define PLLSTAT_PLLC 25 #define PLLSTAT_PLLE 24 #define PLOCK 26 #define PCLK_GPIO 2 //PCLK_GPIO 3:2 // 1. Init OSC SCS &=~(1< SCS |=(1< // 2. Wait for OSC ready while (!(SCS&(1< // 3. Disconnect PLL PLLCON &=~(1< PLLFEED = 0xAA; PLLFEED = 0x55; // 4. Disable PLL PLLCON &=~(1< PLLFEED = 0xAA; PLLFEED = 0x55; // 5. Select source clock for PLL CLKSRCSEL = (1< // 6. Set PLL settings 288 MHz (from 12MHz), Fpll=(2*12(M)*12MHz/1(N)) PLLCFG = ((12-1)<< PLLFEED = 0xAA; PLLFEED = 0x55; // 7. Enable PLL PLLCON |= (1< PLLFEED = 0xAA; PLLFEED = 0x55; // 8. Wait for the PLL to achieve lock while(!(PLLSTAT&(1< // 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 |= 1< // 10. Connect the PLL PLLCON |= (1< PLLFEED = 0xAA; PLLFEED = 0x55; } void GPIOinit(void) { #define GPIOM 0 #define IO0DIR (*(volatile unsigned long *)0xE0028008) #define IO1DIR (*(volatile unsigned long *)0xE0028018) // Set to inputs IO0DIR =\ IO1DIR =\ FIO0DIR =\ FIO1DIR =\ FIO2DIR =\ FIO3DIR =\ FIO4DIR = 0; // Enable Fast GPIO0,1 SCS |=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; } Теперь картинки (не знаю как загрузятся, поэтому номера называть не буду) Легенда общая: желтый - сигнал с кварца (выход генератора контроллера) зеленый - сигнал с P2.3 Правильно ли я понял технику измерений? Выскажите замечания, поправки, наставления на путь истинный :) На одном из рисунков, где присутствует только сигнал с порта синхронизация велась от этого сигнала, приведен он только для оценки его формы и частоты. Да не нравится мне что-то форма, но куда копать не знаю - помехи, кривая разводка платы, кривые измерения? Да, в завершение. Сейчас уже достаточно поздно, с работы выгоняют, поэтому завтра продолжу измерения, а пока посмотрю как в ОЗУ разместить функцию. В общем, второй этап измерений завтра ближе к вечеру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба Наверное я слишком опрометчиво предложил Вам помощь, но я постараюсь оправдать ожидания. Все отлично, никакой опрометчивости. Правильно ли я понял технику измерений? Походу измерили Вы все верно. Первый рисунок (на котором 2 с копейками периодов кварца) на мой вопрос ответил - явно PLL. Мусор похоже лезет через землю. Вам надо было земляные щупы осциллографа зацепить рядом с процессором. Но это уже не важно. Нижний рисунок (на котором только ногодрыг) показывает, что гнусь справился с оптимизацией Common Subexpression Elimination - 9 тактов () для приведенного кода соответствует LDR (3 такта), EOR (1 такт), STR (2 такта), B (3 такта) - ничего лишнего. На чем можем и закончить. Благодарю за помощь, будете в Харькове - с меня пиво. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wano 0 16 июля, 2009 Опубликовано 16 июля, 2009 · Жалоба На чем можем и закончить. Если не секрет, расскажите где нужна синхронность с тактовой частотой? Я держал в руках девайс в котором две AVR-ки тактировались одним генератором. Разработчики сказали, что это максимально увеличивает скорость обмена по SPI между процами. AVR и LPC конечно не одно и тоже, но раз нет никаких задержек по фазе, можно было бы затактировав два проца, использовать это для того же ускорения передачи по SPI(к примеру)? Или бред? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться