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

 
 
 
Reply to this topicStart new topic
> Определение минимального интервала между импульсами, AT91SAM9G45 с Линухом на борту
Алексей ВМ
сообщение Apr 18 2011, 15:32
Сообщение #1


Участник
*

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



Добрый день,

имеется задача - определение интервала между импульсами. Импульсы заведены на отдельные входы прерываний (всего 4), следуют с периодом ~500 мс. Надо оценить сдвиг между этими импульсами, выработать управляющие сигналы. Позволит ли сочетание AT91SAM9G45 400MHz + Линух это сделать, если точность оценки должна быть не ниже 50 - 80 нс?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 18 2011, 15:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Нет. И даже трудно представить себе что-то столь же неподходящее для решения задачи измерения времянок импульсов.
Go to the top of the page
 
+Quote Post
GDI
сообщение Apr 19 2011, 06:53
Сообщение #3


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Ну, один канал высокоточного измерения импульсов я делал на SAM9263 с использованием режима захвата таймера, пришлось патчить ядро, конечно. Разрешение было получено 40нс при клоке 200МГц и это не предел, можно было и 20нс получить, просто измеряемые импульсы были секундными, и счетчик переполнялся. Так что, если найдется 4 входа захвата и свободные таймера, то почему нет?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Алексей ВМ
сообщение Apr 19 2011, 07:33
Сообщение #4


Участник
*

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



Цитата(aaarrr @ Apr 18 2011, 19:40) *
Нет. И даже трудно представить себе что-то столь же неподходящее для решения задачи измерения времянок импульсов.


А в чем может быть засада? Латентность обработки прерывания в Линухе?


Цитата(GDI @ Apr 19 2011, 10:53) *
Ну, один канал высокоточного измерения импульсов я делал на SAM9263 с использованием режима захвата таймера, пришлось патчить ядро, конечно. Разрешение было получено 40нс при клоке 200МГц и это не предел, можно было и 20нс получить, просто измеряемые импульсы были секундными, и счетчик переполнялся. Так что, если найдется 4 входа захвата и свободные таймера, то почему нет?


То есть Вы делали измерение 1 сек интервала с точностью 40 нс, правильно я понимаю? У меня несколько другая задача - надо померить разность между несколькими каналами и ещё успеть выработать сигнал управления.
Go to the top of the page
 
+Quote Post
GDI
сообщение Apr 19 2011, 07:50
Сообщение #5


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата(Алексей ВМ @ Apr 19 2011, 10:33) *
То есть Вы делали измерение 1 сек интервала с точностью 40 нс, правильно я понимаю? У меня несколько другая задача - надо померить разность между несколькими каналами и ещё успеть выработать сигнал управления.

Да, именно так, задача была лишь измерить длительность импульса. Ваша задача тоже может быть решена на регистрах сравнения таймеров. Проблема только в том, чтобы найти нужное количество таймеров и подклюить сигналы на их входы сравнения. У SAM9263 есть 3 таймера и каждый имеет по 2 регистра захвата-сравнения. С SAM9G45 я не работал, но, думаю, там таймеров не меньше. Сами измерения при этом будут происходить аппаратно, ну а результат и управляющее воздействие - это отдельная задача. У меня результат читался в юзерспейсе и воздействие было очень медленным, с интервалом в десятки секунд. В общем курите раздел Timer Counter Вашего контроллера, а именно Capture Mode.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 19 2011, 08:47
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Алексей ВМ @ Apr 19 2011, 11:33) *
А в чем может быть засада? Латентность обработки прерывания в Линухе?

С латентностью прерываний вообще, безотносительно к ОС. Используйте capture, как уже советовали. Такая задача должна решаться "железными" средствами.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 15:52
Рейтинг@Mail.ru


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