Свежие обсуждения
Микроконтроллеры

Как настроить TMR1(в PIC16F873) для работы с кварцем 32,768кГц?

1 2

Подскажите, пожалуйста, как настроить TMR1 для работы от внешнего генератора с кварцем 32,768кГц? И запустить сам генератор?

Hard: PIC16F873, кварц 32,768кГц (корпус HC-49S) подключен к RC0 и RС1. Конденсаторы SMD 1206 30pF. Разводка платы см. аттч.
Soft: фрагмент настройки TMR1 запуск генератора и разрешение прерываний от TMR1 каждые 0,25сек
bcf INTCON,GIE ;Запрещаем все прерывания
clrf TMR1L ;TMR1L=0
movlw TMR1_hi_byte ;Грузим старший байт
movwf TMR1H ;в TMR1H
movlw TMR1_lo_byte ;Грузим младший байт
movwf TMR1L ;в TMR1L
bcf PIR1,TMR1IF ;Сброс флага прерывания от TMR1
Bank_1 ;Переходим на банк памяти №1
bsf PIE1,TMR1IE ;Разрешаем прерывания от TMR1
Bank_0 ;Переходим на банк памяти №0
movlw b'00001110' ;TMR1 от собственного
movwf T1CON ;генератора К=1:1
bsf T1CON,TMR1ON ;TMR1 вкл.
movlw b'11000000' ;Разрешить прерывания
movwf INTCON ;от периферии
;------------------------------------------------
В протеусе все работает на ура. А вот в "железе" не запускается генератор на кварце 32,768кГц т.к. при тактировании TMR1 от "основного" кварца 4МГц прерывания возникают и все отрабатывает, как и положено.

 

Читал что есть проблемы запуска с некоторыми кварцами.

 

а что с T1OSCEN (бит 3)? Его в "1" не нужно устанавливать?

 

Сергей К: а что с T1OSCEN? бит №3(T1OSCEN) регистра T1CON(10h) устанавливаю в 1-у, сл. командами:
movlw b'00001110' ;
movwf T1CON ;
Вроде все правильно.

 

да, есть. Это я не стой стороны отсчитал
А пробовали во время работы водить над кварцем пальцем или касаться выводов?

 

В вашем случае, чтобы использовать режим LP (low power crystal) надо биты конфигурации FOSC1, FOSC0 поставить в 00, адрес 0х2007. По умолчанию они установлены в 11 (RC-генератор).

 

GM:
использовать режим LP
Да при чём тут это? Генератор для TMR1 настраивается в регистре T1CON.

AlexAlcoa, насколько помню, порты RC1 и RC0 должны быть настроенны на вход.
P.S.: А в Протеусе у Вас модель кварца подключена?

 

В Протеусе у меня даже без кварца работало (без основного кварца). Просто в настройках выставлял тактовою частоту. Так что с этой точки зрения следует быть осторожным.

 

Сергей К: время работы водить над кварцем пальцем или касаться выводов? Попробовал не помогло.
GM: использовать режим LP (low power crystal) LP,XT,HS эти настройки для основного генератора (который тактирует ядро МК), у меня же не запускается генератор который такитует TMR1.
Gregory: порты RC1 и RC0 должны быть настроенны на вход. Пробовал настраивать их и на вход и на выход без изменений. К тому же в ДШ написано то что при включении генератора TMR1, линии RC1:0 настраиваются "автоматически".
Gregory: модель кварца подключена? В протеусе кварц не подключен т.к. модель МК не поддерживает внешний кварц, для TMR1, тактирование происходит от сигнала DCLOCK"32768Гц" подключенного к RC0, это рекомендация "производителя", вычитал на казусе. Про "основной кварц" Сергей уже ответил.
Думаю может емкости конденсаторов велики 30pF завтра попробую изменить в меньшую сторону.

 

AlexAlcoa: Думаю может емкости конденсаторов велики 30pF завтра попробую изменить в меньшую сторону
в датшите: уменьшение емкости - уменьшение стабильности, уменьшение времени запуска. Может попробовать наоборот увеличить емкость? Ведь 30пФ обыно стоит рядом с кварцем на 4 МГц и он работает, а тут 0,3 МГц. Кстити, в документации есть упоминание о резисторе, последовательно с кварцем... может все-таки другой кварц попробовать? Пусть даже на другую частоту.