Отговори на тема  [ 66 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща
PIC на 4.194304MHz ? 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
4 / ( 4 * 32768 ) = 30.517 микросекунди * 256 = 7.8125 милисекунди. Нещо не ти е верен симулатора ! Ето снимка от моят и там си е пак 7.8125 милисекунди. Точно както и ти симулираш с честота 4 * 32 768 + вътрешен клок.


Прикачени файлове:
pic16_pic18_tmr1_ext_clk_errata_simulator.jpg
pic16_pic18_tmr1_ext_clk_errata_simulator.jpg [ 111.34 KiB | Прегледано 3295 пъти ]
Съб Сеп 17, 2005 1:16 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Като направя, например така:
Код:
PORTA ^= 0b00100000;

във всяко прекъсване на TMR1, с 4MHz основен кварц и без други прекъсвания на RA.5 на честотомера ми се изписва 128 херца. Ако направя това което ти казваш, а именно 0xFF27, на RA.5 ми излиза 151.00 херца :D

П.П. Пак грешка, бил съм без делителя на 2 на честотомера, не 128 херца ми излиза, а 64, което е нормално, тъй като PORTA ^= 0b00100000, го правя със 128 херца, но на пина излиза 64Hz. А с 0xFF27 като го меря ми излиза 75.6 Hz на честотомера, което значи че прекъсването на TMR1 е на 6.65359 милисекунди, или часовника ще избързва, и то с много.


Последна промяна на Съб Сеп 17, 2005 1:38 pm, променена общо 1 път



Съб Сеп 17, 2005 1:20 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
!?!


Прикачени файлове:
Коментар на файл: x
untitled.JPG
untitled.JPG [ 121.09 KiB | Прегледано 3300 пъти ]
Съб Сеп 17, 2005 1:34 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
@TheWizard, греши ти симулатора. Закъснението при 0xFF27, prescaler 1:1 и 32.768 kHz external crystal за TMR1 е: ( 256 - 39 ) / 32768 = 0.006622314, или 151.0046083 Hz !
При 0xFF00 e: ( 256 - 0 ) / 32768 = 7.8125ms, или 128 Hz.
Това че на твоя симулатор излиза нещо друго си е проблем вече в симулатора ти. Или не засичаш правилно времето. След като стигнеш до реда: TMR1H = 0xFF; изпълни по стъпки програмата и след 256 инструкции пак ще си там. Това е ясно като бял ден, не знам защо изобщо спориш.


Съб Сеп 17, 2005 1:46 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Greshkata e moia - PICa e druga 18ka
a ti kato poluchavash 7.812500 zashto izpisa 4 lista posting


Съб Сеп 17, 2005 1:59 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
TheWizard написа:
Greshkata e moia - PICa e druga 18ka
a ti kato poluchavash 7.812500 zashto izpisa 4 lista posting

И друга 18-ка да е , TMR1 пака работи по същия начин. Изписах ги, но защо ли ги изписах, след като не четете. Ако пак ги прочетеш, ще разбереш защо изостава. Пък и линк към документа на MicroChip 2 пъти пратих, дано някой седне да го прочете.


Съб Сеп 17, 2005 2:02 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Ami shte izostavia kak niama da izostavia - kogato vliza v prekysvane imash 1-2 takta dokato vleze v prekysvane
Ot tam se natrupva greshkata...


Съб Сеп 17, 2005 2:05 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
@TheWizard, нали всеки път си отместен във времето със същия брой инструкции. Спрямо едно фиксирано начало във времето, винаги ще имаш тези инструкции.
Истината е много проста, TMR1 си иска незабавно презареждане в първите 15.25 микросекунди, след възникване на препълването и това си е хардуерна особеност. Забавиш ли се след това време да го презареждаш, RTC ти започва да изостава с минути за 2-3 часа. Ако имаш само RTC, индикация и бутони, няма проблеми, но когато процесора ти е натоварен с още няколко задачи, тези микросекунди са десетина инструкции при основен такт от 2.45MHz, при което това време е изтекло преди да можеш да запазиш служебните регистри. Да не говорим че CCS компилатора запазва сума ти ненужни регистри и имам поне 20 инструкции преди да стигна до прекъсването. Затова ти казах да сложиш 20 микросекунди преди да го заредиш, но това на симулатора няма да се види, трябва на реален хардуер и тогава проблема си излиза на бял свят.
Решението на проблема го описах в предишен пост, с помощта на TMR3, естествено за сметка на консумацията, като 7.8125 милисекунди ( а тези милисекунди ги отчитам с TMR3, който работи в паралел с TMR1 ) преди препълването на TMR1 спирам обработката на всички останали прекъсвания, за да може да го презаредя в тези 15.25 микросекунди. Грозно решение, но работи и сега нямам проблем с точността му ( всъщност пак ще има, защото за всяко събуждане на процесора също трябва време, а това време е по-голямо от тези 15.25 микросекунди, но просто тази неточност ще е по-малка, защото прекъсването е вече на 1 секунда, а не на 7.8125 милисекунди ), като процесора е в sleep режим, а прекъсванията от TMR1 и TMR3 го събуждат съответно за опресняване на RTC и на LCD индикацията. За друго решение не се сетих, защото само TMR1 & TMR3 могат да работят, когато процесора спи.
Стига толкова, май по-добре беше да напиша цяла дисертация на тема защо TMR1 на всички PIC-ове изостават при външен кристал на крачета RC0 & RC1.


Съб Сеп 17, 2005 2:29 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Pirev - i pak shte imash zabaviane
kogato se poluchi external INT procesora triabva da si zavyrshi RISCovite takta i posle shte ide na prekysvaneto
Greshkata e ot 1 do 4 takta na MAIN OSC.
Koloto po chesto vlizash v prekysvane tolkova po goliama greshka natrupvash....


Съб Сеп 17, 2005 3:10 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Съгласен съм когато става дума за асинхронни прекъсвания, но за синхронни не е така. Синхронното прекъсване е винаги на един същ такт от 4-рите основни такта на основния осцилатор. Вярно, че TMR1 с външен кварц 32kHz трябва да се разглежда като асинхронно прекъсване, но във всеки случай ще имаш някакъв синхрон между основния и допълнителния кварц, при което разсинхронизацията между основния такт и този на TMR1 ще е пренебрежимо малка.
Ако разбира се RTC е от основния кварц с подходящия делител, като например основен кварц 4.194304 MHz, към TMR0, с предварителен делител 256, и ако не презареждаш TMR0, ами го оставиш свободно да се препълва, ще се получи 4194304 / ( 4 * 256 * 256 ) = 16 Hz, при което с един софтуерен брояч на 16 ще получиш много по-точен RTC, отколкото с TMR1 и външен кварц 32.768kHz. Но пък не можеш да приспиш процесора, батериите ще свършват около 12 пъти по-бързо ( при моят хардуер с TMR1 & LCD имам 150 микроампера консумация от 5V, при 3V е около 100-тина или поне 250 дни от 1000 милиампера батерия, а при работещ процесор консумацията е около 1.5мА )


Съб Сеп 17, 2005 3:38 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
и не забравяй грешката на кварца от температурата и клас на точност - която е меко казано значителна при по големи интервали - мой тест с този кварц за 2 дена 15 минути :))) красота


Вто Сеп 20, 2005 4:51 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Изпробвах PIC18F2520 с TMR1 и външен кварц 32.768 kHz, ами когато си работи пущината, си работи, не мога да си кривя душата. Прекъсването ми е на 7.8125ms и за цяло денонощие RTC не ми е мръднал дори със секунда. Не вярвах на твърденията на MicroChip, че при този проц са отстранени проблемите с TMR1, но този път са се справили. MSSP модула също е пушка до момента. За EUSART модула също няма публикувани бъгове, но все още не съм го изпробвал. Засега на този професор проблемите му са с програмната памет, по периферията няма публикуван errata, но е сравнително отскоро на пазара. Има обаче промени по АЦП-то, като е добавен ADCON2, освен това са разместени някои от управляващите битове на ADCON0 & ADCON1. Най-полезната добавка в АЦП-то е, че Acquisition time вече може да се задава на хардуерно ниво с брой на Tad цикли, преди за започне същинското преобразуване.
Така, че нека Варненскитe гларуси знаят, че поставям този PIC в моя списък на PIC-ове с минимални бъгове :twisted:


Чет Окт 20, 2005 9:12 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение 
Цитат:
Acquisition time вече може да се задава на хардуерно ниво с брой на Tad цикли

Tо това го има и на по-стари 18-ки.


Чет Окт 20, 2005 9:48 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Сигурно си прав, че го има и на по-стари 18-ки. Но аз съм човек консерва(тор) и предпочитам някой друг да се сблъсква с новите процесори, пък аз да си маам по упътканите тъпеки :D


Чет Окт 20, 2005 10:02 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение 
Ами и аз това го разбрах без да искам преди около година и половина :lol: Мерех си един потенциометър с 8520, ама понеже съм много умен, му прецаках (никак си) аналоговия вход на потенц-а. И понеже платката беше вече направена, му метнах един 8525 (такъв имах под ръка). И стана "чудо" - мереше от 15..20% до 60..70%. След като си блъсках главата половин ден, реших, да прочета пдф-а... :lol:


Чет Окт 20, 2005 11:45 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 66 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща

Кой е на линия

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


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

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