Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Максимална дискретизираща честота за PIC16/PIC18?
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=9997
Страница 1 от 2

Автор:  MidNighT_SpiRiT [ Вто Мар 27, 2012 3:08 pm ]
Заглавие:  Максимална дискретизираща честота за 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, което аз не мога да го получа от тая формула :evil:

Задачата е VU meter/ PPM meter, който да може да хване до 20KHz, т.е. дискретизиращата честота трябва да е 40KHz. Сигналът се буферира от един операционен усилвател и отмества, така че да е около 2V (или някъде там) и идеята е след това всичко останало да се прави софтуерно (изправяне, изчисляване на ефективна стойност и тн.). Вътрешното съпротивление на източника, което се вижда от пика ще е само няколко ома, да кажем 10. Тогава ще може ли пика да чете достатъчно бързо? Идеята е да бъде максимално ниска цената на всичко, затова външно АЦП не ми върши работа.

Автор:  tgi [ Вто Мар 27, 2012 3:16 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Нямам представа от въпросните пикове но 25 uS сигурно ще са му предостатъчни
да направи преобразуването.
Това, което може би ще ти е по-трудно да определиш е равноотдалечеността
на sample-ките :) (т.е. да са на всеки 25uS, а не веднъж на 20 следващия път на 30,
ако това е докарваемо, т.е. да е всеки път точен, еднакъв брой клоци).

Автор:  MidNighT_SpiRiT [ Вто Мар 27, 2012 3:30 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Не е проблем, това време аз го определям.

Автор:  tgi [ Вто Мар 27, 2012 3:42 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Е, ако можеш да определяш момента на "hold" на входа на ADC-то всичко е наред.
За скоростта забележи че не знам де, само предполагах :-) .

Аналоговата част на входа ще ти трябва да е повече от просто отместване,
някакъв antialiasing филтър няма да ти се размине навярно. Но за VU метър едва
ли ще гониш някаква безумна точност та може и не особено зорест да е.

Автор:  Cekins [ Вто Мар 27, 2012 6:53 pm ]
Заглавие:  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 на семпъл - ама процесора ще се замае от данни :)

Автор:  MidNighT_SpiRiT [ Сря Мар 28, 2012 9:17 am ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Мерси, ще го чета пак даташита. Ще има филтър, един кондензатор и айде, не ми трябва голяма точност. За замайването с данни се надявам да се докарат нещата, защото стойностите ми трябват само да ги натрупвам и да смятам ефективната стойност по един бърз алгоритъм.

Автор:  dan [ Сря Мар 28, 2012 9:29 am ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Браво! Точно така не се прави :) Така може да постигнеш стабилно грешна стойност, но не и вярна :)

Автор:  Cekins [ Сря Мар 28, 2012 3:07 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Да се скъсаш с тоя пик няма да можеш да направиш повече от 50-60 к.семпъла - а те ич няма да са достатъчни за добро измерване. И ефективна стойност за сигнал с произволна форма се смята RMS (в случая кондензатора ще пречи наистина). Обаче искам да видя пик16 дето ще смята RMS със такава скорост - а тя, би било добре, да е поне 10 пъти честотата на сигнала - демек 200kHz. За тази задачка може да е по удачен вариант някоя 24-ка - още повече че 24-ките имат гъдели по АЦП-то - като аутосемплинг, което в твоя случай (заедно и с буфера) ще е супер :)

Автор:  tgi [ Сря Мар 28, 2012 3:41 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

За аудио VU метър 40kSpS е повече от достатъчно. Antialiasing филтър кой знае какъв
едва ли ще му трябва, то над 20 kHz компоненти в сигнала няма да има и без него
навярно.

Да мери RMS въобще не е сложно, просто трябва да трупа площта за известно време
назад (след изправяне, което е още една операция на sample).

Въобще задачата е толкова елеметарна и тривиална - все пак 1% точност ще е
пъти по-добре от нужното а не е проблем да се постигне - че не си струва приказките,
като го съшие да покаже резултата и готово :D .

Автор:  bongo_x2 [ Сря Мар 28, 2012 10:18 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Само да попитам: АЦП-то на евтините ПИК-ове има ли си вграден S&H? Нали все се каня да пикоборствам, току виж съм почнал след някой месец.
А ако пък няма - не става и в случая.

Автор:  Cekins [ Сря Мар 28, 2012 10:28 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Има си :) всичко ...

Автор:  MidNighT_SpiRiT [ Чет Мар 29, 2012 9:48 am ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Бонго пикоборствай смело! :)
Cekins как реши точно 10 пъти? Повече от честотата на Найкуист няма смисъл, все пак няма да го гледам сигнала, за да ми трябват повече точки.
tgi точност от 1% не ми трябва, индикаторът е стълбица от 16 светодиода през 3dB да кажем, това още не съм го изяснил. Май по-трудно е да се направи нещо с оптималната точност за задачата, от колкото да се гонят някакви върхове :?
Даже не ми трябват и 10 бита, динамичния диапазон, който гоня е около 40 dB. 7 бита дават 42dB. За тестване ако подавам от сигнал генератор различни честоти с еднаква амплитуда и следя за еднакви показания дали ще свърши работа?

И друг въпрос - да кажем, че без сигнал отместването на входа на АЦП-то се чете като 512, т.е. това ми е "нулата" и спрямо нея изправям. Примерно ако прочета 1000, изваждам 512, ако получа 100, вадя 100 от 512. Та тази "нула" предполагам няма да е много точна, има ли значение ако има грешка, все пак това, което не е отгоре ще отиде отдолу, а на мен ми трябва енергията на сигнала, не пиковите стойности?

Автор:  tgi [ Чет Мар 29, 2012 10:03 am ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

MidNighT_SpiRiT написа:
...
И друг въпрос - да кажем, че без сигнал отместването на входа на АЦП-то се чете като 512, т.е. това ми е "нулата" и спрямо нея изправям. Примерно ако прочета 1000, изваждам 512, ако получа 100, вадя 100 от 512. Та тази "нула" предполагам няма да е много точна, има ли значение ако има грешка, все пак това, което не е отгоре ще отиде отдолу, а на мен ми трябва енергията на сигнала, не пиковите стойности?


Е нулата ще трябва да я калибрираш някак, може би еднократно на платка.
Инак при нулев входен сигнал ще имаш ненулев резултат. Сигналът спокойно
може да ти е AC вързан.
Оттам нататък стига просто да държиш сумата от всички изправени стойности от еди колко си
време назад и това е. Можеш и върхова стойност да му кажеш да показва че и да я помни
с най-горния LED :) . Аз такова бях правил преди мнооого години, цялата логика
беше в един 2732 или нещо подобно EPROM, едно 74170 (4x4 dual ported memory...)
и може би малко дреболии, е, не правеше RMS ама помнеше най-горната лампичка :) .

Автор:  MidNighT_SpiRiT [ Чет Мар 29, 2012 11:03 am ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Да, това го забравих, че ще показва нещо дори ако няма нищо при отсъствие на сигнал. Но за това имам решение - все пак няма да има непрекъснато сигнал, ще има и паузи. При достатъчно дълга пауза (еднакви стойности, преди това филтрирани с нискочестотен филтър) се приема, че това е "нулата".

Автор:  tgi [ Чет Мар 29, 2012 12:21 pm ]
Заглавие:  Re: Максимална дискретизираща честота за PIC16/PIC18?

Ами можеш и автонулиране да му направиш така, но за 4-те бита дето ти трябват
1% съпротивления като сложиш и сметнеш всичко както трябва ще си много
далече от нуждата от такова :) . Но ако го правиш за забава/самоусъвършенстване
най-добре му направи и самонулиране, че и калибровка през eeprom-а може да
му сложиш :) . Пък и няма да нарасне значително общият обем работа от тия неща.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/