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

PIC на 4.194304MHz ?
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1016
Страница 1 от 5

Автор:  PIC [ Вто Сеп 13, 2005 8:59 am ]
Заглавие:  PIC на 4.194304MHz ?

Здравейте , поразрових се из форума и срещнах една тема за таймер за реално време. Та тъй като мисля да пробвам да пусна един часовник по този начин т.е. с кварц на 4.194304МНz за такт на процесора от който да деля честотата за един от таймерите и да получа период 0.5 или 1сек. За да получа период 0.5сек. честотата трябва да е 2Нz и тук нещо не можах да схвана как да го докарам , защото при делител 1:8 не се получава число кратно на 2. Ако някой има възможност нека удари едно рамо! :-k
А и още нещо ме тормози. Значи пробвах пик 84А който е 04 да работи на 20МНz и промених осцилатора на тип HS , но той въобще не помръдва , а на 4МХц си работи. Та дали ще имам проблем с тоя кварц за часовника щото е малко по-голям , а също и за пик16Ф628А?

Автор:  Реконструктор [ Вто Сеп 13, 2005 9:59 am ]
Заглавие: 

Какви са му делителите на таймерите на тоя пик?

Автор:  alek [ Вто Сеп 13, 2005 10:06 am ]
Заглавие: 

4194304 е 2 на степен 22. Т.е. ако сложиш такъв кварц, още вътрешния делител на процесора ще ти го раздели най-напред на 4, и ще имаш 1048576 машинни цикъла в секунда, което е 2 на степен 20. Ако използваш TIMER1 на 16F628A, който е 16-битов с прескелър нагласен да дели на 8 (още три бита), ще получиш едно прекъсване на всяка половин секунда. За осцилатора си провери хардуера - кондензатори, кварц, захранване, конфигурационни битове. Би трябвало да си работи!

Автор:  Wise [ Вто Сеп 13, 2005 10:54 am ]
Заглавие: 

Е как ще тръгне на 20, като си е за 4MHz?
Аз съм виждал на 10 , но на 20 досега не ми е попадал.
Тиренцето след наименованието са си мегахерците. Разбира се, че и на 4.4 ще работи, но вече на 8 става
съмнително. А за 20 е изключено да отлепи.

Автор:  alek [ Вто Сеп 13, 2005 11:28 am ]
Заглавие: 

@Wise, прав си! Не обърнах внимание, че е написал, че неговия е 04. А 20 мегахерцови предлагат разбира се, ето тук http://home.comet.bg/main/index.html

Автор:  PIC [ Вто Сеп 13, 2005 12:51 pm ]
Заглавие: 

Преди време имаше доста спорове по този въпрос във форума и доста хора твърдяха , че става 04 да работи на 20М , в което и аз се осъмних пък и след като пробвах не потегли. За това се чудех дали нещо не бъркам по конфигурацията има явно не става , благодаря за мненията!

Автор:  [ Вто Сеп 13, 2005 2:50 pm ]
Заглавие: 

Редовно си овърклоквам PIC-ове, които са на 4MHz да работят и на 20 MHz. Знам че няма да работят в разширен температурен обхват ( а някой път и там работят ), но за тестове и проби става. PIC16F84 е много дърт модел и мисля, че не подлежи на овърклокване, или е много малко, но от следните PIC16F873,874,876,877,627,628,684,819 нямам оплаквания. Не знам защо толкова стар професор като PIC16F84 все още се използва ( да не говорим пък за 16C54 ) , при положение че няма никаква периферия, на всичкото отгоре е двойно по-скъп от сродните му и по-добри от него заместители като 627,628,818,819 и т.н.

Автор:  bateAz [ Вто Сеп 13, 2005 7:33 pm ]
Заглавие: 

Малко встрани от темата : пробвал съм 16LF876 на 3.3 волта на 20 MHz - не ще. На 10 работи като змей.

Автор:  VSU [ Вто Сеп 13, 2005 11:28 pm ]
Заглавие: 

bateAz to shtoto e LF te се препоръчват до 4MHz щом си го подкарал на 10 значи не са толкова лоши :D
така сега за часовника що трябва да е с този кварц 4.194304MHz ползвай 4.096МHz /4 =1.024MHz/16prescaler*256ot timera =250Hz = 0.004sec posle вътрешен брояч на 250(1byte) и става 1сек. i t.n.

Автор:  Edesign [ Сря Сеп 14, 2005 9:26 am ]
Заглавие: 

Не знам каква точност ти трябва на честотата но направата на часовник никак не е лесно. Аз съм направил едно доста сложно реле за време (www.epd.hit.bg) с PIC16F628 с кварц 4MHz. Ако се използва прекъсване от ТМР0 трябва да се знае че след като дойде прекъсването после за няколко инструкции таймера не расте. Т. е. искам да кажа че е необходимо внимателно изчисление на броя команди и въвеждане на nop. Значи това реле съм го докарал с нелинейна корекция на грешка за 24 часа точност над 1 секунда. А иначе ако не ти трябва за продължително време (т. е. да се наслагва грешката от прекъсване) както предложиха колегите по горе вапрос на прости сметки с делител....

Автор:  Predator_MF [ Сря Сеп 14, 2005 10:57 am ]
Заглавие: 

Edesign написа:
....Ако се използва прекъсване от ТМР0 трябва да се знае че след като дойде прекъсването после за няколко инструкции таймера не расте....


Е, да, но това се повтаря при всеки такт на таймера, така че ще имаш константно отклонение на времето.

Автор:  Edesign [ Сря Сеп 14, 2005 11:06 am ]
Заглавие: 

Predator_MF написа:
Edesign написа:
....Ако се използва прекъсване от ТМР0 трябва да се знае че след като дойде прекъсването после за няколко инструкции таймера не расте....


Е, да, но това се повтаря при всеки такт на таймера, така че ще имаш константно отклонение на времето.


Да разбира се, че е кнстанта :) За нелинейна корекция на грешка говорех защото в това реле за време се изпълняват доста подпрограми и нещата не стоят толкова елементарно ..............

Автор:  Predator_MF [ Сря Сеп 14, 2005 11:10 am ]
Заглавие: 

Ами ако нямаш серийна комуникация, всичко стои доста елементарно пред мене (сигурно защото съм го правил вече) :D Подпрограмите ги пиша извън прекъсване, като единственото нещо което си имам на ум е да не се меся в прекъсването на таймера... Признай си без бой, нищо сложно :D

Автор:  bateAz [ Сря Сеп 14, 2005 11:16 am ]
Заглавие: 

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

Автор:  Edesign [ Сря Сеп 14, 2005 11:54 am ]
Заглавие: 

Е разбира се, че не е и много сложно все пак програмата се пише за ден два :D А искам да допълня че има подпрограми при изпълнението на които няма как да е разрешено прекъсването не само серийната комуникация го изисква така, че нелинейна корекция е необходима е очевидно. Дори и самите Микрочип предлагат някой examples по въпроса та не мисля че сте ги надскочили и тях в програмирането :D :D

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