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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
Dron_Gus
сообщение Jun 28 2012, 07:58
Сообщение #16


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Цитата(Enthusiast @ Jun 28 2012, 08:02) *
Всё верно: мы настраиваем и запускаем в работу аппаратный таймер микроконтроллера, однако срабатывания этого аппаратного таймера будут обрабатываться уже программными средствами операционной системы, превращая аппаратный таймер в программный с соотвествующим уходом времени обработки таймерного прерывания. Если не использовать операционную систему, то будет честный аппаратный таймер, спору нет.

Не верно. Нам даже прерывания от этого таймера не нужны. Таймер по дотижению определенных хначений будет выставлять 0 или 1 на ножке. Участие ПО не требуетя. Почитайте описание таймеров семейства at91. Джиттер будет напрямую зависеть от кварца, плл и делителей. Но не от ПО и загруженности ситемы.

16 бит 100 КГц это хорошо, а какая частота мастер клока ему нужна? 16 * 100 * 1000?


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Jun 28 2012, 08:08
Сообщение #17


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



А ещё думаю можно написать драйвер для управления аппаратным клоком. Чтобы можно было динамически менять частоту.

Сообщение отредактировал Zelepuk - Jun 28 2012, 08:13
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jun 28 2012, 08:15
Сообщение #18


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Читайте раздел "34. Timer Counter".


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Jun 28 2012, 08:29
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



У нас тактировали АЦП с частотой 50кГц от Плис. незнаю насколько для этих целей подойдёт клок от таймера MCU

Сообщение отредактировал Zelepuk - Jun 28 2012, 08:30
Go to the top of the page
 
+Quote Post
Enthusiast
сообщение Jun 28 2012, 18:26
Сообщение #20


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

Группа: Свой
Сообщений: 163
Регистрация: 25-09-09
Из: Nizhny Novgorod, Russia
Пользователь №: 52 588



Цитата(Dron_Gus @ Jun 28 2012, 10:58) *
Не верно. Нам даже прерывания от этого таймера не нужны. Таймер по дотижению определенных хначений будет выставлять 0 или 1 на ножке. Участие ПО не требуетя. Почитайте описание таймеров семейства at91. Джиттер будет напрямую зависеть от кварца, плл и делителей. Но не от ПО и загруженности ситемы.

Даже если мы и запустим внешнее АЦП точно по таймерной метке с микроконтроллера, то как Вы собираетесь обрабатывать эти самые данные с АЦП? Вот тут-то Вас ждет попаданец: программный обработчик операционной системы "уведет" всю точность аппаратного таймера. И таймерный драйвер ядра лишь уменьшит уход времени таймерного отсчета, но не решит вопроса в корне, так как драйвер тоже подчиняется программному распределению времени обработки внутри операционной системы. И осциллограф это только подтвердит.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jun 28 2012, 19:32
Сообщение #21


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Цитата(Enthusiast @ Jun 28 2012, 22:26) *
Даже если мы и запустим внешнее АЦП точно по таймерной метке с микроконтроллера, то как Вы собираетесь обрабатывать эти самые данные с АЦП? Вот тут-то Вас ждет попаданец: программный обработчик операционной системы "уведет" всю точность аппаратного таймера. И таймерный драйвер ядра лишь уменьшит уход времени таймерного отсчета, но не решит вопроса в корне, так как драйвер тоже подчиняется программному распределению времени обработки внутри операционной системы. И осциллограф это только подтвердит.

Надо будет только успевать забирать данные до следующего измерения, в этом джиттер не страшен. А сами выборки будут строго привязаны к генерируемому аппаратным таймером сигналу. К тому же топикстартер не упомянул, по какому интерфейсу АЦП подключен к контроллеру. Может это паралельная шина с FIFO, может I2S в режиме мастера, может SPI в режиме мастера. А может и slave-интерфейс, но в АЦП присутствует буфер. Методов много.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Dubov
сообщение Jun 29 2012, 04:44
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 408
Регистрация: 28-05-12
Пользователь №: 72 052



Цитата(Dron_Gus @ Jun 28 2012, 23:32) *
Надо будет только успевать забирать данные до следующего измерения, в этом джиттер не страшен. А сами выборки будут строго привязаны к генерируемому аппаратным таймером сигналу. К тому же топикстартер не упомянул, по какому интерфейсу АЦП подключен к контроллеру. Может это паралельная шина с FIFO, может I2S в режиме мастера, может SPI в режиме мастера. А может и slave-интерфейс, но в АЦП присутствует буфер. Методов много.

Шина SPI. АЦП посылает прерывание на мастер и тот забирает данные. Драйвер АЦП складывает отсчёты в кольцевой буфер и выдаёт пользователю через соответствующий программный интерфейс.
Вот мне инетерсно: по ТЗ требуется вести расчёты каждую миллисекунду(каждые 100 отсчётов) и складывать результат в массив.
Получится ли такое на Linux?
специалист нашего отдела мне сказал что нужно просто буфер отсчётов сделать длиннее. Пока не понимаю как это связано.
Go to the top of the page
 
+Quote Post

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

 


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


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