Перейти к содержанию
    

AT91 и драйвер таймера

Всё верно: мы настраиваем и запускаем в работу аппаратный таймер микроконтроллера, однако срабатывания этого аппаратного таймера будут обрабатываться уже программными средствами операционной системы, превращая аппаратный таймер в программный с соотвествующим уходом времени обработки таймерного прерывания. Если не использовать операционную систему, то будет честный аппаратный таймер, спору нет.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Zelepuk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Zelepuk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Шина SPI. АЦП посылает прерывание на мастер и тот забирает данные. Драйвер АЦП складывает отсчёты в кольцевой буфер и выдаёт пользователю через соответствующий программный интерфейс.

Вот мне инетерсно: по ТЗ требуется вести расчёты каждую миллисекунду(каждые 100 отсчётов) и складывать результат в массив.

Получится ли такое на Linux?

специалист нашего отдела мне сказал что нужно просто буфер отсчётов сделать длиннее. Пока не понимаю как это связано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...