Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кварц 32768
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
ILYAUL
Всем здравствуйте!

Не запускается кварц. Порт я сконфигурировал, как положено. Подключал 3 типа кварца разных производителей с параметрами для данного AVR (взял из DS) . Автоматом запускаться не хочет , но стоит прикоснутся пальцем к контакту подключённым ко входу порта, запускается. Подбор емкостей результата не даёт. Может , кто сталкивался с включением кварца
AHTOXA
Цитата(ILYAUL @ Mar 23 2008, 22:20) *
Не запускается кварц. Порт я сконфигурировал, как положено.


Какой проц? "Как положено" - это как? Фьюзы как настроены?
uriy
Цитата
Подбор емкостей результата не даёт
А разве для часового кварца нужны внешние емкости?
ILYAUL
А разве для часового кварца нужны внешние емкости?

По DS не нужны , но....?

Какой проц? "Как положено" - это как? Фьюзы как настроены?

Atmega164P - по DS для включения кварца фьюзы вроде и не нужно настраивать
acex2
Цитата(ILYAUL @ Mar 23 2008, 21:01) *
А разве для часового кварца нужны внешние емкости?
По DS не нужны , но....?


Емкости нужны. Вот это почитайте: http://www.atmel.com/dyn/resources/prod_do...nts/doc8001.pdf

У нас как-то был такой же косяк на 165P - решилось выбором правильного кварца (подробнее тут: http://www.atmel.com/dyn/resources/prod_do...nts/doc8064.pdf ), максимально короткими дорожками от кварца до проца и тщательной промывкой платы после пайки.
ILYAUL
Цитата(acex2 @ Mar 23 2008, 21:12) *
Емкости нужны. Вот это почитайте: http://www.atmel.com/dyn/resources/prod_do...nts/doc8001.pdf

У нас как-то был такой же косяк на 165P - решилось выбором правильного кварца (подробнее тут: http://www.atmel.com/dyn/resources/prod_do...nts/doc8064.pdf ), максимально короткими дорожками от кварца до проца и тщательной промывкой платы после пайки.

Спасибо - счас почитаю
sysel
Попробуйте параллельно кварцу поставить резистор на 1 мегаом.
Alex11
Или старательно вымыть плату. При плохом флюсе бывают такие утечки, что ничего не работает.
ILYAUL
Попробуйте параллельно кварцу поставить резистор на 1 мегаом.

Ставил - не помогло. Кварц стоит прямо на ножках (сейчас) , флюс использовался спиртовой.

Сегодня попробую кварц от ноута, с его схемой вкл.
yarunt
Цитата(ILYAUL @ Mar 24 2008, 10:17) *
Попробуйте параллельно кварцу поставить резистор на 1 мегаом.

Ставил - не помогло. Кварц стоит прямо на ножках (сейчас) , флюс использовался спиртовой.

Сегодня попробую кварц от ноута, с его схемой вкл.

Часовой генератор очень маломощний ,поэтому частота может пропадать даже при прикосновении щупом осцилографа.А наводку подавать незначит что это именно частота 32768гц.
Проблема может в прерываниях
ILYAUL
Цитата(yarunt @ Mar 24 2008, 11:30) *
Проблема может в прерываниях

В данном случае они не используются , только выход OC2A
sKWO
ILYAUL - нащёт фусов Вы хорошо подумали? sad.gif
Не должно там быть (ДШ) про фусы относительно часового кварца, инженер должен сам решать как их шить, взависимости от решаемой задачи и часового кварца со схемой включения. smile.gif
Код
К примеру в даташите на Атмегу 48/88/168 написано (дословный перевод, страница 152):
Источник тактов для Timer/Counter2 называется clkT2S. По умолчанию clkT2S подключён к основной тактовой системы ввода/вывода называемой clkIO. Установкой бита AS2 в регистре ASSR, Timer/Counter2 ассинхронно тактируется от пина TOSC1. Это позволяет использовать Timer/Counter2 в качестве Real Time Counter (RTC). Когда AS2 установлен, пины TOSC1 и TOSC2 отсоединены от порта С. Таким образом кварцевый резонатор может быть включён между выводами TOSC1 и TOSC2 для обеспечения несависимого источника тактирования для Timer/Counter2. Встроенный Генератор оптимизирован для работы с часовым квацем частотой 32.768 kHz. Подачу внешнего тактирующего сигнала на TOSC1 не рекомендована.

информация к размышлению:
По поводу времени запуска кварцевого генератора: время запуска (точнее выход на максимальную амплитуду генерации) практически определяется формулой:
tзап.=Q/f,
где Q добротность резонатора, f - генерируемая частота (Гц)
Добротность низкочастототных кварцев составляет от 30000 до 2000000, конкретно часового кварца добротность может состовлять примерно от 30000 до 300000, откуда следует, что генератор на часовом кварце будет выходить на режим от 1 до 10 секунд.
Время запуска можно значиельно снизить уменьшив добротность кварца шунтированием последнего резистором, например 5.1 МОм, однако это снижает стабильность работы кварцевого генератора (хотя этим снижением во многих случаях можно пренебречь). Аналогичного эффекта можно добиться применив керамические резонаторы (которые сами по себе имеют низкую добротность).

ну и нащёт фусов:
В AVR существует регистр SUT, который отвечает за задержку сигнала сброса, необходимую для полного выхода генератора на рабочий режим. Это время должно быть примерно в два раза больше (для запаса с учетом климатики, рабочего напряжения и т.д.). Оно выбирается в регистре SUT двумя битами:

00 - 5 циклов генератора
01 - от 0.4 до 0.6 мс
10 - от 3.2 до 4.8 мс
11 - от 128 до 192 мс
Информации в нете куча! Думаю что помог! Удачи!
ILYAUL
Цитата(sKWO @ Mar 24 2008, 15:51) *
Информации в нете куча! Думаю что помог! Удачи!

Счас почитаю DS на 164 посмотрю , что пишут они на счёт SUT для 164. Но паралельно написал в Atmel- обязательно напишу , что они ответят , если конечно ответят
sKWO
Цитата(ILYAUL @ Mar 25 2008, 21:34) *
Счас почитаю DS на 164 посмотрю , что пишут они на счёт SUT для 164. Но паралельно написал в Atmel- обязательно напишу , что они ответят , если конечно ответят

Не знаю какой Вы используете супервизор, если внутренний то посмотрел бы ещё на него и заменил BOD (brown-out detector) на «спящий» BOD. Может поможет, говорят он глючный.
Поскольку у Вас Atmega164P посмотрите про режимы технологии AVR-микроконтроллеры picoPower компании Atmel с ультранизким потреблением.
ILYAUL
Всё таки я его запустил.
Кварц должен быть MC405 или 406 EPSON
Конфигурация порта , в моём случае PORTC,

ldi temp,$80 ; Устанавливаем бит 7 PortC выход
out DDRC,temp ; остальные вход
ldi temp,$80 ; бит 7 (выход) устанавливаем в 1 и вешаем емкость 22 пф
out PortC,temp ; Кварц подключён к счётчику Т2

Atmel - пока думает.
Правда один раз ответили- но это не существенно
sKWO
Цитата(ILYAUL @ Apr 2 2008, 19:56) *
Всё таки я его запустил.

Поздравляю, не знал что столько проблем может быть с часовым кварцом.
Ставил простой, выпаянный с китайских часов к МЕГЕ8535 и 88, 168 тикал как "часы" smile.gif
alux
У меня также не запускается часовой кварц, подключеный к AT90USB1287. Конденсаторов на выводах кварца нет. Пример RTC взял из AVR134, немного подкорректировал:
Код
void rtc_Init(void)
{                          
    //volatile unsigned int temp0, temp1;  
//    for(temp0=0; temp0<0x0040; temp0++)   // Wait for external clock crystal to stabilize
//        for(temp1=0; temp1<0xFFFF; temp1++);
delay_ms(2000);

    DDRF |= (1<<MCLK);
    PORTF |= (1<<MCLK);         // Настроить MCLK на выход
        
    TIMSK2 &=~((1<<TOIE2)|(1<<OCIE2A));     // Disable TC2 interrupt
    ASSR |= (1<<AS2);           // set Timer/Counter2 to be asynchronous from the CPU clock
                                // with a second external clock(32,768kHz)driving it.  
    TCNT2 = 0x00;
    TCCR2B = 0x05;              // prescale the timer to be clock source / 128 to make it
                                // exactly 1 second for every overflow to occur
    while(ASSR&0x11);           // Wait until TCNT2, TCCR2B is updated    // TC2
    
    TIFR2 |= (1 << TOV2);
    TIMSK2 |= (1<<TOIE2);       // set 8-bit Timer/Counter2 Overflow Interrupt Enable                            
    
    __enable_interrupt();       // set the Global Interrupt Enable Bit    
}
Проблема в отсутствии конденсаторов или в настройках? МК распаян на монтажной платке. Работоспособность проверяю изменением пина (BEEP) в обработчике прерывания TIMER2_OVF_ISR(). Кварц - на расстоянии 1...1,5 см от выводов TOSC1, 2.
ILYAUL
Да вот и я на этом прокололся в свое время. И порты настраивал - нафинг не надо и емкости вешал и кварцы менял , пока в DS не нашёл сию строчку "Applying an external clock source to TOSC1 requires EXCLK in the ASSR Register written to one logic one. Сие онзначало - чтобы запустить часовой кварц надо бы подключить внутренний генератор , при этом эти выходы перестают быть портами ВВ . Специально проверил это и в Вашем DS , а точнее эта выделенная строчка оттуда - У Вас параграф 6.9 Т.е. В регистре ASSR установите EXCLK - 1( один)
alux
Цитата(ILYAUL @ Oct 23 2008, 17:03) *
пока в DS не нашёл сию строчку "Applying an external clock source to TOSC1 requires EXCLK in the ASSR Register written to one logic one. Сие онзначало - чтобы запустить часовой кварц надо бы подключить внутренний генератор , при этом эти выходы перестают быть портами ВВ .
Сие означает совсем другое - у Вас плохо с английским smile.gif
На самом деле установка EXCLK бита в "1" означает работу от внешнего источника тактовых импульсов (32768 Гц) , подключенного к TOSC1 выводу вместо кварца 32768 Гц.

PS. Проблема была в кварце: поменял на выпаяный из старого советского будильника кварц, и все заработало, даже без конденсаторов.

Но, все-же, конденсаторы нужны - для кварца 12pF надо повесить на выводах на землю по 25pF, так не нашел никакой информации о наличии встроенных конденсаторах в данном контроллере.
alux
Пришлось снова поднимать старую тему...
Не работает асинхронный таймер на Atmega8535.
Фьюзы запрограммированы так:
CKOPT=0, CKSEL=F, SUT=2.
Основной кварц - 16МГц.
Часовой кварц припаян на соответствующие ножки мк без конденсаторов.
Код
#pragma vector=TIMER2_OVF_vect
__interrupt void TIMER2_OVF_ISR()
{  
    PORTD ^= (1 << GREEN);
}

void Initialise()
{
   delay_ms(1000);

    // Timer2 initialisation with a second external clock (32,768kHz) driving it
    // Set Timer/Counter2 to be asynchronous from the CPU clock
    ASSR |= (1 << AS2);          
  
    TCNT2 = 0x00;
    TCCR2 = 0x05;  //(1 << CS22) | (0 << CS21) | (1 << CS20); // prescale the timer to be clock source/128 to make it
                                                     // exactly 1 second for every overflow to occur
    //while(ASSR & ((1 << TCR2UB) | (1 << TCN2UB)));   // Wait until TCNT2, TCCR2B is updated  
      
    TIFR |= (1 << TOV2);      // Clear TC2 interrupt flag
    TIMSK |= (1 << TOIE2);    // set 8-bit Timer/Counter2 Overflow Interrupt Enable  

    MCUCR = (1 << SE);        // Idle по команде __sleep()

__enable_interrupt();   // allow all enabled interrupts
}

void main()
{
    Initialise();           // set up I/O registers, flags & variables

    for(;;)
    {  
        //Idle. Спать до следующего прерывания
        __sleep();
    }
}


Если раскоментировать строчку while(ASSR & ... , то программа остается в этом цикле навсегда.
Без этой строчки программа работает, но не запускается прерывание таймера2.
Эрраты на Atmega8535 нет. Какие будут соображения?
million68
А. Другой кварц (мож этот не запускается, посмотрите осцилом)
В. Внешний клок (AS2=0) для проверки программы на глюки...
alux
Проблема была в кварце.
niXto
Если контроллер в TQFP-корпусе - проверьте монтаж и удалите все следы флюса от кварца, дорожек и ножек чипа. В 90% проблем с часовым кварцем на меге - именно это. Проверьте осциллографом или частотомером наличие генерации
awtoap
Проблема в кварцах (либо херовом генере в меге). В своё время я тоже долго долбался с этим. Были куплены кварцы штук сорок а запускаться не хотели сразу, точнее запускались где-то через минуту. Потом случайно нашел один кварц купленный на рынке и с ним все заработало сразу... Но выкидывать кучу купленных кварцев мне не захотелось и начал методом тыков экспериментировать...в результате всё воркен...добавил всего лиш задержку в код в нужном месте.

//Init Timer2
TCCR2B:= (1 shl CS22) or (1 shl CS21) or (1 shl CS20); //1024 Presc
Delay_ms(400); //Добавлено для быстрого выхода генератора часового кварца на рабочий режим
ASSR:= (1 shl AS2); //Enable Async Mode (включение тактирования от часового кварца)
TCNT2:= 0;
TIMSK2:= (1 shl TOIE2); //Enable Timer2 Int Overflov
VVlad
Так значит, кварцевые резонаторы трудно проверить вне схемы, только подключением к процессору? Следы флюса не дают кварцу запуститься? Это верно и для других микроконтроллеров? В частности для MSP430F2012?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.