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

 
 
> Вопрос по работе с АЦП MCP3301, Прерывание в процессе управления MCP3301
Nikkolaj
сообщение May 17 2012, 08:53
Сообщение #1


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

Группа: Участник
Сообщений: 147
Регистрация: 25-09-08
Пользователь №: 40 467



Добрый день.
У меня такой вопрос.
Работаю с АЦП MCP3301.
Управляю им с помощью программного SPI на частоте 400кГц.
Аппаратный SPI занят другими задачами.
Во время измерения может поступить прерывание, на которое я обязан ответить,
и соответственно прервать посылки на MCP3301.
Спрашивается, на какое время можно прервать посылки на MCP3301 без потери точности измерения ?
В документации сказано, что минимальная частота = 85кГц.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nikkolaj
сообщение May 18 2012, 11:52
Сообщение #2


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

Группа: Участник
Сообщений: 147
Регистрация: 25-09-08
Пользователь №: 40 467



Цитата
Если запихнуть обработчик программного SPI в таймер (сделать что-то на подобие диспетчера задач), то проблемма уйдет сама собой и ничего прерывать не нужно будет....


Спасибо за ответ, идея действительно красивая и неожиданная для меня.
Сейчас просчитывал как её реализовать.
К сожалению для этой задачи она не подойдёт по скорости.
Сейчас у меня время ожидания между действиями составляет 10-12 машинных тактов.
Вставить в это время диспетчер задач не получается.
Наверное диспетчер задач применяется для более медленных задач.
А вообще предложение интересное, возможно применю его в других задачах.
Ещё раз благодарю.


to xemul.
Спасибо за ответ.
Свой предыдущий пост я начал писать до того, как увидел Ваше сообщение,
поэтому получилось такое несколько несуразное смещение ответов. Извините.

Наши расчёты допустимого прерывания практически совпадают.
Это внушает оптимизм.
Попробую делать с прерыванием, тем более что его удалось уменьшить, и он будет не больше 10мкс.


Go to the top of the page
 
+Quote Post
xemul
сообщение May 18 2012, 12:21
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Nikkolaj @ May 18 2012, 15:52) *
Спасибо за ответ, идея действительно красивая и неожиданная для меня.
Сейчас просчитывал как её реализовать.
К сожалению для этой задачи она не подойдёт по скорости.
Сейчас у меня время ожидания между действиями составляет 10-12 машинных тактов.
Вставить в это время диспетчер задач не получается.
Наверное диспетчер задач применяется для более медленных задач.

Для программного SPI без ограничений по частоте сверху такое решение избыточно - таймер генерит прерывания в несколько мкс, соизмеримые задержки на обслуживание прерывания, кучка дополнительного кода.
Подобное решение в виде конечного автомата (на двух прерываниях - таймера и внешнего входа) удобно использовать, н-р, для ванварного мастера (или слэйва, если частота контроллера позволяет). "Диспетчер задач" звучит гордо, но сводится он в этом случае к таблицам переходов в соответствии с графом автомата.
Go to the top of the page
 
+Quote Post



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

 


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


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