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

Измерване на ШИМ 100kHz- как?
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=2899
Страница 1 от 1

Автор:  Nikolas_N [ Чет Сеп 14, 2006 10:45 pm ]
Заглавие:  Измерване на ШИМ 100kHz- как?

Здравейте!
Застигна ме следния проблем:
Трябва да измервам дължината на импулса на ШИМ с честота 100KHz.
Пробвах с PIC18, но достигнах до 50-60KHz
Проблема е, че съм се занимавал само с PIC а сега няма време да уча друго.
Ако може да ме посъветвате нещо?

Автор:  bateAz [ Чет Сеп 14, 2006 11:00 pm ]
Заглавие: 

Откажи се да мериш време. По-добре интегрирай импулсите и мери постоянната съставка.

Автор:  Nikolas_N [ Чет Сеп 14, 2006 11:01 pm ]
Заглавие: 

Това ми е план Б :)

Автор:  sthx [ Чет Сеп 14, 2006 11:10 pm ]
Заглавие:  Re: Измерване на ШИМ 100kHz- как?

С каква точност (разрешаваща способност) трябва да измерваш продължителността на импулса?
Не познавам от близо pic-овете, и не съм сигурен дали са виновни с нещо в случая. Ако имат брояч , който да спира тактуването по фронта на сигнала и го използваш, единственото, което може да се направи е да се увеличи честотата на кварца. Вместо брояч може да се използва регистър за запис на стойността на друг брояч, но това не променя същността на нещата. Ако Pic-а няма такова чудо, ще се наложи използването на външна схемичка с брояч.

Автор:  plameniv [ Чет Сеп 14, 2006 11:36 pm ]
Заглавие:  Re: Измерване на ШИМ 100kHz- как?

Nikolas_N написа:
Здравейте!
Застигна ме следния проблем:
Трябва да измервам дължината на импулса на ШИМ с честота 100KHz.
Пробвах с PIC18, но достигнах до 50-60KHz
Проблема е, че съм се занимавал само с PIC а сега няма време да уча друго.
Ако може да ме посъветвате нещо?

Защо да не става зависи колко точно искаш да отчетеш времето примерно дали е от качващ до качващ или от качващ до падащ фронт ?
Приемаме че например е 50кHz преобразувано във време е 20 мкс, при 20MHz кварц имаш 0.2 мкс за такт, ако ползваш таймера ще се натрупва с тази честота максимум 100 единици в таймера при 20мкс демек точноста ти е 0.2
Правиш следното :
Предварително си настройваш делителя на таймера да отиде към WDT , така таймера остава без делител и ще се тактува с такта на процесора. Сигнала който мериш го вкарваш във входа за прекъсване например при 16F84 е B0 , включваш прекъсването и когато прекъсне прочиташ таймера и го записваш в времена клетка , после нулираш таймера и излизаш от прекъсване , може би ще имаш малко корекция в резултата от инструкциите при прекъсването .
В основната програма си правиш един Loop и си обработваш този темп.

Автор:  didofen [ Пет Сеп 15, 2006 8:10 am ]
Заглавие:  CCP

Ама защо ще се занимаваш с брояч? 16ф872 например има Capture модул, който прави това с брояча автоматично, получаваш направо времето на импулса. Има възможности за настройка на честота на броене, на избор на фронт и т.н. Освен ако нямаш такъв ПИК, защото 84А наистина няма ССР модул. Има пикове даже с два такива модула.
Успех !

Автор:  Cekins [ Пет Сеп 15, 2006 8:16 am ]
Заглавие: 

При всички положения докато не се синхронизира със 100-те kHz няма да има 100% точност, ако това е целта. На мен ми е по интересно за какъв грездей ШИМ-а е 100 kHz.

Автор:  Цецо [ Пет Сеп 15, 2006 10:01 am ]
Заглавие: 

CCP - мериш с точност 1 процесорен такт. Т.е 100ns при 40 МHz пик. Това не стига ли?

Автор:  bateAz [ Пет Сеп 15, 2006 10:24 am ]
Заглавие: 

CCP не щракаше ли само по предния фронт? С него как се мери период ( всъщност : полупериод )?

Автор:  Gogo [ Пет Сеп 15, 2006 10:34 am ]
Заглавие: 

bateAz написа:
CCP не щракаше ли само по предния фронт? С него как се мери период ( всъщност : полупериод )?
ССР щрака по който фронт му кажеш, можеш да му го казваш "в движение", ама ако му го казваш така, при малък (много малък - мързи ме да смятам) коефицент на запълване, е това: "CCP - мериш с точност 1 процесорен такт" (цитат от Цецо) не важи...

Автор:  miro_atc [ Пет Сеп 15, 2006 10:42 am ]
Заглавие: 

Nikolas_N, нещо е много мъгляво какво се опитваш да направиш...

Да не се мъчиш семплираш PCM аудио?

Автор:  Nikolas_N [ Пет Сеп 15, 2006 8:06 pm ]
Заглавие: 

Благодаря на всички :)
Става въпрос за сензор за разстояние на капацитивен принцип. Изхода на схемата е фиксиран на 100KHz.
Пробвах с PIC18F458 пуснат на 4x8MHz, като ползвам двата CCP модула-единият мери нарастващия , а другия падащия фронт.
По разликата съдя за дължината на импулса.
Точността не е нужно да е много висока-0.5us е достатъчна при период 10us
Ще го пусна на 4x10MHz
Ако не стане, ще го интегрирам и после ADC. Лошото е че са 8 ШИМа на 40см разстояние един ог друг :?

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