Отговори на тема  [ 22 мнения ]  Отиди на страница Предишна  1, 2
Относно честотомер с PIC 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Авг 24, 2020 3:45 pm
Мнения: 169
Местоположение: София, Люлин 3
Мнение Re: Относно честотомер с PIC
Благодаря за отзивите и мненията. Сега, след като заработи и го тествах, общо взето не толкова зле, но на мен не ми хареса (малко си падам перфекционист). Затова продължавам борбата, като ще ползвам Вашите препоръки. Наистина, между 10 и 20MHz грешката е поносима (калибрирах го на 20MHz), но при 5 - 10MHz вече прекалява. Както писах вече, трябва ми скала, която ще отчита между 3 и 30MHz (КВ), но ще измерва между 15 и 30Mhz, това е разделената на две честота на първи хетеродин. Деленето ще поверя на един тригер, но няма да умножавам по 2, а ще увелича двойно таймбазата и след това ще вядя междинните честоти (двата следващи осцилатори - освен първия, са кварцовани).
Най-много ми допадна идеята да вмъкна проверката за препълване в таймбазата на Bai Ui. Не бях се сетил за тази възможност. Като получа резултат ще споделя получения сорс и резултата, защото ще го дължа на форума.


Сря Май 10, 2023 10:12 am
Профил YIM
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28023
Местоположение: София
Мнение Re: Относно честотомер с PIC
Кой точно пик използваш ? Не виждам защо не минеш на един от по-новите, струва 1-2-3 лв и за много от старите имаш пин-пин съвместими. На първо място, получаваш по-висока работна честота на таймера, няма нужда да му слагаш прескалер и да правиш трикове ако ще мериш 30 Mhz. От друга страна имаш логически клетки които могат да реализират Гейтс, т.е. имаш един таймер който прави Тайм нейза, и управлява Гейта на втори таймер. На трето място таймер 0 ти е 16 битов. Програмата ти ще се сведе до няколко инструкции и по-важно всичко критично около меренето ще е хардуерно, единственото остава са му сложиш читав кварц.


Сря Май 10, 2023 3:45 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 1:21 am
Мнения: 10622
Местоположение: София
Мнение Re: Относно честотомер с PIC
ToHu написа:
...единственото остава са му сложиш читав кварц.

Което ме подсети - дали няма да е по-добре да се използва осцилатора на "радиото"?


Сря Май 10, 2023 4:02 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Авг 24, 2020 3:45 pm
Мнения: 169
Местоположение: София, Люлин 3
Мнение Re: Относно честотомер с PIC
Както обещах, получи се без прекъсване. Забраняват се всички прекъсвание и ключа от бараката е в Timebase:
Код:
TimeBase
   MOVLW   D'199'      ; time base rough tuning
   movwf   PAUSE_1      ;
loop1
   movlw   D'52'      ;
   movwf   PAUSE_2      ;
loop2
   btfss   INTCON,T0IF   ;
   goto   Skip      ;
   goto   Set_Hi      ;
Continue
   decfsz   PAUSE_2,f   ;
   goto   loop2      ;
   decfsz   PAUSE_1,f   ;
   goto   loop1      ;
;
   movlw   D'142'      ; time base fine tuning
   movwf   DCOUNT      ;
loop3
   nop               ;
   decfsz   DCOUNT,f   ;
   goto    loop3      ;
   return      ;
;
Skip
   nop      ;
   nop      ;
   goto   Continue   ;
;
Set_Hi
   incf   FREQ_Hi,f   ;
   bcf      INTCON,T0IF   ;
   goto   Continue   ;
;
;

Въпреки, че сега греши много по малко, но грешката се увеличава с увеличаването на честотата, което го имаше и преди. Използвам сигнал от FC5010 на Tektrnix и сравнявам с РМ6613 на Philips (в kHz):
Код:
PM6613                         PIC16F84A                              %
20000.240                      20001.55                            0.0065
10000.424                      10000.28                           -0.0014
  999.986                        999.80                              -0.0186

Нямам сигнал над 20MHz, но очаквам да бъде от същия порядък. С други думи за индикация на честота в уред или приемопредавател става.


Сря Май 10, 2023 5:23 pm
Профил YIM
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4722
Мнение Re: Относно честотомер с PIC
PIC16F84A :D от спортна злоба ли
я земи некъв "ефтонджос" PIC24 ... асеблера е ахааа почти същия
имаш 32 бит таймер и гейт контрол ... ко се мъчиш

а и от спортна злоба учи и ARM като пример PR2040 Pico за има няма 5 долара платката
а за RF "джвъчки" и други бързи пин реакции има .... ахааа FPGA вътре ( ама не точно FPGA :D )
една програмируема "джаджа" (PIO) дето прави реакция на пин с SYS CLOCK

_________________
main[-1u]={1};


Сря Май 10, 2023 6:01 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 06, 2018 4:18 pm
Мнения: 1228
Мнение Re: Относно честотомер с PIC
ikarlo написа:
Въпреки, че сега греши много по малко, но грешката се увеличава с увеличаването на честотата, което го имаше и преди.


Инструкцията btfss (съответно btfsc) се изпълнява като една инструкция ако условието не е изпълнено или като 2 ако условието е изпълнено - прескачането се реализира като псевдо инструкция с добавяне на nop. Т.е. за да изравниш броят на инструкциите в двата случая (при T0IF = 1 и T0IF = 0) трябва да добавиш един nop в Skip бранша и съотвено да си коригираш тайм базата. Тогава грешката няма да се променя с честотата. Другият вариант е да замениш btfss с btfsc, да размениш местата на goto Skip и goto Set_Hi и съответно да премахнеш един nop от Skip. В този случай трябва да увеличиш тайм базата, което ще доведе до по-добра прецизност.


Сря Май 10, 2023 10:25 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Авг 24, 2020 3:45 pm
Мнения: 169
Местоположение: София, Люлин 3
Мнение Re: Относно честотомер с PIC
Благодаря, веднага ще пробвам. Много досадна е настройката на Timebase чрез препрограмиране (програматора ми не е onboard, работя с два процесора), та вчера, като получих горния резултат, викам "стига за днес". Видях тази особеност на btfss и btfsc щото по таблицата на инструкциите избирах ноповете, но съм пропуснал да помисля повечко.
Използвам edit за да докладвам резултата от вмъкването на още един nop в Skip и съответна корекция с трите константи:
Код:
PM6613                              PIC                                 %
1000.036                         1000.04                         0.0004
10000.175                       10000.18                         0.00005*
20000.886                       20000.47                        -0.0021

"*" показва стойността, при която съм калибрирал.
Брей, сега вече може да се нарече честотомер!
Още веднъж Ви благодаря!


Чет Май 11, 2023 8:02 am
Профил YIM
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 22 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

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


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

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