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

 
 
> Frequency counter, на LPC2214
Shedon
сообщение Nov 17 2005, 09:52
Сообщение #1


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Есть желание зделать на capture LPC2214 подсчёт импульсов, вопрос до какой максимальной частоты я смогу считать импульсы и с какой точностью ? Fosc = 10MHz(с кварцевого генератора "СОНАТА" класса А), pll будет множить на 6, т.е. частота cclk=60MHz.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 24)
Serjio
сообщение Nov 18 2005, 09:04
Сообщение #2


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

Группа: Свой
Сообщений: 137
Регистрация: 3-09-04
Пользователь №: 594



Если имульсы подавать на счетчик - то только его быстродействием (методом досчета).
Например на процессоре 1878ВЕ1 был частотомер до 50 Мгц при тактовой частоте в 4 Мгц. Анологичный Appnot есть у Microchip.
В описаниии на LPC есть такая строка
CCO operates in the range of
156 MHz to 320 MHz
На сколько реально - не знаю. Если ошибаюсь - поправьте.
Go to the top of the page
 
+Quote Post
KRS
сообщение Nov 18 2005, 09:23
Сообщение #3


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Shedon @ Nov 17 2005, 12:52) *
Есть желание зделать на capture LPC2214 подсчёт импульсов, вопрос до какой максимальной частоты я смогу считать импульсы и с какой точностью ? Fosc = 10MHz(с кварцевого генератора "СОНАТА" класса А), pll будет множить на 6, т.е. частота cclk=60MHz.


использовать Timer Capture можно для измерения длины импульса
если настроить таймер с минимальным прескалером то разрешение будет 1/60E6 секунды
но вот считать импульсы с такой частоты не получится нужно время на обработку прерывания или полинга регистров

Цитата(Serjio @ Nov 18 2005, 12:04) *
Если имульсы подавать на счетчик - то только его быстродействием (методом досчета).
Например на процессоре 1878ВЕ1 был частотомер до 50 Мгц при тактовой частоте в 4 Мгц. Анологичный Appnot есть у Microchip.
В описаниии на LPC есть такая строка
CCO operates in the range of
156 MHz to 320 MHz
На сколько реально - не знаю. Если ошибаюсь - поправьте.


CCO относитя только к PLL
(после умножения частота должна быть в этом диапазоне)
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 11:41
Сообщение #4


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Цитата
если настроить таймер с минимальным прескалером то разрешение будет 1/60E6 секунды
но вот считать импульсы с такой частоты не получится нужно время на обработку прерывания или полинга регистров

На самом деле мне такая частота и не нужна, надо до 4MHz, в худшем случае до 10MHz(хотя скорее всего не надо).
И остаётся открытым вопрос о точности.
Go to the top of the page
 
+Quote Post
KRS
сообщение Nov 18 2005, 11:53
Сообщение #5


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Shedon @ Nov 18 2005, 14:41) *
Цитата
если настроить таймер с минимальным прескалером то разрешение будет 1/60E6 секунды
но вот считать импульсы с такой частоты не получится нужно время на обработку прерывания или полинга регистров

На самом деле мне такая частота и не нужна, надо до 4MHz, в худшем случае до 10MHz(хотя скорее всего не надо).
И остаётся открытым вопрос о точности.


Точности чего? считать количество импульсов - тут на мой взгляд вопрос о точности не стоит их надо или посчитать все или будет не верно.
Вот если надо померять частоту это другой вопрос.

если работать без прерываний полингом написать все на асм может и можно померять 4 mhz
но вот на выовод и обработку результатов времени не останется.

Сообщение отредактировал KRS - Nov 18 2005, 11:53
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 11:55
Сообщение #6


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Цитата
Вот если надо померять частоту это другой вопрос.

Именно.
Go to the top of the page
 
+Quote Post
KRS
сообщение Nov 18 2005, 12:12
Сообщение #7


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Shedon @ Nov 18 2005, 14:55) *
Цитата
Вот если надо померять частоту это другой вопрос.

Именно.


Тогда для медленной частоты можно измерить время импульса с помощью CAPTURE
настроить один канал на возрастающий фронт, другой канал на падающий и по разнице между регистрами определить длину импульса
максимальная точность измерения периода 1/60E6 секунды но фот частота она обратна периоду поэтому такой метод хорош если частота не большая.
А если большую частоту надо точно померять - тут действительно надо посичтать количество импульсов за время. точность будет определятся временем измерения.
Зесечь время можно довольно точно на LPC проблема вот посчитать импульсы, апаратных каунтеров у LPC нет! а софтом 4 MHZ не очень то получится считать.
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 12:19
Сообщение #8


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Цитата
Зесечь время можно довольно точно на LPC проблема вот посчитать импульсы, апаратных каунтеров у LPC нет! а софтом 4 MHZ не очень то получится считать.

куёво sad.gif
Go to the top of the page
 
+Quote Post
bombastic
сообщение Nov 18 2005, 12:38
Сообщение #9





Группа: Участник
Сообщений: 11
Регистрация: 28-09-05
Из: Н. Новгород
Пользователь №: 9 034



2Shedon
Не парься, возми 51, его таймер умеет
считать количество импульсов на входе.
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 12:43
Сообщение #10


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Цитата
Не парься, возми 51, его таймер умеет
считать количество импульсов на входе.

Чё мелочиться лучше сразу плисину впендюрить. smile.gif

Цитата
Тогда для медленной частоты можно измерить время импульса с помощью CAPTURE
настроить один канал на возрастающий фронт, другой канал на падающий и по разнице между регистрами определить длину импульса
максимальная точность измерения периода 1/60E6 секунды но фот частота она обратна периоду поэтому такой метод хорош если частота не большая.

А для медленной это какой ?

Сообщение отредактировал Shedon - Nov 18 2005, 12:44
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2005, 13:18
Сообщение #11


Гуру
******

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



Есть два способа реализации частотомера. Метод "временных ворот" (подсчет количества импульсов за заранее определенное время) и обратный "периодомер" (вычисление частоты путем измерение периода импульса). Первый способ интегральный, т.к. дает интегрирование частоты за определенный период. Второй дает "мгновенное" значение частоты, если взять обратную длительности импульса величину. Кстати, затем "мгновенное" значение частоты тоже можно проинтегрировать, но уже программно. Поскольку у таймера LPC2000 есть функция захвата, то до некоторой разумной величины частоты удобнее использовать второй способ. Для более высоких частот вроде как нужно использовать первый способ, но я пока не знаю как его "в лоб" (аппаратно) реализовать.
У нас на LPC2138 сейчас делается устройство сбора данных. Одна из функций это частотомер, восьмиканальный. По второму способу (измерение длительности с помощью регистров захвата) пробовали измерять до 100кГц одновременно по 8 каналам. Работает. Причем там еще дополнительно крутится опрос АЦП и обработка запросов по связи.
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 13:28
Сообщение #12


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Наверное придётся делить частоту, и мерить период.
Go to the top of the page
 
+Quote Post
moonrock
сообщение Nov 18 2005, 14:11
Сообщение #13


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

Группа: Свой
Сообщений: 166
Регистрация: 24-03-05
Из: Санкт-Петербург
Пользователь №: 3 661



Даа, касяк.. Не думал что у LPC нету счетного входа.
Если позволяет время, можно измерить частоту очень злым способом maniac.gif :
Настроить интервальный таймер на период измерения, скажем 0,1 с, а затем в цикле опрашивать какой-нить пин, и если происходит его изменение, увеличивать счетчик. Когда таймер отработает, остановить цикл и считать значение. Думаю таким способом 5-7 МГц можно измерить.
Точность, как понимаете, зависит от интервала измеерния.
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 14:17
Сообщение #14


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



ну я здесь не вижу преимуществ перед capture, т.е. если настроить его на прерывание скажем по фронту импульса, в обработчике прерываний просто инкрементировать переменную, и запустить таймер на опр. время, и посмотреть сколько импульсов за это время натикает
Go to the top of the page
 
+Quote Post
moonrock
сообщение Nov 18 2005, 14:21
Сообщение #15


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

Группа: Свой
Сообщений: 166
Регистрация: 24-03-05
Из: Санкт-Петербург
Пользователь №: 3 661



Ну да..тоже должно получиться. Вам ведь 4 МГц надо померить? Вообще надо подсчитать сколько тактов на все деяния уходит, тогда точно предельную частоту узнаем.
Go to the top of the page
 
+Quote Post
Shedon
сообщение Nov 18 2005, 14:37
Сообщение #16


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

Группа: Свой
Сообщений: 110
Регистрация: 30-11-04
Из: Nizhny Novgorod
Пользователь №: 1 262



Цитата
Вообще надо подсчитать сколько тактов на все деяния уходит, тогда точно предельную частоту узнаем.

Вот что по этому поводу в Technical Reference Manual пишут:
Цитата
2.9 Interrupt latencies
The calculations for maximum and minimum latency are described in:
• Maximum interrupt latencies
• Minimum interrupt latencies.
2.9.1 Maximum interrupt latencies
When FIQs are enabled, the worst-case latency for FIQ comprises a combination of:
Tsyncmax The longest time the request can take to pass through the synchronizer.
Tsyncmax is four processor cycles.
Tldm The time for the longest instruction to complete. The longest instruction
is an LDM that loads all the registers including the PC. Tldm is 20 cycles
in a zero wait state system.
Texc The time for the Data Abort entry. Texc is three cycles.
Tfiq The time for FIQ entry. Tfiq is two cycles.
The total latency is therefore 29 processor cycles, just over 0.7 microseconds in a
system that uses a continuous 40MHz processor clock. At the end of this time, the
ARM7TDMI processor executes the instruction at 0x1c.
The maximum IRQ latency calculation is similar, but must allow for the fact that FIQ,
having higher priority, can delay entry into the IRQ handling routine for an arbitrary
length of time.
2.9.2 Minimum interrupt latencies
The minimum latency for FIQ or IRQ is the shortest time the request can take through
the synchronizer, Tsyncmin, plus Tfiq, a total of five processor cycles.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 18 2005, 15:16
Сообщение #17


Гуру
******

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



Цитата(Shedon @ Nov 17 2005, 12:52) *
Есть желание зделать на capture LPC2214 подсчёт импульсов, вопрос до какой максимальной частоты я смогу считать импульсы и с какой точностью ? Fosc = 10MHz(с кварцевого генератора "СОНАТА" класса А), pll будет множить на 6, т.е. частота cclk=60MHz.

Следует иметь ввиду, что ARM _собственный_ генератор лишь синхронизируемый ФАПЧ с опорным.
Качество ФАПЧ никак не нормируется, как следствие, во что превратится действительно стабильный генератор - не понятно. Джитера уж точно будет много.
Опорную частоту надо использовать непосредственно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2005, 15:19
Сообщение #18


Гуру
******

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



Про Interrupt latency ARMов недавно в пустыне обсуждение было.
Go to the top of the page
 
+Quote Post
moonrock
сообщение Nov 21 2005, 06:46
Сообщение #19


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

Группа: Свой
Сообщений: 166
Регистрация: 24-03-05
Из: Санкт-Петербург
Пользователь №: 3 661



Shedon:
ninja.gif Похоже мы вас в заблуждение ввели. В мануале четко написано, что вход Capture можно использовать как счетный, если выставить нужные биты в TxCTCR.

Count Control Register (CTCR: TIMER0 - T0CTCR: 0xE0004070; TIMER1 - T1TCR: 0xE0008070)
The Count Control Register (CTCR) is used to select between Timer and Counter mode, and in Counter mode to select the pin
and edge(s) for counting.
When Counter Mode is chosen as a mode of operation, the CAP input (selected by the CTCR bits 3:2) is sampled on every rising
edge of the pclk clock. After comparing two consecutive samples of this CAP input, one of the following four events is recognized:
rising edge, falling edge, either of edges or no changes in the level of the selected CAP input. Only if the identified event
corresponds to the one selected by bits 1:0 in the CTCR register, the Timer Counter register will be incremented.
Effective processing of the externaly supplied clock to the counter has some limitations. Since two successive rising edges of the
pclk clock are used to identify only one edge on the CAP selected input, the frequency of the CAP input can not exceed one half
of the pclk clock. Consequently, duration of the high/low levels on the same CAP input in this case can not be shorter than 1/fpclk.

Это значит что максимальная частота счета на практике будет чуть меньше PCLK/2, в вашем случае - примерно 28 МГц, и вы можете сделать нормальный частотомер. w00t.gif
Так что заботиться о прерываниях не стоит.
Go to the top of the page
 
+Quote Post
KRS
сообщение Nov 21 2005, 08:28
Сообщение #20


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(moonrock @ Nov 21 2005, 09:46) *
Shedon:
ninja.gif Похоже мы вас в заблуждение ввели. В мануале четко написано, что вход Capture можно использовать как счетный, если выставить нужные биты в TxCTCR.

Count Control Register (CTCR: TIMER0 - T0CTCR: 0xE0004070; TIMER1 - T1TCR: 0xE0008070)
The Count Control Register (CTCR) is used to select between Timer and Counter mode, and in Counter mode to select the pin
and edge(s) for counting.
When Counter Mode is chosen as a mode of operation, the CAP input (selected by the CTCR bits 3:2) is sampled on every rising
edge of the pclk clock. After comparing two consecutive samples of this CAP input, one of the following four events is recognized:
rising edge, falling edge, either of edges or no changes in the level of the selected CAP input. Only if the identified event
corresponds to the one selected by bits 1:0 in the CTCR register, the Timer Counter register will be incremented.
Effective processing of the externaly supplied clock to the counter has some limitations. Since two successive rising edges of the
pclk clock are used to identify only one edge on the CAP selected input, the frequency of the CAP input can not exceed one half
of the pclk clock. Consequently, duration of the high/low levels on the same CAP input in this case can not be shorter than 1/fpclk.

Это значит что максимальная частота счета на практике будет чуть меньше PCLK/2, в вашем случае - примерно 28 МГц, и вы можете сделать нормальный частотомер. w00t.gif
Так что заботиться о прерываниях не стоит.


А где вы нашли эту информацию?
регистра CTCR у 2214 я не нашел
Go to the top of the page
 
+Quote Post
moonrock
сообщение Nov 21 2005, 08:39
Сообщение #21


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

Группа: Свой
Сообщений: 166
Регистрация: 24-03-05
Из: Санкт-Петербург
Пользователь №: 3 661



twak.gif Стреляйте! Я на другой проц даташит открыл. Действительно у 2214 нету
Go to the top of the page
 
+Quote Post
Perepic
сообщение May 31 2007, 07:44
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 14-08-06
Пользователь №: 19 528



Цитата(zltigo @ Nov 18 2005, 19:16) *
Качество ФАПЧ никак не нормируется, как следствие, во что превратится действительно стабильный генератор - не понятно. Джитера уж точно будет много.
Опорную частоту надо использовать непосредственно.

Ну эт вы загнули! Если бы речь шла о тактировании АЦП - там да, джиттер играет. Но для счета импульсов... Думаю, при счете любого кол-ва импульсов больше 1, точность всегда будет +- 1 период тактовой, главное, чтоб частота этой тактовой не плавала. В цепях с ФАПЧ обычно стоит как вкопаная. А по поводу внутреннего АЦП, который тактируется от pclk, так там делитель не малый стоит. Он джиттер оч сильно уменьшает.
Так что здесь все гладко. Немного пугает еррата, где написано про потерю прерываний от таймера... Моежт, в очередной ревизии пофиксят, а пока все делаем "ручками".
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 31 2007, 21:11
Сообщение #23


Гуру
******

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



Цитата(Perepic @ May 31 2007, 10:44) *
Ну эт вы загнули!

Нет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jun 1 2007, 08:23
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Цитата(moonrock @ Nov 21 2005, 11:39) *
twak.gif Стреляйте! Я на другой проц даташит открыл. Действительно у 2214 нету


Ставлю к LPC22XX дополнительно FPGA для счетчиков, квадр. енкодеров, и другой цифровой лабуды для общения с внешним миром.
Go to the top of the page
 
+Quote Post
viael
сообщение Jun 4 2007, 07:06
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Цитата(Make_Pic @ Jun 1 2007, 12:23) *
Ставлю к LPC22XX дополнительно FPGA для счетчиков, квадр. енкодеров, и другой цифровой лабуды для общения с внешним миром.

Ага.Или PIC16 какйнить мелкий, в зависимости от конкретного экземпляра 65-85МГц можно мерить.Ну и прицепить его скажем на I2C или SPI.

Еще как вариант перейти на использование SAM7 у них счетный вход имеется.
Go to the top of the page
 
+Quote Post

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

 


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


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