Serg24 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Здавствуйте! кто может конкретно подсказать как автоматически подстараивать внутрений RC генератор с максимальной точностью на основе кварца 32768гц на таймере Т2. Я так понимаю точности часового кварца с головой если учитывать что в худшем случае уход составляет 1сек в день (а в дне 3600х24 секунд). Подскажите как это сделать самым практическим способом. Всем заранее :a14: а я весь вот такой :wassat: даже соображаю туго... работы много ночи не сплю, так что не сильно не бить :smile3009: и хорошо пояснять Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба С помощью OSCCAL и допустим Т1, используя прерывания от Т2, методом последовательного приближения. А какой МК? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Qwertty 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Application Note AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC от Atmel. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg24 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Application Note AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC от Atmel. а где нибуть на русском имеется? С помощью OSCCAL и допустим Т1, используя прерывания от Т2, методом последовательного приближения. А какой МК? мк M8. "С помощью OSCCAL и допустим Т1, используя прерывания от Т2, " это почти продумал... просто у меня Т1 работает по 3 -20 тактов + пропуски на программу ... долго ломал голову как собрать все эти отрывки ) но додумался. вопрос тогда: методом последовательного приближения. - это как? там ведь ещё надо погрешности посмотреть у меня не точно совпадут например 10000 тактов Т1 с 1 тактом Т2 а будет колебатся 10000 + - 50 например. а мк нагружать сильно не надо он на регистрации собий важных!) посдкажите имено практически может формулами а лучше блолками програм на ICC AVR ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NullPointer 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба а где нибуть на русском имеется? Есть на понятном каждому программеру языке :) AVR055.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg24 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Есть на понятном каждому программеру языке :) AVR055.zip ОХО! я тогда сейчас уже лягу высплюсь и за это плотненько возьмусь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
otrog 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба http://electronix.ru/forum/index.php?showt...mp;#entry478598 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tolyaha 1 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба Здавствуйте! кто может конкретно подсказать как автоматически подстараивать внутрений RC генератор с максимальной точностью на основе кварца 32768гц на таймере Т2. Я так понимаю точности часового кварца с головой если учитывать что в худшем случае уход составляет 1сек в день (а в дне 3600х24 секунд). Подскажите как это сделать самым практическим способом. Всем заранее :a14: а я весь вот такой :wassat: даже соображаю туго... работы много ночи не сплю, так что не сильно не бить :smile3009: и хорошо пояснять Я когдато на меге 8 делал подстройку RC на 7,3728 мГц нада было UART на 115200 шоб работал, вот код: ;************************************************************************* ; Юстировка внутреннего RC генератора ;************************************************************************* JUSTOSC: in r20,TCNT2 ;сохранили показания счетчика T2 в r20 J1: in r19,TCNT2 ;сохранили показания счетчика T2 в r19 cp r19,r20 breq J1 ;ожидаем переключение счетчика Т2 in r17,TCNT1L ;сохранили показания счетчика T1 в r18 in r18,TCNT1H J2: in r20,TCNT2 ;сохранили показания счетчика T2 в r20 cp r19,r20 breq J2 ;ожидаем переключение счетчика Т2 in r16,TCNT1L ;сохранили показания счетчика T1 в r18 in r19,TCNT1H mov r4,r16 mov r5,r19 clr r21 sub r4,r17 ;получили колво импульсов Т1 за 7812,5 мкс sbc r5,r18 ldi r17,0xE1 ;константа для 7,3728 мГц ldi r18,0x00 sub r17,r4 sbc r18,r5 brcc J3 dec r21 rjmp J4 J3: inc r21 J4: in r17,OSCCAL add r17,r21 out OSCCAL,r17 J5: mov r22,r21 mov r17,r16 mov r18,r19 mov r19,r20 J6: in r20,TCNT2 ;сохранили показания счетчика T2 в r20 cp r19,r20 breq J6 ;ожидаем переключение счетчика Т2 in r16,TCNT1L ;сохранили показания счетчика T1 в r18 in r19,TCNT1H mov r4,r16 mov r5,r19 clr r21 sub r4,r17 ;получили колво импульсов Т1 за 7812,5 мкс sbc r5,r18 ldi r17,0xE1 ;константа для 7,3728 мГц ldi r18,0x00 sub r17,r4 sbc r18,r5 brcc J7 dec r21 rjmp J8 J7: inc r21 J8: in r17,OSCCAL add r17,r21 out OSCCAL,r17 cp r22,r21 breq J5 ret Еще инициализация таймеров: ldi r16,0x04 out TCCR1B,r16 ;Старт таймера Т1 1ед.L = 34,72 мкс, 1ед.H = 8,89 мс ldi r16,(1<<AS2) out ASSR,r16 ;ассинхронный режим Т2 от внешнего резонатора 32768 Гц ldi r16,(1<<CS21)|(1<<CS22) out TCCR2,r16 ;Старт таймера Т2 1ед.= 7812,5 мкс, Цикл = 2 с Изменено 7 октября, 2008 пользователем Tolyaha Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg24 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба Всем ОГРОМНОЕ спасибо! выбрал код как подсказал otrog! так как у меня все таймеры зяняты. лишние коды вставлять не стал и писал как бы сам. выбрал код такого плана. unsigned int i=TCNT1; TCNT1=0; if (i<7813) OSCCAL++; //Увеличиваем тактовую частоту else OSCCAL--; //Уменьшаем тактовую частоту SECOND_PULSE=1; при его использовании кждую секунду значение меняется 7811 (точность офигенная)/7837 (точность 0.3%) меня это всё устраивает с головой. только не будет ли проблем со стабильностью от такого частого изменения значения OSCCAL? как бы ... генератор... 8Мгц... все время там переключается что то... может какие то такты будут раз в секунду пропадать ? или я просто параноик? Изменено 7 октября, 2008 пользователем Electronic) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Почему бы частоту не настраивать при входе в программу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg24 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба Почему бы частоту не настраивать при входе в программу. ну так RC генератор) паяльником прикоснулся и он поплыл)))) зацените ИДЕЮ! if (T1<=7790){OSCCAL++;} if (T1>=7830){OSCCAL--;} мне :a14: держит частоту 7810 стабильно а уйдёт за диапазоны снова подстоится в диапазон +/-0,3%, и OSCCAL изменяется в крайнем случае :yeah: Изменено 7 октября, 2008 пользователем Electronic) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба А если на часовой кварц даже чихнуть - частота поплыла. Не проще ли поставить кварц, допустим на 7 с копейками мегагерц(или другой), где процент ошибки =0 при 115кбит/сек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба А если на часовой кварц даже чихнуть - частота поплыла. Не проще ли поставить кварц, допустим на 7 с копейками мегагерц(или другой), где процент ошибки =0 при 115кбит/сек. В микропотребляющих системах - не проще. Причем иногда бывает, что генератор под кварцевый резонатор только один, а нужно иметь и встроенные RTC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg24 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Подскажите пожалуйста, микроконтролер AVR уровня M8-M16 (что бы ножек не 100было). с потреблением в рабочем режиме <1мА. и не экзотический! а то на мою любимую М8 конкретный акумулятор надо получается :05: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvinus 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Подскажите пожалуйста, микроконтролер AVR уровня M8-M16 (что бы ножек не 100было). с потреблением в рабочем режиме <1мА. и не экзотический! а то на мою любимую М8 конкретный акумулятор надо получается :05: Попробуйте серию picoPower. Там есть ATmega88P и ATmega168P. Спокойно покупается в Digikey. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться