| Автор |
Съобщение |
|
PIC
Ранг: Новодошъл
Регистриран на: Чет Дек 09, 2004 3:15 pm Мнения: 123 Местоположение: Благоевград
|
 PIC на 4.194304MHz ?
Здравейте , поразрових се из форума и срещнах една тема за таймер за реално време. Та тъй като мисля да пробвам да пусна един часовник по този начин т.е. с кварц на 4.194304МНz за такт на процесора от който да деля честотата за един от таймерите и да получа период 0.5 или 1сек. За да получа период 0.5сек. честотата трябва да е 2Нz и тук нещо не можах да схвана как да го докарам , защото при делител 1:8 не се получава число кратно на 2. Ако някой има възможност нека удари едно рамо!
А и още нещо ме тормози. Значи пробвах пик 84А който е 04 да работи на 20МНz и промених осцилатора на тип HS , но той въобще не помръдва , а на 4МХц си работи. Та дали ще имам проблем с тоя кварц за часовника щото е малко по-голям , а също и за пик16Ф628А?
|
| Вто Сеп 13, 2005 8:59 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Какви са му делителите на таймерите на тоя пик?
|
| Вто Сеп 13, 2005 9:59 am |
|
 |
|
alek
Ранг: Минаващ
Регистриран на: Пет Фев 04, 2005 9:54 am Мнения: 50 Местоположение: Null
|
4194304 е 2 на степен 22. Т.е. ако сложиш такъв кварц, още вътрешния делител на процесора ще ти го раздели най-напред на 4, и ще имаш 1048576 машинни цикъла в секунда, което е 2 на степен 20. Ако използваш TIMER1 на 16F628A, който е 16-битов с прескелър нагласен да дели на 8 (още три бита), ще получиш едно прекъсване на всяка половин секунда. За осцилатора си провери хардуера - кондензатори, кварц, захранване, конфигурационни битове. Би трябвало да си работи!
|
| Вто Сеп 13, 2005 10:06 am |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Е как ще тръгне на 20, като си е за 4MHz?
Аз съм виждал на 10 , но на 20 досега не ми е попадал.
Тиренцето след наименованието са си мегахерците. Разбира се, че и на 4.4 ще работи, но вече на 8 става
съмнително. А за 20 е изключено да отлепи.
|
| Вто Сеп 13, 2005 10:54 am |
|
 |
|
alek
Ранг: Минаващ
Регистриран на: Пет Фев 04, 2005 9:54 am Мнения: 50 Местоположение: Null
|
@Wise, прав си! Не обърнах внимание, че е написал, че неговия е 04. А 20 мегахерцови предлагат разбира се, ето тук http://home.comet.bg/main/index.html
|
| Вто Сеп 13, 2005 11:28 am |
|
 |
|
PIC
Ранг: Новодошъл
Регистриран на: Чет Дек 09, 2004 3:15 pm Мнения: 123 Местоположение: Благоевград
|
Преди време имаше доста спорове по този въпрос във форума и доста хора твърдяха , че става 04 да работи на 20М , в което и аз се осъмних пък и след като пробвах не потегли. За това се чудех дали нещо не бъркам по конфигурацията има явно не става , благодаря за мненията!
|
| Вто Сеп 13, 2005 12:51 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Редовно си овърклоквам PIC-ове, които са на 4MHz да работят и на 20 MHz. Знам че няма да работят в разширен температурен обхват ( а някой път и там работят ), но за тестове и проби става. PIC16F84 е много дърт модел и мисля, че не подлежи на овърклокване, или е много малко, но от следните PIC16F873,874,876,877,627,628,684,819 нямам оплаквания. Не знам защо толкова стар професор като PIC16F84 все още се използва ( да не говорим пък за 16C54 ) , при положение че няма никаква периферия, на всичкото отгоре е двойно по-скъп от сродните му и по-добри от него заместители като 627,628,818,819 и т.н.
|
| Вто Сеп 13, 2005 2:50 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Малко встрани от темата : пробвал съм 16LF876 на 3.3 волта на 20 MHz - не ще. На 10 работи като змей.
|
| Вто Сеп 13, 2005 7:33 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
bateAz to shtoto e LF te се препоръчват до 4MHz щом си го подкарал на 10 значи не са толкова лоши
така сега за часовника що трябва да е с този кварц 4.194304MHz ползвай 4.096МHz /4 =1.024MHz/16prescaler*256ot timera =250Hz = 0.004sec posle вътрешен брояч на 250(1byte) и става 1сек. i t.n.
|
| Вто Сеп 13, 2005 11:28 pm |
|
 |
|
Edesign
Ранг: Форумен бог
Регистриран на: Сря Авг 31, 2005 1:57 pm Мнения: 1103
|
Не знам каква точност ти трябва на честотата но направата на часовник никак не е лесно. Аз съм направил едно доста сложно реле за време ( www.epd.hit.bg) с PIC16F628 с кварц 4MHz. Ако се използва прекъсване от ТМР0 трябва да се знае че след като дойде прекъсването после за няколко инструкции таймера не расте. Т. е. искам да кажа че е необходимо внимателно изчисление на броя команди и въвеждане на nop. Значи това реле съм го докарал с нелинейна корекция на грешка за 24 часа точност над 1 секунда. А иначе ако не ти трябва за продължително време (т. е. да се наслагва грешката от прекъсване) както предложиха колегите по горе вапрос на прости сметки с делител....
|
| Сря Сеп 14, 2005 9:26 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Е, да, но това се повтаря при всеки такт на таймера, така че ще имаш константно отклонение на времето.
|
| Сря Сеп 14, 2005 10:57 am |
|
 |
|
Edesign
Ранг: Форумен бог
Регистриран на: Сря Авг 31, 2005 1:57 pm Мнения: 1103
|
Да разбира се, че е кнстанта  За нелинейна корекция на грешка говорех защото в това реле за време се изпълняват доста подпрограми и нещата не стоят толкова елементарно ..............
|
| Сря Сеп 14, 2005 11:06 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ами ако нямаш серийна комуникация, всичко стои доста елементарно пред мене (сигурно защото съм го правил вече)  Подпрограмите ги пиша извън прекъсване, като единственото нещо което си имам на ум е да не се меся в прекъсването на таймера... Признай си без бой, нищо сложно 
|
| Сря Сеп 14, 2005 11:10 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Вярно, проблемът е елементарен. По-скоро няма проблем. Пускаш го да ти дава периодично прекъсване с автоматично презареждане и няма грешка. Ако коефициентът на делене не ти харесва, това се решава софтуерно.
|
| Сря Сеп 14, 2005 11:16 am |
|
 |
|
Edesign
Ранг: Форумен бог
Регистриран на: Сря Авг 31, 2005 1:57 pm Мнения: 1103
|
Е разбира се, че не е и много сложно все пак програмата се пише за ден два  А искам да допълня че има подпрограми при изпълнението на които няма как да е разрешено прекъсването не само серийната комуникация го изисква така, че нелинейна корекция е необходима е очевидно. Дори и самите Микрочип предлагат някой examples по въпроса та не мисля че сте ги надскочили и тях в програмирането 
|
| Сря Сеп 14, 2005 11:54 am |
|
|