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

 
 
> Счётчик десятинаносекундных импульсов на STM32F4
uu5jkb
сообщение Jun 1 2014, 05:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 4-02-09
Пользователь №: 44 400



Приветствую всех.
Стоит задача вести счёт импульсов, приходящих по пяти каналам. Импульсы уже прямоугольные, сформированные, длительность 10 нс, интервал между импульсами скачет случайным образом, в худшем случае два импульса "слипаются в один". Измерять надо в течение 20 мс, за это время может набежать до 500 тыс. импульсов. По прикидкам, STM32F4 может таткировать свои таймеры 168 МГц и регистрировать импульсы такой длительности. Два 32-разрядных таймеров запустить напрямую, ещё три 16-битных - по прерываниям увеличивать програмный счётчик, чтобы вместилось 500 тыс. импульсов.
Собственно, вопрос: может кто возился с подобным и есть ли какие противопоказания для такого использования СТМ?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Jun 1 2014, 07:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(uu5jkb @ Jun 1 2014, 15:33) *
Стоит задача вести счёт импульсов, приходящих по пяти каналам. Импульсы уже прямоугольные, сформированные, длительность 10 нс, интервал между импульсами скачет случайным образом, в худшем случае два импульса "слипаются в один". Измерять надо в течение 20 мс, за это время может набежать до 500 тыс. импульсов. По прикидкам, STM32F4 может таткировать свои таймеры 168 МГц и регистрировать импульсы такой длительности. Два 32-разрядных таймеров запустить напрямую, ещё три 16-битных - по прерываниям увеличивать програмный счётчик, чтобы вместилось 500 тыс. импульсов.
Собственно, вопрос: может кто возился с подобным и есть ли какие противопоказания для такого использования СТМ?

Что-ж Вы кроме как в лоб ничего и придумать не можете? blink.gif

Поставьте на каждый источник импульсов по делителю (D-триггеру). Если таймеры CPU смогут работать на частоте ядра, то такую частоту
они уже посчитать смогут (так как она уже более чем в 2 раза ниже тактовой). А в конце интервала по состоянию уровня после делителя сможете
досчитать последний нечётный импульс.

То что у вас есть "слипшиеся импульсы", говорит что у вас что-то не так спроектировано в системе в целом.
Как вариант решения - ждущий мультибиратор на каждый источник импульсов, с периодом ==10нс и на счётные входы подавать уже выходы
этих мультивибраторов. Т.е. - если вместо импульса длиной 10нсек, придёт что-то более длинное, то мультивибратор успеет за это время сгенерить
не один, а два или более имульсов, в зависимости от длительности.
Другой вариант - в МК сигнал подавать не на счётные входы счётчиков, а на входы разрешения счёта импульсов от внутреннего генератора
(не знаю умеют-ли такое счётчики STM32?).
Но тут наверное нужно чтобы частота этого генератора была кратна длительности ваших импульсов (10нсек).

PS: А почему-бы просто не поставить внешние счётчики и опрашивать их периодически?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jun 1 2014, 07:42
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(jcxz @ Jun 1 2014, 07:28) *
Другой вариант - в МК сигнал подавать не на счётные входы счётчиков, а на входы разрешения счёта импульсов от внутреннего генератора
(не знаю умеют-ли такое счётчики STM32?).

Умеют. Вообще лучше конечно такое делать на CPLD. Набрать 5 счетчиков 8 разрядных, например, выход завести на таймеры или даже больше разрядов и на GPIO пины через прерывания считать.
Или на рассыпухе сделать.


Цитата(Xenia @ Jun 1 2014, 05:48) *
Если STM32F позволяет считать асинхронно с частотой, превышающей половину тактируемой, то прошу отозваться тех, кому это удалось практически осуществить. Меня такая возможность тоже сильно интересует.

STM32F103 асинхронно не может, как я понял из figure 122 RM008,
тоже самое для второго режима.

А вот майкрочип может считать асинхронно.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 1 2014, 07:46
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(A. Fig Lee @ Jun 1 2014, 17:40) *
Умеют. Вообще лучше конечно такое делать на CPLD. Набрать 5 счетчиков 8 разрядных, например, выход завести на таймеры или даже больше разрядов и на GPIO пины через прерывания считать.
Или на рассыпухе сделать.

Больше не надо, хватит и 4-х разрядов: счётчики - делители частоты, их выходы переполнения - на таймеры CPU, по завершении интервала счёта (20мсек),
считываем содержимое счётчиков по отдельной шине.
Даже вобще-то и шины отдельной не надо, чтобы не городить много лишних дорог на плате - достаточно одной с GPIO CPU.
После окончания интервала счёта, заводим её через элемент ИЛИ на счётные входы всех счётчиков, даём с CPU 16 импульсов -
таким образом определяем остаток в счётчиках на момент окончания счёта внешних импульсов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- uu5jkb   Счётчик десятинаносекундных импульсов на STM32F4   Jun 1 2014, 05:23
- - Xenia   Цитата(uu5jkb @ Jun 1 2014, 13:33) Импуль...   Jun 1 2014, 05:38
|- - adnega   Цитата(Xenia @ Jun 1 2014, 13:48) позволя...   Jun 1 2014, 06:01
|- - Xenia   Цитата(adnega @ Jun 1 2014, 14:11) Кста, ...   Jun 3 2014, 16:05
|- - HHIMERA   Цитата(A. Fig Lee @ Jun 1 2014, 14:52) ST...   Jun 1 2014, 11:41
|- - A. Fig Lee   Цитата(HHIMERA @ Jun 1 2014, 11:51) И STM...   Jun 2 2014, 07:14
|- - HHIMERA   Цитата(A. Fig Lee @ Jun 2 2014, 14:24) Да...   Jun 2 2014, 14:23
|- - Xenia   Цитата(HHIMERA @ Jun 2 2014, 22:33) ...   Jun 2 2014, 15:08
- - uu5jkb   Цитата(Xenia @ Jun 1 2014, 13:48) ...макс...   Jun 1 2014, 09:33
|- - jcxz   Цитата(uu5jkb @ Jun 1 2014, 19:43) Это но...   Jun 1 2014, 09:51
|- - Tanya   Цитата(uu5jkb @ Jun 1 2014, 17:43) Это но...   Jun 3 2014, 00:31
- - A. Fig Lee   Я бы поначалу глянул, хватит ли таймеров у СТМ32. ...   Jun 1 2014, 10:28
- - Golikov A.   CPLD лучше ставить. Всяко лучше чем на рассыпухе с...   Jun 1 2014, 11:45
- - SasaVitebsk   Непосредственно по вопросу, если это спасёт, то де...   Jun 2 2014, 02:10
|- - demiurg_spb   Как альтернативный вариант: Запустить ДМА по перво...   Jun 2 2014, 02:43
|- - jcxz   Цитата(SasaVitebsk @ Jun 2 2014, 12:20) Н...   Jun 2 2014, 03:52
|- - demiurg_spb   Цитата(jcxz @ Jun 2 2014, 12:02) Не хвати...   Jun 2 2014, 04:26
|- - jcxz   Как это не важно? А как вы их потом разбирать на о...   Jun 2 2014, 04:40
|- - demiurg_spb   Цитата(jcxz @ Jun 2 2014, 12:50) Как это ...   Jun 2 2014, 04:53
|- - adnega   Цитата(demiurg_spb @ Jun 2 2014, 13:03) П...   Jun 2 2014, 05:12
||- - demiurg_spb   Цитата(adnega @ Jun 2 2014, 13:22) Не сов...   Jun 2 2014, 05:27
|- - jcxz   Цитата(demiurg_spb @ Jun 2 2014, 15:03) П...   Jun 2 2014, 09:25
|- - demiurg_spb   Цитата(jcxz @ Jun 2 2014, 17:35) Вы счита...   Jun 3 2014, 03:44
|- - adnega   Цитата(demiurg_spb @ Jun 3 2014, 11:54) Я...   Jun 3 2014, 04:04
|- - demiurg_spb   Цитата(adnega @ Jun 3 2014, 12:14) Кажетс...   Jun 3 2014, 04:17
||- - adnega   Цитата(demiurg_spb @ Jun 3 2014, 12:27) Л...   Jun 3 2014, 04:53
|- - jcxz   Цитата(adnega @ Jun 3 2014, 14:14) Тот ва...   Jun 3 2014, 05:09
|- - adnega   Цитата(jcxz @ Jun 3 2014, 13:19) У меня в...   Jun 3 2014, 06:35
|- - jcxz   Цитата(adnega @ Jun 3 2014, 16:45) Теперь...   Jun 3 2014, 11:44
|- - adnega   Цитата(jcxz @ Jun 3 2014, 19:54) По-моему...   Jun 3 2014, 12:48
- - _pv   DCMI на вход вроде до FCLK/2 разгоняется. но всё р...   Jun 2 2014, 06:25
- - A. Fig Lee   А почему проблемы? Потому что не железо подбираетс...   Jun 2 2014, 09:46
|- - adnega   Цитата(A. Fig Lee @ Jun 2 2014, 17:56) А ...   Jun 2 2014, 10:33
|- - jcxz   Цитата(adnega @ Jun 2 2014, 20:43) 4. Точ...   Jun 2 2014, 14:44
- - HHIMERA   Потому что проблема надуманная... Делов то... макс...   Jun 2 2014, 15:18
- - Golikov A.   а как расшифровывается ETR?   Jun 2 2014, 15:33
|- - A. Fig Lee   Цитата(Golikov A. @ Jun 2 2014, 15:43) а ...   Jun 2 2014, 22:15
- - Golikov A.   ЦитатаExternal TRigger спасибо Цитатасчет фотонов...   Jun 3 2014, 00:37
|- - Tanya   Цитата(Golikov A. @ Jun 3 2014, 08:47) ко...   Jun 3 2014, 02:25
- - Леонид Иванович   10 лет назад решал подобную задачу - делал двухкан...   Jun 3 2014, 04:27
- - alexen   Цитата(Xenia @ Jun 4 2014, 00:15) огранич...   Jun 3 2014, 17:34
|- - Леонид Иванович   Цитата(alexen @ Jun 4 2014, 00:44) Таймер...   Jun 3 2014, 17:43
- - alexen   Цитата(Леонид Иванович @ Jun 4 2014, 01:5...   Jun 3 2014, 18:17
|- - jcxz   В LPC17xx - частота периферии получается делением ...   Jun 3 2014, 22:14
- - uu5jkb   Убедили. Потратил некторое время на знакомство с П...   Jul 13 2014, 17:13
- - Golikov A.   Ну... код ничего для начальной курсовой. 1. Капит...   Jul 13 2014, 21:44


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

 


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


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