|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 3:23 pm
Максимална дискретизираща честота за PIC16/PIC18?
| Автор |
Съобщение |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
 Максимална дискретизираща честота за PIC16/PIC18?
Каква е максималната дискретизираща честота на вградените АЦП-та на пиковете PIC16/PIC18? Не успях да има разбера формулата от документацията, с която изчисляват времето Tad за четене на един бит. За сега съм се спрял на PIC16F1503, та за него пишат: Tc - време на зареждане на кондензатора: Tc = -Chold(Ric + Rss + Rs)ln(1/2047) = -12.5pF(1kOhm + 7KOmh + 10kOhm)ln(0.0004885), където Rs е съпротивлението на източника на сигнала, а другите са вътрешни и не зависят от мен. В горната формула са стойностите от примера на microchip и на края получават 1.12us, което аз не мога да го получа от тая формула Задачата е VU meter/ PPM meter, който да може да хване до 20KHz, т.е. дискретизиращата честота трябва да е 40KHz. Сигналът се буферира от един операционен усилвател и отмества, така че да е около 2V (или някъде там) и идеята е след това всичко останало да се прави софтуерно (изправяне, изчисляване на ефективна стойност и тн.). Вътрешното съпротивление на източника, което се вижда от пика ще е само няколко ома, да кажем 10. Тогава ще може ли пика да чете достатъчно бързо? Идеята е да бъде максимално ниска цената на всичко, затова външно АЦП не ми върши работа.
_________________ for(;;) DoFire();
|
| Вто Мар 27, 2012 3:08 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Нямам представа от въпросните пикове но 25 uS сигурно ще са му предостатъчни да направи преобразуването. Това, което може би ще ти е по-трудно да определиш е равноотдалечеността на sample-ките  (т.е. да са на всеки 25uS, а не веднъж на 20 следващия път на 30, ако това е докарваемо, т.е. да е всеки път точен, еднакъв брой клоци).
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Мар 27, 2012 3:16 pm |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Не е проблем, това време аз го определям.
_________________ for(;;) DoFire();
|
| Вто Мар 27, 2012 3:30 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Е, ако можеш да определяш момента на "hold" на входа на ADC-то всичко е наред. За скоростта забележи че не знам де, само предполагах  . Аналоговата част на входа ще ти трябва да е повече от просто отместване, някакъв antialiasing филтър няма да ти се размине навярно. Но за VU метър едва ли ще гониш някаква безумна точност та може и не особено зорест да е.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Мар 27, 2012 3:42 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Пише го в даташийта  Не бъркай семплирането с акуизишъна. Това време 1,12 us е времето за зареждане на семплинг кондензатора. Тad е толкова колкото го настроиш примерно ако си на 20 мегаклерца и сложиш 32 делител сам си сметни колко става. За 10 битов код мисля че трябваха 12 Tad. За да получиш точно 40 килохерца семплинг честота обаче трябва да си настроиш един таймер да ти прави акуизишъна и един да ти генерира 40-те килохерца - това с 16-ка. С 18-ка с ауто акуизишън става по лесно - там може да се зададе колко Tad да изчака след като се пусне ацп-то. В дата шита на стр. 302 ги пише точно какви са всички времена за ацп-то - Tad трябва да е минимум 1 us. За Taq пишат 5us. Значи 12*1+5 в най-добрия случай можеш да постигнеш около 20us на семпъл - ама процесора ще се замае от данни 
|
| Вто Мар 27, 2012 6:53 pm |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Мерси, ще го чета пак даташита. Ще има филтър, един кондензатор и айде, не ми трябва голяма точност. За замайването с данни се надявам да се докарат нещата, защото стойностите ми трябват само да ги натрупвам и да смятам ефективната стойност по един бърз алгоритъм.
_________________ for(;;) DoFire();
|
| Сря Мар 28, 2012 9:17 am |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Браво! Точно така не се прави  Така може да постигнеш стабилно грешна стойност, но не и вярна 
_________________ Хайде де!
|
| Сря Мар 28, 2012 9:29 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Да се скъсаш с тоя пик няма да можеш да направиш повече от 50-60 к.семпъла - а те ич няма да са достатъчни за добро измерване. И ефективна стойност за сигнал с произволна форма се смята RMS (в случая кондензатора ще пречи наистина). Обаче искам да видя пик16 дето ще смята RMS със такава скорост - а тя, би било добре, да е поне 10 пъти честотата на сигнала - демек 200kHz. За тази задачка може да е по удачен вариант някоя 24-ка - още повече че 24-ките имат гъдели по АЦП-то - като аутосемплинг, което в твоя случай (заедно и с буфера) ще е супер 
|
| Сря Мар 28, 2012 3:07 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
За аудио VU метър 40kSpS е повече от достатъчно. Antialiasing филтър кой знае какъв едва ли ще му трябва, то над 20 kHz компоненти в сигнала няма да има и без него навярно. Да мери RMS въобще не е сложно, просто трябва да трупа площта за известно време назад (след изправяне, което е още една операция на sample). Въобще задачата е толкова елеметарна и тривиална - все пак 1% точност ще е пъти по-добре от нужното а не е проблем да се постигне - че не си струва приказките, като го съшие да покаже резултата и готово  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Сря Мар 28, 2012 3:41 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Само да попитам: АЦП-то на евтините ПИК-ове има ли си вграден S&H? Нали все се каня да пикоборствам, току виж съм почнал след някой месец. А ако пък няма - не става и в случая.
|
| Сря Мар 28, 2012 10:18 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Има си  всичко ...
|
| Сря Мар 28, 2012 10:28 pm |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Бонго пикоборствай смело! Cekins как реши точно 10 пъти? Повече от честотата на Найкуист няма смисъл, все пак няма да го гледам сигнала, за да ми трябват повече точки. tgi точност от 1% не ми трябва, индикаторът е стълбица от 16 светодиода през 3dB да кажем, това още не съм го изяснил. Май по-трудно е да се направи нещо с оптималната точност за задачата, от колкото да се гонят някакви върхове Даже не ми трябват и 10 бита, динамичния диапазон, който гоня е около 40 dB. 7 бита дават 42dB. За тестване ако подавам от сигнал генератор различни честоти с еднаква амплитуда и следя за еднакви показания дали ще свърши работа? И друг въпрос - да кажем, че без сигнал отместването на входа на АЦП-то се чете като 512, т.е. това ми е "нулата" и спрямо нея изправям. Примерно ако прочета 1000, изваждам 512, ако получа 100, вадя 100 от 512. Та тази "нула" предполагам няма да е много точна, има ли значение ако има грешка, все пак това, което не е отгоре ще отиде отдолу, а на мен ми трябва енергията на сигнала, не пиковите стойности?
_________________ for(;;) DoFire();
|
| Чет Мар 29, 2012 9:48 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
 |  |  |  | MidNighT_SpiRiT написа: ... И друг въпрос - да кажем, че без сигнал отместването на входа на АЦП-то се чете като 512, т.е. това ми е "нулата" и спрямо нея изправям. Примерно ако прочета 1000, изваждам 512, ако получа 100, вадя 100 от 512. Та тази "нула" предполагам няма да е много точна, има ли значение ако има грешка, все пак това, което не е отгоре ще отиде отдолу, а на мен ми трябва енергията на сигнала, не пиковите стойности? |  |  |  |  |
Е нулата ще трябва да я калибрираш някак, може би еднократно на платка. Инак при нулев входен сигнал ще имаш ненулев резултат. Сигналът спокойно може да ти е AC вързан. Оттам нататък стига просто да държиш сумата от всички изправени стойности от еди колко си време назад и това е. Можеш и върхова стойност да му кажеш да показва че и да я помни с най-горния LED  . Аз такова бях правил преди мнооого години, цялата логика беше в един 2732 или нещо подобно EPROM, едно 74170 (4x4 dual ported memory...) и може би малко дреболии, е, не правеше RMS ама помнеше най-горната лампичка  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Чет Мар 29, 2012 10:03 am |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Да, това го забравих, че ще показва нещо дори ако няма нищо при отсъствие на сигнал. Но за това имам решение - все пак няма да има непрекъснато сигнал, ще има и паузи. При достатъчно дълга пауза (еднакви стойности, преди това филтрирани с нискочестотен филтър) се приема, че това е "нулата".
_________________ for(;;) DoFire();
|
| Чет Мар 29, 2012 11:03 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Максимална дискретизираща честота за PIC16/PIC18?
Ами можеш и автонулиране да му направиш така, но за 4-те бита дето ти трябват 1% съпротивления като сложиш и сметнеш всичко както трябва ще си много далече от нуждата от такова  . Но ако го правиш за забава/самоусъвършенстване най-добре му направи и самонулиране, че и калибровка през eeprom-а може да му сложиш  . Пък и няма да нарасне значително общият обем работа от тия неща.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Чет Мар 29, 2012 12:21 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|