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

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Вопросы по XMega
Xenia
сообщение Sep 17 2013, 14:06
Сообщение #46


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Navovvol @ Sep 17 2013, 17:31) *
У меня один опытный образец уже полтора года на 48МГц работает и полностью исправен. Работает от внешнего кварца на 8 МГц и PLL на 6. Выше поднимать удавалось, уже не помню до скольки, но потом засомневался и прекратил эксперименты, оставив на 48МГц. Нагреваний МК-ра замечено не было. Ну, а таймеры могут тактироваться вместе с CPU или через делитель, так что - да, таймеры заработают быстрее.


Ядро разгонять свыше 32 МГц я не хочу, мне процессорной скорости вполне хватает. Однако хотелось бы, что таймер был способен считать внешние импульсы (меандр) на более высокой частоте, чем нынешние 16 МГц (половина от 32-х). Т.е. мне надо только на счет, а не на выдачу! И хотя, казалось бы, скорость внешнего счета от внутренней частоты никак не зависит, но какая-то там связь типа синхронизации есть, которая мешает мне подняться выше 16 МГц (начинает пропускать импульсы). Причем, мне не ясно, какого из трех клоков не хватает (clkper, clkper2, clkper4). Похоже, что не хватает clkper, т.е. именно он тактирует таймеры и систему событий (через последнюю сигналы от ножек попадат к таймеру). Но насколько технически возможно поднять clkper выше частоты ядра? Ведь ядро вроде бы работает как раз от этого clkper...

P.S. Может быть эта синхронизация как-то отключается, чтобы счет внешних импульсов стал асинхронным? И тогда клоками можно не заморачиваться?

P.P.S. По-видимому, задача моя нерешабельная, т.к. в руководстве (Atmel AVR1617: Frequency Measurement with Atmel AVR XMEGA Family Devices) прямо сказано:
Цитата
Limitations
• The Atmel AVR XMEGA device operating with the recommended 32MHz internal RC oscillator is limited to measuring clock frequencies up to 32MHz / 2, or 16MHz
Go to the top of the page
 
+Quote Post
Duhas
сообщение Sep 17 2013, 16:22
Сообщение #47


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 13-04-07
Пользователь №: 27 018



что измеряете, если не секрет?
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 17 2013, 17:18
Сообщение #48


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Duhas @ Sep 17 2013, 20:22) *
что измеряете, если не секрет?

Пока измеряла две вещи:

Первое: сигнал с выхода кварцевого генератора KXO-210 с частотами 4-6-8-10-12-16 МГц на предмет их термостабильности. Хорошо бы подняться до 60 МГц (выше у кварцев обычно не бывает). По всей видимости воспользуюсь делителем, но разговор о частотах у Xmega, превышающих 32 МГц, меня заинтриговал.

Второе: тестовый вариант измерения частоты, генерирумой той же XMega другим таймером. Коннект выхода со входом внешний, посредством джампера. Тут частота стоит, как влитая - даже младший разряд не шелохнется.

В обоих случаях велся счет импульсов за 1 секунду, отмеряемую третьим таймером той же XMega.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 17 2013, 17:28
Сообщение #49


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Xenia @ Sep 17 2013, 17:06) *
P.P.S. По-видимому, задача моя нерешабельная

Такая фича, как считать испульсы частотой выше процессорной традиционно присутствует у продукции Микрочип
Специально глянул PIC10Fxxx там таки осталось это. Счетчик с предделителем меряют до 50МГц, и это с незапамятных времен было. Так что поставьте предделитель из мелкого пичка, в sot23-6.
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 17 2013, 18:03
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Xenia @ Sep 17 2013, 20:18) *
разговор о частотах у Xmega, превышающих 32 МГц, меня заинтриговал.

В DS на конкретный чип раздел Electrical Characteristics , Internal Phase Locked Loop (PLL) characteristics
там мин/макс чего можно от PLL получить
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 17 2013, 18:22
Сообщение #51


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(zombi @ Sep 17 2013, 22:03) *
В DS на конкретный чип раздел Electrical Characteristics , Internal Phase Locked Loop (PLL) characteristics
там мин/макс чего можно от PLL получить


PLL, согласно "электрическим характеристикам" можно аж до 128 МГц разогнать sm.gif, но не в этом же дело. Проблема в том, будут ли с такой частотой работать остальные элементы МК. Частота 32 МГц выбрана предельной не потому, что PLL не может сгенерировать больше, а, прежде всего, потому, что flash-память на такой частоте сглючит.

Но вот этот же момент меня и смущает, т.к. для работы таймера в счетном режиме никая поддержка CPU не нужна, т.к. этот процесс теоретически может происходить совершенно автономно, будучи ограниченным лишь скоростью дискретных элементов самого таймера. И никакие клочные частоты для этого не нужны. А эта скорость, очевидно, 32 МГц-ами не может быть ограничена. Тем более, если zombi не врет sm.gif, то у него получалось с частотой 64MHz даже ножкой дрыгать.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Sep 17 2013, 19:47
Сообщение #52


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(Xenia @ Sep 17 2013, 20:18) *
Пока измеряла две вещи:

Первое: сигнал с выхода кварцевого генератора KXO-210 с частотами 4-6-8-10-12-16 МГц на предмет их термостабильности. Хорошо бы подняться до 60 МГц (выше у кварцев обычно не бывает). По всей видимости воспользуюсь делителем, но разговор о частотах у Xmega, превышающих 32 МГц, меня заинтриговал.

Второе: тестовый вариант измерения частоты, генерирумой той же XMega другим таймером. Коннект выхода со входом внешний, посредством джампера. Тут частота стоит, как влитая - даже младший разряд не шелохнется.

В обоих случаях велся счет импульсов за 1 секунду, отмеряемую третьим таймером той же XMega.


Посмотрите в сторону xMega E-серии . У них там блок программируемой логики и вроде там была возможность не протаскивать входной сигнал через синхронизаторы и составить 16 разрядный таймер с защелкой по событию.
Если есть возможность иметь опорный сигнал с частотой 32кГц можно более точно увидеть изменения. Считаете входной сигнал таймером без сброса и остановки, а защелку фиксируете по фронту опорника. Накапливаете статистику дэльт к примеру за секунду.... Так можно отловить в т.ч. величину фазовых шумов.

ЗЗЫ. Кроме того, там основной тактовый генератор обещают может до 140 с лишним МГц на предделители отправлять....
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 17 2013, 20:31
Сообщение #53


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Xenia @ Sep 17 2013, 21:22) *
Тем более, если zombi не врет sm.gif, то у него получалось с частотой 64MHz даже ножкой дрыгать.

Даа... не ожидал такого недоверия!
Всё, обиделся я тчк.

Цитата(Xenia @ Sep 17 2013, 21:22) *
PLL, согласно "электрическим характеристикам" можно аж до 128 МГц разогнать sm.gif, но не в этом же дело. Проблема в том, будут ли с такой частотой работать остальные элементы МК.

И нафига тогда, скажите пожалуйста, атмел это делает ?
Даёт частоту на которой не всё работает biggrin.gif biggrin.gif biggrin.gif

Всё, короче, обиделся ещё раз. crying.gif
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Sep 18 2013, 05:13
Сообщение #54


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(_Pasha @ Sep 17 2013, 20:28) *
Такая фича, как считать испульсы частотой выше процессорной традиционно присутствует у продукции Микрочип

STM8 и STM32 тоже на такое способны...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 18 2013, 06:16
Сообщение #55


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(HHIMERA @ Sep 18 2013, 08:13) *
STM8 и STM32 тоже на такое способны...

Я говорил о том, что если свет клином сошелся на Xmega, то добавление корпуса SOT23-6 в качестве предделителя весьма ненапряжно.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 18 2013, 06:32
Сообщение #56


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(_Pasha @ Sep 18 2013, 10:16) *
Я говорил о том, что если свет клином сошелся на Xmega, то добавление корпуса SOT23-6 в качестве предделителя весьма ненапряжно.


Это чего еще за корпус? sm.gif Чего у него внутри? Номинал назвать можно?
Go to the top of the page
 
+Quote Post
Navovvol
сообщение Sep 18 2013, 07:01
Сообщение #57


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

Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080



Xenia, я кажется понял, что требуется.
Пусть Atxmega128A1 тактируется от внешнего кварца на 8МГц. И через PLL вытворяем такое: (код сгенерирован CV AVR)
CODE

// System Clocks initialization
void system_clocks_init(void)
{
unsigned char n,s;

// Optimize for speed
#pragma optsize-
// Save interrupts enabled/disabled state
s=SREG;
// Disable interrupts
#asm("cli")

// External 8000.000 kHz clock source on XTAL1 initialization
OSC.XOSCCTRL=OSC_XOSCSEL_EXTCLK_gc;
// Enable the external clock source
OSC.CTRL|=OSC_XOSCEN_bm;

// System Clock prescaler A division factor: 1
// System Clock prescalers B & C division factors: B:2, C:2
// ClkPer4: 128000.000 kHz
// ClkPer2: 64000.000 kHz
// ClkPer: 32000.000 kHz
// ClkCPU: 32000.000 kHz
n=(CLK.PSCTRL & (~(CLK_PSADIV_gm | CLK_PSBCDIV1_bm | CLK_PSBCDIV0_bm))) |
CLK_PSADIV_1_gc | CLK_PSBCDIV_2_2_gc;
CCP=CCP_IOREG_gc;
CLK.PSCTRL=n;

// PLL initialization
// PLL clock source: External Osc. or Clock
// PLL multiplication factor: 16
// PLL frequency: 128.000000 MHz
// Set the PLL clock source and multiplication factor
n=(OSC.PLLCTRL & (~(OSC_PLLSRC_gm | OSC_PLLFAC_gm))) |
OSC_PLLSRC_XOSC_gc | 16;
CCP=CCP_IOREG_gc;
OSC.PLLCTRL=n;
// Enable the PLL
OSC.CTRL|=OSC_PLLEN_bm;

// System Clock prescaler A division factor: 1
// System Clock prescalers B & C division factors: B:2, C:2
// ClkPer4: 128000.000 kHz
// ClkPer2: 64000.000 kHz
// ClkPer: 32000.000 kHz
// ClkCPU: 32000.000 kHz
n=(CLK.PSCTRL & (~(CLK_PSADIV_gm | CLK_PSBCDIV1_bm | CLK_PSBCDIV0_bm))) |
CLK_PSADIV_1_gc | CLK_PSBCDIV_2_2_gc;
CCP=CCP_IOREG_gc;
CLK.PSCTRL=n;

// Wait for the PLL to stabilize
while ((OSC.STATUS & OSC_PLLRDY_bm)==0);

// Select the system clock source: Phase Locked Loop
n=(CLK.CTRL & (~CLK_SCLKSEL_gm)) | CLK_SCLKSEL_PLL_gc;
CCP=CCP_IOREG_gc;
CLK.CTRL=n;

// Disable the unused oscillators: 2 MHz, 32 MHz, internal 32 kHz
OSC.CTRL&= ~(OSC_RC2MEN_bm | OSC_RC32MEN_bm | OSC_RC32KEN_bm);

// ClkPer output: Disabled bit 7
PORTCFG.CLKEVOUT=(PORTCFG.CLKEVOUT & (~PORTCFG_CLKOUT_gm)) | PORTCFG_CLKOUT_OFF_gc;

// Restore interrupts enabled/disabled state
SREG=s;
// Restore optimization for size if needed
#pragma optsize_default
}

Далее берем таймер и заставляем его работать в режиме "высокой точности" Hi-Res в этом режиме он тактируется от Clkper4, т.е. от 128MHz. А далее пин таймера ставим на Capture. Нее ? не подойдет ?
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Sep 18 2013, 07:05
Сообщение #58


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(_Pasha @ Sep 18 2013, 09:16) *
Я говорил о том, что если свет клином сошелся на Xmega, то добавление корпуса SOT23-6 в качестве предделителя весьма ненапряжно.

Не... если "PIC и XMega - братья навек!"(С)... то я как бы и не против...
Только... такое решение попахивает удалением гланд нетрадиционным для медицины способом...
Тогда уж проще прилепить что-то из 74LVC... "И XMega сыта, и адепты целы."(С)...

Сообщение отредактировал HHIMERA - Sep 18 2013, 07:54
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 18 2013, 07:42
Сообщение #59


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Navovvol @ Sep 18 2013, 11:01) *
Далее берем таймер и заставляем его работать в режиме "высокой точности" Hi-Res в этом режиме он тактируется от Clkper4, т.е. от 128MHz. А далее пин таймера ставим на Capture. Нее ? не подойдет ?


Про режим "высокой точности" интересно, надо будет попробовать. Однако признаюсь, что отношусь к этой идее скептически, поскольку HiRes действует на частоту PWM, тогда как у меня не генерация частоты, а, наоборот, счет частоты, причем внешней. И тут уж каждый электрический импульс снаружи (фронт нужного направления) добавляет к счетчику таймера единичку. При этом само понятие "высокой точности" в данном контексте абсурдно, т.к. ничего другого, кроме той единички прибавиться не может.
Go to the top of the page
 
+Quote Post
Navovvol
сообщение Sep 18 2013, 08:13
Сообщение #60


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

Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080



Цитата(Xenia @ Sep 18 2013, 11:42) *
Про режим "высокой точности" интересно, надо будет попробовать. Однако признаюсь, что отношусь к этой идее скептически, поскольку HiRes действует на частоту PWM, тогда как у меня не генерация частоты, а, наоборот, счет частоты, причем внешней. И тут уж каждый электрический импульс снаружи (фронт нужного направления) добавляет к счетчику таймера единичку. При этом само понятие "высокой точности" в данном контексте абсурдно, т.к. ничего другого, кроме той единички прибавиться не может.

Ах да совсем забыл... в режиме HiRes нормальный режим таймера не доступен. А он нужен для захвата.
Go to the top of the page
 
+Quote Post

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

 


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


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