Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по LPC1768
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
enclis_
Собственно вопрос - Имеется непереодический сигнал, который содержит в себе импульсы длительностью 1 мкс амплитудой от 0.1 до 3 В, время между импульсами произвольно, но не менее чем 1 мкс. Возможно ли с помощью LPC1768 распознать эти импульсы, измерить их амплитуду с помощью встроенного АЦП и послать эти значения (хотя бы старшие 8 бит) по USB на компьютер, где эти импульсы будут записываться в тестовый файл?
rezident
Нет. Импульсы амплитудой 0В распознать невозможно. Никаким существующим АЦП.
enclis_
исправил)
rezident
Все равно ответ - нет. Быстродействие АЦП LPC176x - 200kSPS. А для распознавания только собственно наличия импульса длительностью 1мкс, от АЦП требуется быстродействие как минимум 2MSPS. Для измерения же амплитуды нужно еще вдвое большее быстродействие. Ситуацию может упростить наличие внешнего УВХ, которое сможет "продлить" импульс, чтобы имеющийся в LPC176x АЦП успел измерить.его амплитуду.
Кстати, про амплитуду. Под амплитудой вы имеете в виду пиковое значение сигнала?
enclis_
из документации на LPC1768 я понял, что время преобразования АЦП составляет 1 мкс. под амплитудой я понимаю пиковое значение сигнала.
rezident
Цитата(enclis_ @ Oct 22 2010, 04:35) *
из документации на LPC1768 я понял, что время преобразования АЦП составляет 1 мкс.
Откуда вы это взяли? См. вырезки из datasheet и user manual. 13MHz/65cycles=200kSPS.
Цитата(enclis_ @ Oct 22 2010, 04:35) *
под амплитудой я понимаю пиковое значение сигнала.
Чтобы засечь пик нужно попасть на него. Для этого нужно хотя бы одно измерение "до того как" и одно измерение "после того как", чтобы понять - между ними было пиковое значение. 200kSPS дают временное разрешение не лучше 5мкс. А у вас всего-навсего 1 мкс. laughing.gif
wave48
Если только ставить один или несколько компараторов, пороги которых настраиваются ЦАПо, это будет как уровень триггера в осциллографе, и интегрированный сигнал подавать на АЦП. Всё зависит от того зачем нужен этот сигнал.
mdmitry
Может, поможет пиковый детектор со сбросом и компаратор. Компаратор сработал, сбросил пиковый детектор от предыдущего импульса, далее ждет нового импульса.
enclis_
всем большое спасибо за разъяснения и советы! не хочется пропускать импульсы и при этом измерять их амплитуду, поэтому не буду извращаться со встроенным АЦП. Теперь такой вопрос - можно ли решить мою задачу с внешним АЦП - например, с помощью AD7278? А вообще говоря, какая должна быть скорость взятия выборок и полоса пропускания у АЦП для моей задачи?
rezident
Цитата(enclis_ @ Oct 22 2010, 20:53) *
А вообще говоря, какая должна быть скорость взятия выборок и полоса пропускания у АЦП для моей задачи?
Это зависит от формы импульса. В общем случае ограничение Котельникова-Найквиста-Шеннона накладывается. То бишь для обнаружения импульса полоса должна быть как минимум вдвое шире 1/t, где t-длительности импульса. Если t=1мкс, то быстродействие АЦП 2/1мкс=2МSPS. Для измерения в принципе хватит такой же полосы, но нужен внешний пиковый детектор, напряжение которого сможет измерить АЦП в паузе после того, как импульс обнаружен. Если пикового детектора нет, то требования к быстродействию АЦП могут значительно увеличиваться в зависимости от формы импульса.
DpInRock
Вы сначала решите задачу отправки полученных данных.
rezident
Цитата(DpInRock @ Oct 22 2010, 21:31) *
Вы сначала решите задачу отправки полученных данных.
ИМХО это задача второстепенная. Вначале надо определиться с аппаратной возможностью по измерению. Чтобы было измеренное "нечто", которое можно передавать потом в PC smile.gif
DpInRock
USB - вещь очень определенная. Посему, она никак не зависит и не связана с чем-то другим.
Но отжирать ресурсов эта передача будет не слабо. 500К в секунду.

И вот АЦПшные дела делать уже на фоне USB.

Заодно и как отладка будет очень к месту.
Tanya
Цитата(enclis_ @ Oct 21 2010, 22:57) *
и послать эти значения (хотя бы старшие 8 бит) по USB на компьютер, где эти импульсы будут записываться в тестовый файл?

А сколько импульсов Вы хотите запоминать? И ведь время, наверное? Осциллограф хотите сделать?
Раньше выпускался контроллер (ДСП) с АЦП 20 МГц. ADSP 21992 (?)... точно не помню.
enclis_
меня тоже больше интересует USB, потому что сам я никогда не работал с ним(
Цитата
Но отжирать ресурсов эта передача будет не слабо. 500К в секунду.

500К в секунду каких единиц?
Цитата
Осциллограф хотите сделать?

Мне не нужен осциллограф, скорее самописец. мне нужно знать, что пришел импульс, когда он пришел и его амплитуду.
Цитата
Раньше выпускался контроллер (ДСП) с АЦП 20 МГц. ADSP 21992

Сейчас решаю вопрос могу ли сделать все на LPC1768, потому что у меня есть девкит с ним. Если не получиться то буду переходить на другой контроллер, может быть даже на DSP.
Tanya
Цитата(enclis_ @ Oct 22 2010, 20:23) *
меня тоже больше интересует USB, потому что сам я никогда не работал с ним(

500К в секунду каких единиц?

Мне не нужен осциллограф, скорее самописец. мне нужно знать, что пришел импульс, когда он пришел и его амплитуду.

А ширину импульса?
enclis_
1 мкс. в самом начале писал. прямоугольной формы.
DpInRock
Цитата
500К в секунду каких единиц?

Это вы у меня спрашиваете?
Время - 4 байта, амплитуда - 1 байт. Итого 5 байт на импульс.
Максимальная частота - судя по вашим словам - 500кГц.
Итого - 2.5М\с. USB не катит. (Теор. достижимая в USB - 1.5M)

Хуже того, АЦП должен работать как заведенный на частоте не ниже 1МГц. А проц у вас 100Мгц.

Тут есть над чем подумать.
Tanya
Цитата(enclis_ @ Oct 22 2010, 20:28) *

Вы так и не сказали, какова максимальная длина записи... И что потом с этой пропастью цифр делать...
enclis_
Цитата(DpInRock)
Время - 4 байта, амплитуда - 1 байт. Итого 5 байт на импульс.
Максимальная частота - судя по вашим словам - 500кГц.
Итого - 2.5М\с. USB не катит. (Теор. достижимая в USB - 1.5M)

Там реально за 1 секунду 500к импульсов не свалятся, а только лишь 20-25к не больше, но они могут идти очень близко друг к другу, но менее 1 мкс. Извините, что завел Вас в некоторое заблуждение не написав об этом сначала.

Цитата(DpInRock)
Хуже того, АЦП должен работать как заведенный на частоте не ниже 1МГц. А проц у вас 100Мгц.

Я уже понял, что нужно использовать внешний АЦП.

Цитата(Tanya)
Вы так и не сказали, какова максимальная длина записи... И что потом с этой пропастью цифр делать...


Все это делается ради одного научного эксперимента. Максимальная длительность записи 3 часа. Все полученные данные записываются в текстовый файл или несколько текстовых файлов, а затем обрабатываются в каком-либо математическом пакете.
rezident
Цитата(enclis_ @ Oct 23 2010, 00:15) *
Все это делается ради одного научного эксперимента.
Что-то с ЯКР связанное?
Цитата(enclis_ @ Oct 23 2010, 00:15) *
Максимальная длительность записи 3 часа. Все полученные данные записываются в текстовый файл или несколько текстовых файлов, а затем обрабатываются в каком-либо математическом пакете.
Записи на 1,25ГБайт тянут, однако. cranky.gif
enclis_
нет, не ЯКР, хотя где-то рядом. Да, получаются большие объемы данных, но их обработать уже не проблема, самое главное не пропускать импульсы в течении этих 3-х часов.
rezident
Цитата(enclis_ @ Oct 23 2010, 01:06) *
самое главное не пропускать импульсы в течении этих 3-х часов.
Я все же настаиваю на своем предложении - сделать УВХ и стробируемый отдельным детектором обнаружения наличия импульса (быстродействующий компаратор, грубо говоря) синхронный запуск преобразования АЦП.
enclis_
честно говоря, плохо представляю, что Вы имеете ввиду. Объясните, пожалуйста, подробнее.
rezident
Компаратор послужит детектором - определит наличие импульса, а АЦП, запустившись от сигнала компаратора, сделает измерение амплитуды импульса. Но для того, чтобы измерение было корректным и точным нужен пиковый детектор и устройство выборки-хранения, которое на время измерения будет "помнить" амплитуду сигнала, зафиксированную пиковым детектором во время действия импульса. Потому, что строго "прямоугольным" импульс бывает только в воображении дилетантов smile.gif То бишь, измерять нужно после окончания импульса, в промежутке между ним и следующим импульсом. Для этого и потребуется УВХ. Хотя если вам заранее известно, что импульс именно дельтаобразный и максимальная ампитуда у него в центре, то можно запускать преобразование АЦП, сделав паузу от начала импульса в 0,5мкс. Многие АЦП типа SAR содержать УВХ внутри себя.
DpInRock
Сложно все. Дохлый номер ловить программно микросекундные импульсы.

Наверняка амплитуду надо знать примерно.
А время - точно.

Есть параллельные ацп, очень быстрые 6 разрядные типа AD9066.
Соединяем АЦП с портом каким-нибудь. Программируем пины на прерывание по изменению. И по первому же прерыванию - запрещаем оные и со всей силы начинаем смотреть за показаниями. Выбираем максимальное, капчурим время, и ждем когда обнулится все (Можно и нужно младший разряд не использовать....). После чего опять все разрешаем.

Если импульсов всего 25К, то просто писать их в память какую-нибудь. Естественно, передавать их куда-то при таком способе будет не так просто. Хотя и можно. Я бы передавал по UART без подтверждения. Затрат по прерываниям - никаких.
При достаточном буфере - успеет. Даже данные можно по пять раз передавать для надежности... Хотя за все время использования уартов мне ни разу не встретилась ошибка по передаче... Т.е. канал 232 с компом выглядит идеальным в практике (моей).
dac
будьте проще smile.gif и люди потянутся
варианты:
1. если нужно знать время импульста то LPC однозначно не проходит, т.к. в худшем случае только поток амплитуд будет 8Мбит/с - через FSUSB не прокачаете ни LPC, никаким другим, так как еще нужны метки времени - 6байт чтоб обеспечить разрядность 1мкс за три часа, т.е. поток увеличивется до 40МБит/с
2. берете проект USBee (на казусе) - там ацп 24 мгц через HSUSB и на компе этот поток обрабатываете. только софтовую оболочку допатчиваете, вроде такая возможность есть.
3. мощный проц >300мгц с параллельной шиной на 32бит а несколькими же параллельными флэшами на шине вариант
4. если средний поток значительно меньше пикового, можно попробовать складывать данные в кольцевой буфер и оттуда отдавать через тот же FSUSB. тогда LPC1768 вполне потянет с внешним ацп. какой должен быть средний поток посчитайте сами.
enclis_
Цитата(rezident @ Oct 23 2010, 02:25) *
Компаратор послужит детектором - определит наличие импульса, а АЦП, запустившись от сигнала компаратора, сделает измерение амплитуды импульса. Но для того, чтобы измерение было корректным и точным нужен пиковый детектор и устройство выборки-хранения, которое на время измерения будет "помнить" амплитуду сигнала, зафиксированную пиковым детектором во время действия импульса. Потому, что строго "прямоугольным" импульс бывает только в воображении дилетантов smile.gif То бишь, измерять нужно после окончания импульса, в промежутке между ним и следующим импульсом. Для этого и потребуется УВХ. Хотя если вам заранее известно, что импульс именно дельтаобразный и максимальная ампитуда у него в центре, то можно запускать преобразование АЦП, сделав паузу от начала импульса в 0,5мкс. Многие АЦП типа SAR содержать УВХ внутри себя.

У меня в голове что-то такое рисуется, я правильно понимаю?

Нажмите для просмотра прикрепленного файла

Сразу вопрос по выбору компонентов OP1, OP2, T1, T2, Z1 и U2 )

Цитата(DpInRock @ Oct 23 2010, 03:14)
Сложно все. Дохлый номер ловить программно микросекундные импульсы.

Наверняка амплитуду надо знать примерно.
А время - точно.

Есть параллельные ацп, очень быстрые 6 разрядные типа AD9066.
Соединяем АЦП с портом каким-нибудь. Программируем пины на прерывание по изменению. И по первому же прерыванию - запрещаем оные и со всей силы начинаем смотреть за показаниями. Выбираем максимальное, капчурим время, и ждем когда обнулится все (Можно и нужно младший разряд не использовать....). После чего опять все разрешаем.


Идея хорошая - надо будет попробовать как будет время.

Цитата(dac @ Oct 23 2010, 16:40)
2. берете проект USBee (на казусе) - там ацп 24 мгц через HSUSB и на компе этот поток обрабатываете. только софтовую оболочку допатчиваете, вроде такая возможность есть.
3. мощный проц >300мгц с параллельной шиной на 32бит а несколькими же параллельными флэшами на шине вариант
4. если средний поток значительно меньше пикового, можно попробовать складывать данные в кольцевой буфер и оттуда отдавать через тот же FSUSB. тогда LPC1768 вполне потянет с внешним ацп. какой должен быть средний поток посчитайте сами.


Спасибо за предложение, но бюджет средств ограничен, поэтому использовать не могу - хотя очень хотелось бы
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.