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

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

|
Приветствую всех. Стоит задача вести счёт импульсов, приходящих по пяти каналам. Импульсы уже прямоугольные, сформированные, длительность 10 нс, интервал между импульсами скачет случайным образом, в худшем случае два импульса "слипаются в один". Измерять надо в течение 20 мс, за это время может набежать до 500 тыс. импульсов. По прикидкам, STM32F4 может таткировать свои таймеры 168 МГц и регистрировать импульсы такой длительности. Два 32-разрядных таймеров запустить напрямую, ещё три 16-битных - по прерываниям увеличивать програмный счётчик, чтобы вместилось 500 тыс. импульсов. Собственно, вопрос: может кто возился с подобным и есть ли какие противопоказания для такого использования СТМ? Спасибо.
|
|
|
|
|
 |
Ответов
|
Jun 1 2014, 07:18
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(uu5jkb @ Jun 1 2014, 15:33)  Стоит задача вести счёт импульсов, приходящих по пяти каналам. Импульсы уже прямоугольные, сформированные, длительность 10 нс, интервал между импульсами скачет случайным образом, в худшем случае два импульса "слипаются в один". Измерять надо в течение 20 мс, за это время может набежать до 500 тыс. импульсов. По прикидкам, STM32F4 может таткировать свои таймеры 168 МГц и регистрировать импульсы такой длительности. Два 32-разрядных таймеров запустить напрямую, ещё три 16-битных - по прерываниям увеличивать програмный счётчик, чтобы вместилось 500 тыс. импульсов. Собственно, вопрос: может кто возился с подобным и есть ли какие противопоказания для такого использования СТМ? Что-ж Вы кроме как в лоб ничего и придумать не можете? Поставьте на каждый источник импульсов по делителю (D-триггеру). Если таймеры CPU смогут работать на частоте ядра, то такую частоту они уже посчитать смогут (так как она уже более чем в 2 раза ниже тактовой). А в конце интервала по состоянию уровня после делителя сможете досчитать последний нечётный импульс. То что у вас есть "слипшиеся импульсы", говорит что у вас что-то не так спроектировано в системе в целом. Как вариант решения - ждущий мультибиратор на каждый источник импульсов, с периодом ==10нс и на счётные входы подавать уже выходы этих мультивибраторов. Т.е. - если вместо импульса длиной 10нсек, придёт что-то более длинное, то мультивибратор успеет за это время сгенерить не один, а два или более имульсов, в зависимости от длительности. Другой вариант - в МК сигнал подавать не на счётные входы счётчиков, а на входы разрешения счёта импульсов от внутреннего генератора (не знаю умеют-ли такое счётчики STM32?). Но тут наверное нужно чтобы частота этого генератора была кратна длительности ваших импульсов (10нсек). PS: А почему-бы просто не поставить внешние счётчики и опрашивать их периодически?
|
|
|
|
|
Jun 1 2014, 07:42
|

Знающий
   
Группа: Участник
Сообщений: 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, тоже самое для второго режима. А вот майкрочип может считать асинхронно.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jun 1 2014, 11:41
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(A. Fig Lee @ Jun 1 2014, 14:52)  STM32F103 асинхронно не может, как я понял из figure 122 RM008,
А вот майкрочип может считать асинхронно. И STM может... и STM8 и STM32... по входу ETR... В этом они ничем от Микрочипа не отличаются...
Сообщение отредактировал HHIMERA - Jun 1 2014, 11:42
|
|
|
|
|
Jun 2 2014, 07:14
|

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

|
Цитата(HHIMERA @ Jun 1 2014, 11:51)  И STM может... и STM8 и STM32... по входу ETR... В этом они ничем от Микрочипа не отличаются... Да? A что означает фраза Цитата The delay between the rising edge on ETR and the actual clock of the counter is due to the resynchronization circuit on the ETRP signal. на странице 365 RM008?
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
Сообщений в этой теме
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  jcxz Цитата(A. Fig Lee @ Jun 1 2014, 17:40) Ум... Jun 1 2014, 07:46    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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|