|
|
  |
Измерение периода AVR микронтроллером |
|
|
|
May 24 2008, 18:50
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(singlskv @ May 24 2008, 22:35)  Автору нужно было указать не AVR а ARM в качестве базовой платформы, причем желательно LPC(NXP), тогда бы и отношение было более серьезным Ну а если по серьезному, ну вполне такая задачка, только 16бит для 1-1.5 минуты выглядит не реалистично, но и после этой корекции все равно не реалистично а вот это: убивает всякие идеи на корню, за 1.5 минуты при частоте 1Гц будет всего 90 измерений, получить из них 14бит не представляется возможным... Очень может быть что придется использовать ядро ARM  Изначально я и хотел использовать  Только хотелось бы подешевле Насчет 90 измерений. Это же приближенные значения. Т.к. я еще не нашел подходящего алгоритма, то макс. время измерения точно не известно. Но хотелось бы по быстрее. На ПЛИС получалось 5 минут при 14 битах разрешения. Но там была очень сложная схема и пришлось от нее отказаться. Цитата(defunct @ May 24 2008, 22:39)  Может тогда лучше мощность импульса мерять? пропустить импульс через LowPass фильтр (LC) - и мерять напряжение каким-нибудь не очень шустрым, но точным АЦП. Из мощности (при условии что импульс прямоугольный) легко расчитать длительность. Идея довольно интересная. Мне такой принцип измерения нигде не встречалался раньше. Я думаю, что при такой длитетельности и частоте АЦП будет измерять шумы, да и фильтр будет какой-то монстр наверно.
|
|
|
|
|
May 24 2008, 18:57
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(defunct @ May 24 2008, 22:53)  Да нет, на самом деле все довольно просто. импульс заряжает конденсатор - и одновременно дергает MK (за какой-нить INT). МК меряет напряжение на конденсаторе до тех пор пока оно не упадет практически до нуля. Считает мощность. Выводит рез-тат и спит до прихода сл. импульса. Любопытная идея. Но пожалуста какой-нить пример примения, потому что измерения времени все-таки точнее, чем измерение мощности. Не понятно насколько реализуемо. Какую погрешность будут вносить конденсатор (который далеко не идеальный) и АЦП???
|
|
|
|
|
May 24 2008, 18:58
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(lex_84 @ May 24 2008, 22:50)  Очень может быть что придется использовать ядро ARM  Изначально я и хотел использовать  Только хотелось бы подешевле  насчет АРМ это была шутка  при том избытке времени(1сек) на каждое измерение вам подойдет любой мк, а считать при этом можно хоть в ФЗ хоть в ПЗ Цитата Насчет 90 измерений. Это же приближенные значения. А вот с этого момента по-подробнее, Вам что нужно, разрешающая способность в 16(14)бит или точность в 16(14)бит ? Цитата На ПЛИС получалось 5 минут при 14 битах разрешения. Но там была очень сложная схема и пришлось от нее отказаться. Ну на мк Вы быстрее и не получите, хотя если Вы уточните задачку то может чего-нить и можно придумать...
|
|
|
|
|
May 24 2008, 19:07
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(lex_84 @ May 24 2008, 21:57)  Но пожалуста какой-нить пример примения, потому что измерения времени все-таки точнее, чем измерение мощности. Не понятно насколько реализуемо. Не на таких времянках. единицы нс будет гораздо проблемней измерить, чем мощность, следовательно и точность измерения интервала будет хуже. Пример применения можете посмотреть в appnote Analog-to-Digital Conversion Utilizing the AT89CX051 Microcontrollers. ипульс подается на кондер нагруженный резистором (интегратор). кондер медленно разряжается (растягивает импульс) в это время вы неспешно снимаете показания. По идее мощность можно измерить и без АЦП - достаточно только компаратора. Цитата Какую погрешность будут вносить конденсатор (который далеко не идеальный) и АЦП??? Уж точно меньше чем МК который будет пытаться синхронными узлами измерить сигнал, превосходящий его частоту тактирования.
|
|
|
|
|
May 24 2008, 19:20
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(singlskv @ May 24 2008, 22:58)  насчет АРМ это была шутка  при том избытке времени(1сек) на каждое измерение вам подойдет любой мк, а считать при этом можно хоть в ФЗ хоть в ПЗ А вот с этого момента по-подробнее, Вам что нужно, разрешающая способность в 16(14)бит или точность в 16(14)бит ? Ну на мк Вы быстрее и не получите, хотя если Вы уточните задачку то может чего-нить и можно придумать... Не совсем шутка  Все-таки я пытаюсь сейчас реализовать схему ПЛИС+МК. Была надежда что с помощью ARM удастся обойтись без ПЛИС, но не получилось. ФЗ и ПЗ?! Что это за МК которые считают десятичные числа и имеют в составе команд команду DIV??? Это уж какой то слишком хитрый алгоритм получается Если уточнить требования к системе. 14-16 бит разрешающей способности. Хотелось бы чтобы младшие биты были адекватны измеряемому периоду. Макс. значение периода 400 нс, а мининимальное, если снова не наврал  24 пс (для 14 бит) Цитата(defunct @ May 24 2008, 23:07)  Не на таких времянках. единицы нс будет гораздо проблемней измерить, чем мощность, следовательно и точность измерения интервала будет хуже. Пример применения можете посмотреть в appnote Analog-to-Digital Conversion Utilizing the AT89CX051 Microcontrollers.
ипульс подается на кондер нагруженный резистором (интегратор). кондер медленно разряжается (растягивает импульс) в это время вы неспешно снимаете показания.
По идее мощность можно измерить и без АЦП - достаточно только компаратора. Уж точно меньше чем МК который будет пытаться синхронными узлами измерить сигнал, превосходящий его частоту тактирования. Да в этом что то есть. Но требует всестороннего исследования. Это получается аналоговая интерполяции вместо цифровой. Спасибо за идею.
|
|
|
|
|
May 24 2008, 19:29
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(lex_84 @ May 24 2008, 23:13)  ФЗ и ПЗ?! Что это за МК которые считают десятичные числа и имеют в составе команд команду DIV??? Это уж какой то слишком хитрый алгоритм получается  А для вас что принципиально что команда деления будет выполняться не 1 такт а 1000 ? учитывая что у Вас между делениями как минимум 1сек ? Цитата Если уточнить требования к системе. 14-16 бит разрешающей способности. Хотелось бы чтобы младшие биты были адекватны измеряемому периоду. Макс. значение периода 400 нс, а мининимальное, если снова не наврал  24 пс (для 14 бит) ну тогда для 14бит это просто фикция и никакие Цитата Все-таки я пытаюсь сейчас реализовать схему ПЛИС+МК. Была надежда что с помощью ARM удастся обойтись без ПЛИС, но не получилось. ПЛИС Вам здесь не помогут, на нескольких сотнях измерений такое не получить.
|
|
|
|
|
May 24 2008, 19:34
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(singlskv @ May 24 2008, 23:29)  А для вас что принципиально что команда деления будет выполняться не 1 такт а 1000 ? учитывая что у Вас между делениями как минимум 1сек ? ну тогда для 14бит это просто фикция и никакие ПЛИС Вам здесь не помогут, на нескольких сотнях измерений такое не получить. Кстати подобные устройства существуют и без ПЛИС  на одних МК, но к сожалению открытых программ для них я не встречал.
|
|
|
|
|
May 24 2008, 21:58
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(Леонид Иванович @ May 25 2008, 00:38)  Задача очень непростая. Делал на AVR + ПЛИС измерение интервалов с точностью 100 пс. Не могу сказать, что всё хорошо получилось. Довольно много проблем. Использовал принцип аналоговой растяжки импульса и преобразования растянутого интервала в код с помощью счетчика на ПЛИС. Перед каждым измерением аналоговый интерполятор калибровался с помощью сигнала образцовой длительности. Согласен с вами, что задача сложная. В принципе, если не использовать конверторы "время-код" в интегральном исполнении, то остается только вариант с предварительным аналоговым преобразованием. Либо производить растяжку импульса, либо преобразовать длительность импульса в амплитуду напряжения, в ток или заряд конденсатора. Но любое решение получается схематически довольно сложным. Интересно было бы посмотреть на подобные схемы Любопытно у кого-нибудь получалось реализовать на ПЛИС какие нибудь экзотические методы, типа нониусного и т.п???
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|