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

Внешний таймер или встроенный в МК?


Рекомендуемые сообщения

Доброго времени суток!! Есть задача, измерить время между импульсами с точностью до периода 50МГц - ового генератора. Этим периодом ограничена и минимальная задержка между импульсами.

Уже собрал в proteus-е схему на синхронных счетчиках и стал разбираться с МК, что бы управлять этой схемой. Оказалось в МК есть встроенный таймер, который может считать со скоростью тактового генератора МК.

Вопрос: Возможно ли используя встроенный таймер МК на частоте >= 50 МГц нормально померить такую задержку и какие могут быть подводные камни?

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Какой МК использовать собираетесь?

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

9 часов назад, DegNet2 сказал:

Оказалось в МК есть встроенный таймер...

Проще реализовать ваше устройство на какой-нибудь простейшей ПЛИС "бюджетной" серии. Тем более, что

9 часов назад, DegNet2 сказал:

Уже собрал в proteus-е схему на синхронных счетчиках

 

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

6 минут назад, hasl сказал:

только ПЛИС

Совершенно не обязательно. Например, у меня двухядерный Shark легко "левой задней ногой" с таким справлялся, как с дополнительной "факультативной" задачей. :) 

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

ах хах

несомненно, а если взять какой нить i3 так вообще красота будет

средства исполнения выбираются от задач

К тому же, о чем рассуждать если ТС не написал на чем готов выполнять

какое железо возможно использовать

Изменено пользователем hasl
Ссылка на комментарий
Поделиться на другие сайты

11 час назад, DegNet2 сказал:

Возможно ли используя встроенный таймер МК на частоте >= 50 МГц нормально померить такую задержку и какие могут быть подводные камни?

Вполне себе возможно, и без всяких камней.
Проц какой ?

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

5 часов назад, TranceSmile сказал:

Какой МК использовать собираетесь?

На данном этапе не важно. Какой подойдет такой и буду использовать, рассчитываю на ваши рекомендации.

4 часа назад, Lexter сказал:

Проще реализовать ваше устройство на какой-нибудь простейшей ПЛИС "бюджетной" серии.

 

Боюсь без контроллера не обойтись. Будет еще куча периферии, и самое главное обработка результата.

 

2 часа назад, Alex сказал:

Вполне себе возможно, и без всяких камней.

По поводу камней, интересует частота с которой я могу считывать состояние входа контроллера.

Она равна частоте дискретизации АЦП или для цифровых сигналов тактовой частоте контроллера?

И мне в некоторых случаях придется различать разницу между импульсами равную одному периоду генератора, соответственно равную единственному инкременту счетчика, а мне еще и прочитать нужно значение счетчика из регистра.

Всвязи с чем вопрос: 50 МГц-ового Мк будет мало? Или время на чтение регистра всегда фиксировано и это приведет к систематической погрешности, которую потом можно нивелировать?

Первый импульс в моей схеме инициирует контроллер. Я так понимаю его можно послать по прерыванию когда счетчик обнуляется и ждать второй импульс. И по приходу второго импульса на один из входов МК, мне нужно прочитать регистр счетчика таймера. Я правильно понимаю?

Или проще не колупать мозги и оставить внешние синхронные счетчики? Но так получится очень громоздко... Т.к. мне нужно 17 бит отсчитывать..

 

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

@DegNet2 , Ваш пост похож на какую то кашу. Всё смешалось в кучу...
Какой АЦП, какие погрешности, какой первый импульс, "какая блохааааа", ... ?
А так всё хорошо начиналось - чёткий и правильно поставленный вопрос. И тут понесло...

Задайте один (ну или пару) НОРМАЛЬНЫЙ вопрос !

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

Только что, Alex сказал:

@DegNet2 , Ваш пост похож на какую то кашу. Всё смешалось в кучу...

Да так и есть. С МК дела никогда не имел от того и каша в голове.

Давайте по порядку. Сейчас это работает так.

МК по команде пользователя генерирует ОДИН прямоугольный импульс. Этот импульс устанавливает выход D-триггера в высокий уровень. Выход этого триггера подключен в качестве разрешающего сигнала для счётчиков и они начинают считать. Затем через некоторое время из другой схемы приходит еще одни импульс который возвращает триггер в 0 и счетчики перестают считать.

Видимо я что то сильно не понимаю в МК. По этому прошу в общих чертах накинуть алгоритм реализации сего чюда техники используя только МК и его встроенный таймер. И после, наверное я смогу задать более конкретные вопросы. Спасибо))

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

PIC18 (картинка из ДШ на 26K22):

2018-05-28_15-56-58.thumb.png.b69510d6fc1590161947a145889b792d.png

Всё происходит на аппаратном уровне.

Только тут внешний вход один, а триггер представляет из себя - делитель на 2. Т.е., можно сделать, чтобы по каждому внешнему импульсу счёт стартовал/останавливался.
Если триггер не задействовать, то внешним сигналом будет просто разрешение счёта.

Было время, я как то разгонял этот проц до 100 Мгц. И функционировал он нормально по всему диапазону питания.
Так что, для домашних поделок, можно таймеры и на 100 Мгц тактировать запросто.

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

5 часов назад, DegNet2 сказал:

а мне еще и прочитать нужно значение счетчика из регистра.

Не только прочитать, но и обработать. Прикиньте, сколько команд займёт ваша обработка.Определитесь с минимальным периодом между измерениями "времени между импульсами", посчитайте, уложится ли туда ваша обработка, какая должна быть длительность выполнения одной команды контроллера. Исходя из этого подберите контроллер с трубуемым быстродействием.

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

Если брать обычный счетчик, то да придётся мирится с задержками на чтение и прочее. Но ваша задача не уникальна, её уже давно решили в аппаратном виде - для этого таймер должен работать в режиме захвата. Так к примеру работают все сенсорные кнопки и емкостные тач-скрины за счет высокоточного измерения времени заряда емкости, берёте любой контроллер поддерживающий библиотеку/технологию qtouch и в нём точно будет таймер с нужными режимами. в ATMEGA8 и её родственников такой периферии нет, они слишком просты, но в старших сериях точно есть. В более сложных контроллерах есть даже аппаратный умножитель частоты, и есть возможность работы этих таймеров на частотах счета до 100Мгц при тактовой частоте ядра к примеру 20Мгц.

Посмотрите ещё в сторону STM32, там периферия ещё сложнее и универсальнее. Может, даже не один десяток библиотек написано под ваш случай.

Учение - изучение правил. Опыт - изучение исключений.

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

16 часов назад, Alexeyslav сказал:

для этого таймер должен работать в режиме захвата.

Спасибо большое, это то что нужно! Делаю режим захвата, должно получиться без проблем...

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

В 28.05.2018 в 00:33, DegNet2 сказал:

Возможно ли используя встроенный таймер МК на частоте >= 50 МГц нормально померить такую задержку и какие могут быть подводные камни?

Разделите входную частоту на 10 и считайте любым МК. Надеюсь, Вам не требуется снимать показания 50 000 000 раз в сек?

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...