Отговори на тема  [ 21 мнения ]  Отиди на страница 1, 2  Следваща
PIC16F1826 вграден компаратор и цифрови импулси. 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Май 04, 2014 8:34 pm
Мнения: 9
Мнение PIC16F1826 вграден компаратор и цифрови импулси.
Здравейте,

Скоро се сдобих с АМ2302 - комбиниран сензор влага и температура с цифров изход. Модулацията на данните е чрез периода на импулса с високо ниво. Идеята ми е да използвам тригера на TMR1 от компаратора, за да измервам периода на импулсите , като съм конфигурирал сравняване с вътрешен източник на напрежение - 2.048v и вход на такт към TMR0 при високо ниво от изхода на компаратора. Проблема е, че не "хваща" цифрови сигнали. За теста му подавам логически нива от Logic tool-a на програматора. Би трябвало като подам високо ниво, стойността на таймера да започне да се повишава, но това не се случва. Като остава входа на контролера свободен (свързан към нищо) започва хаотично тригериране на входа на таймера. Пробвах да конфигурация на входния порт като аналогов и цифров, но без промяна на състоянието. Започвам да си мисля че за да настъпи сравняване, трябва прехода между състоянията да е плавен. Моля по-запознатите колеги да помогнат.

Благодаря предварително!


Нед Май 04, 2014 8:53 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Няма нужда прехода да е плавен, но по принцип и от компаратор май нямаш нужда, не съм го гледал тоя сензор какво подава. За да работи като компаратор по спомен входът трябва да е конфигуриран като аналогов, отдавна не съм писал за пикове, не помня нещо друго правеше ли се ... все ми е на акъла да го скипнеш, ама то това е при 51-те на сигнал, при пика май нямаше такова нещо. Я дай да видим как го конфигурираш.


Нед Май 04, 2014 9:20 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Юни 25, 2010 3:18 pm
Мнения: 363
Местоположение: Varna
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Не ми стана много ясна постановката.
Aко искаш таймера да щтрака само когато изхода на компаратора е 1 (gate control), то това според datasheet-a може да стане само с timer1 - страница 179 фигура 20-1.
С таймер 0 може само да бройш импуслите на T0CKI.
Погледни и "Capture Mode" на страница 206.


Нед Май 04, 2014 11:20 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Май 04, 2014 8:34 pm
Мнения: 9
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Здравейте,
@Stoimen TMR1 имам предвид, по горе съм объркал. CCP не е вариант в случая тъй като схемата е готова и портовете се използват за друго, а и по този начин нещата стават много по лесно, само да успея веднъж да ги подкарам. Другата ми опция е да преместя сензора на PORTB (имам един свободен пин) и да ползвам IOC, но ми се иска първо да разнищя тази мистерия.

@ToHu ето я конфигурацията, някъде може да не отговаря на това, което съм написал в коментара, но пробвах какви ли не варианти вече...

Код:
trisa=  0b00000010; //RA1 input
ansela= 0b00000010; //RA1 analogue input
cm1con0=0b10000110;  //CM1 Enabled; C1VP < C1VN; internal output; not inverted; no hysteresis; asynchronous trigger
cm1con1=0b10100001;  //int on posegde; FVR reff; C12IN1- RA1
t1con=  0b01100001;  //Fosc/4; 1:1; TMR1 Enabled
t1gcon= 0b11000010;  //trigger Enabled; active high; no toggle; gate pin to CM1
fvrcon= 0b11001000;  //FVR Enabled; CM1 Vref=2.048V


Нед Май 04, 2014 11:58 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Май 04, 2014 8:34 pm
Мнения: 9
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Update:

Открих проблема, по надолу в кода съм сложил ред за нулиране на FVRCON като част от отстраняването на един друг проблем и компаратора е оставал с незнаен източник на Vref. :D Сега като го махнах работи както трябва. (party)

Благодаря Ви!


Пон Май 05, 2014 12:13 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Абе нещо ме мързи да ги смятам по байтове и регистри, ето ги по битове :

T1GSS - 10 /comparator 1/
T1GPOL - 1 /count when is high/
TMR1ON - 1 /timer enable/
TMR1GE - 1 /control timer 1 by the gate/
TMR1GIE - 1 /enable gate interrupt/ това ще ти генерира прекъсване като спре да брои
T1GSPM - 0 /gate single pulse mode/
T1GTM - 0 /gate toggle mode/
T1GGO - 1 /timer 1 go /done/ това го слагаш 1 за да почне да брои

Освен тия имаш конфигуриране на клока и прескалера, това вече не знам как е при теб, зависи от честотата на процесора и каква резолюция искаш.

Компаратора:
C1NCH - зависи кой ти е входа който изпозлваш
C1PCH - зависи какъв ти е референса
C1ON - 1 /Comparator 1 on/
C1PO - 1 /Output polarity/ - за да имаш 1-ца когато Входа е с по висок ниво от референса
C1SYNC - 1 /Sync with timer 1/

Порта
ANSEL за съответните два порта трябва да е 1 ....
Май е това ....


Пон Май 05, 2014 12:28 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Впрочем, ANSEL-а не е задължителен. Поне не и на тия, с които съм си имал работа. Сетва се за да изключи цифровия вход с цел по-ниска консумация заради аналоговите нива на пина + някои други подробности. Мисълта ми е че обикновено работи и при сетнат и при изключен ANSEL на конкретния крак. Налагало ми се е да ползвам крака конфигурирани за цифрови като аналогови - на PIC18 да речем нямаше бит за всеки крак поотделно ами регистър за селектване кой да е последния аналогов вход, започвайки от AN0. Ама като искаш да ползваш някоя от перифериите, изведена на някой аналогов крак, нямаш избор, защото трябва да го пуснеш като цифров, което пък конфигурира като цифрови всичките аналогови крака след него. На 24 не помня, но на PIC32 вече си е с битове за всеки аналогов крак и можеш да сетваш всеки поотделно както ти трябва.


Пон Май 05, 2014 2:36 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Май 04, 2014 8:34 pm
Мнения: 9
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
ToHu написа:
TMR1GIE - 1 /enable gate interrupt/ това ще ти генерира прекъсване като спре да брои


Благодаря ти, не бях прочел за тази опция, бях конфигурирал прекъсване от компаратора, но това изглежда много по практично.


Пон Май 05, 2014 1:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
То аз никъде не видях в даташитовете да има модулация между другото... На всякъде пише че е някакво подобие на 1-wire двупосочно. Тамън си мислех че тоя датчик може и да ми свърши работа ама не би... Ако не е тайна кажи от къде и за колко пари го намери че на мене в момента ми трябва нещо и не мога да го намеря тва дето ми трябва.

Иначе аз в момента работя по датчик който ще вади два PWM-а на ~500Hz за влага и температура. Влагата е с Honeywell HCH-1000 а температурата с MCP9701. С едно малко процесорле ги обработвам двете и ги пускам като пвм-и. Та за четенето на тия пвм-и баш гейт функциите на таймерите ползвам. За сега съм го направил на всеки 16 импулса да записва целия период за тайм бейс, а на 128 импулса да смята средната стойност на влезлия пвм.

Спарки - всички нови 12-16-18-ки дето имат аналогови входове имат и ANSEL побитово за всеки порт.пин. Освен това никак не е зле да си се сетват както трябва - на някой пинове има и аналогови изходи - къде мижавия им дак, къде вътрешния реф. Просто според мен си е добра практика, квото си е аналогово да си му се сетне ансел-а.


Пон Май 05, 2014 1:54 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Cekins написа:
Спарки - всички нови 12-16-18-ки дето имат аналогови входове имат и ANSEL побитово за всеки порт.пин. Освен това никак не е зле да си се сетват както трябва - на някой пинове има и аналогови изходи - къде мижавия им дак, къде вътрешния реф. Просто според мен си е добра практика, квото си е аналогово да си му се сетне ансел-а.


Ама разбира се че е така. Просто понякога нямаш избор.

Не помня точния контролер, но някаква 18-ка беше. Без "К" в името, тоест от по-дъртичките. Ако помня еквивалента на ANSEL-а му беше в регистрите на ADC-то, и беше точно това - сетва до кой аналогов вход наистина е аналогов. Което дизейбълваше цифровия изход и вход и при четене четеше нули. Понеже аналоговите ми крака не бяха поредни, което видях в последствие, пък и нямах особен избор, сложих да са аналогови максималния възможен брой според схемата, а останалите конфигурирах като цифрови входове, след което всичко си тръгна без изненади. В чаршафа си и пишеше че може да пострада консумацията от това, в смисъл да се повиши. Може би и някакви дребни офсетчета и прочие неща може да се случат, но е работещ вариант, когато нямаш друг избор.


Пон Май 05, 2014 3:02 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Май 04, 2014 8:34 pm
Мнения: 9
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
@ Cekins Можеби неправило се изразих, както казах изхода е цифров и предава 1 и 0 съответно с по-широк и по-тесен импулс. Бях ги купил от али експрес, но не помня какви пари.. евтини бяха.


Последна промяна predator310 на Пон Май 05, 2014 7:42 pm, променена общо 1 път



Пон Май 05, 2014 4:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Колегата имаше в предвид че сензора за който говориш е чифров, не PWM, сега го погледнах и наистина е такъв, изхода е двупосочна дата, нещо като 1wire.


Пон Май 05, 2014 5:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Абе цената на която попаднах без да съм ровил много беше $15 - та тая цена е точно 10 пъти по-голяма от това което търся. Та си зависи кой какво разбира под ниска цена. Досега цена под 5-6 евро за цифров датчик (и то за количества) не съм срещал. Ако Honeywell не бяха спряли HCH-1000 от производство, мислех тия дето аз ги правя да си ги пусна като отделни датчици - сега ще си вървят в комплект с уредите си и колкото бройки ми изнамерят ще ги изконсумирам - пък после ще му мисля ко ше прая.
Идеята да се търкаля цифров сигнал по кабел напоследък хич не ми е присърце. На тоя пише 100 метра. Ама това ми се струва много пресилено - по вероятно на 10 метрая и да почнат да се ръсят грешки. Същата история е и I2C - пускал съм го и на 50 метра кабел ама не звучи сериозно тая работа.


Пон Май 05, 2014 5:42 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Май 04, 2014 8:34 pm
Мнения: 9
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Никъде не съм казал, че е PWM сензор. Ето извадка от даташита "When AM2302 is sending data to MCU, every bit's transmission begin with low-voltage-level that last 50us, thefollowing high-voltage-level signal's length decide the bit is "1" or "0"" Дали е 1 или 0 предавания бит се определя от широчината на импулса с високо ниво.. това съм написал и по горе..


Пон Май 05, 2014 7:40 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: PIC16F1826 вграден компаратор и цифрови импулси.
Ммммм, да де ама там сигурно имаш манчестър или нещо от сорта, за тая цел не ти трябва да мериш времената, дори самите времена не са много интересни като абсолютни величини, декодинга не е зор има няколко варианта, но това да мериш запълването .. не знам, лично на мен ми изглежда доста излишно, но ако върви изцяло хардуерно може пък и да е ОК не знам, никога не съм го правил така :)


Пон Май 05, 2014 9:58 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни