|
|
  |
проблеме с запуском кварца |
|
|
|
Dec 21 2004, 08:01
|
Группа: Новичок
Сообщений: 2
Регистрация: 21-12-04
Пользователь №: 1 582

|
Высокочастотный кварц подклячаю к XIN XOUT как в даташитах и в программе :
BCSCTL1 |= XTS; do { IFG1 &= ~OFIFG; for (i = 0xFF; i > 0; i--); } while ((IFG1 & OFIFG) != 0);
кварц иногда не запускается, после того как не запустился надо выключить прождать несколько секунд (10-15) и потом включить, только тогда кварц запустится. Причем если сделать RESET то кварц сразу запустится. Вместо RC на RESET пробовал ставить MAX809 такая же ситуация. Что делать?
|
|
|
|
|
Dec 21 2004, 09:38
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
Как у Вас с разводкой платы? Частота кварца? Конденсаторы какие на кварце? Я использую вместо кварца Муратовские керамические резонаторы со встроенными емкостями. Программно я делаю примерно так. При сбое генератора вызовется прерывание и он опять заведется. Код unsigned int OSCFault_isr; // глобальная переменная - счетчик вызов прерывания по OSCFault - для контроля
void init( void ) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT IE1 |= OFIE; // разрешим прерывание по сбою тактового генератора XT1 (флаг устанавливается при POR и при сбое) // это прерывание NMI, настройка ХТ1 произойдет после разрешения OFIE ...... OSCFault_isr = 0; }
/* --- NMI_isr() ------------------------------------------------------------------------------------------ ** * прерывание по сбою тактового генератора XT1 * ЖДЕМ, когда заведется генератор * * Контроль вызова этого прерывания: при вызове в процессе измерения * игнорировать результаты этого измерения * -------------------------------------------------------------------------------------------------------- */ #pragma vector=NMI_VECTOR __interrupt void NMI_isr( void ) // 14 * 2 - 0xfffc Non-maskable { // Настроим основное и вспомогательное тактирование BCSCTL1 |= XTS; // вспомогательное тактирование ACLK = LFXT1 = HF XTAL do { IFG1 &= ~OFIFG; // Clear OSCFault flag delay_us( 100 ); // Time for flag to set (> 50 us) } while (( IFG1 & OFIFG ) != 0 ); // OSCFault flag still set? BCSCTL2 |= SELM_3; // основное тактирование MCLK = LFXT1 IE1 |= OFIE; // разрешим прерывание по сбою тактового генератора XT1 (флаг устанавливается при POR и при сбое) if ( !++OSCFault_isr ) // счетчик вызов прерывания по OSCFault - для контроля сбоя генератора в программе OSCFault_isr--; // защита от переполнения }
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Dec 21 2004, 16:32
|
Участник

Группа: Новичок
Сообщений: 23
Регистрация: 13-11-04
Из: Нижний Новгород
Пользователь №: 1 120

|
Добрый вечер Все таки я думаю что проблема с кварцем и еще. если вы используете кварц более 5 Мгц, то есть такая особенность, что TimeOut 255 для синхронизации ядра недостаточен - попробуйте просто увеличить счетчик раза в 3-4.
|
|
|
|
|
Dec 21 2004, 17:18
|
Группа: Новичок
Сообщений: 2
Регистрация: 21-12-04
Пользователь №: 1 582

|
Сегодня потратил целый день и выяснил, что с кварцем все в порядке. Проблема была в RESETe, при выключении питания очень на короткое время RC цепочка не всегда ресетит процессор, помог только супервизор причем когда междк ним и процессором стоит 10К резистор (без резистора тоже иногда не ресетит).
|
|
|
|
|
Dec 22 2004, 10:31
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(serdz @ Dec 21 2004, 20:18) Сегодня потратил целый день и выяснил, что с кварцем все в порядке. Проблема была в RESETe, при выключении питания очень на короткое время RC цепочка не всегда ресетит процессор, помог только супервизор причем когда междк ним и процессором стоит 10К резистор (без резистора тоже иногда не ресетит). Аналогичный баг допустил. (привык к тому что AVR все умеет и на MSP понадеялся). Короче при выключении питания на кондере 4uF в схеме питания остается >0.5V, который медлено разряжается. Пока не разрядится Reset не сработает правильно. Теперь придетс супервизор искать с низким потреблением или переходить на MSP430F16xx и ему подобные.
|
|
|
|
|
Dec 24 2004, 06:51
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(kpv @ Dec 22 2004, 14:52) TPS3836E18DBV TexasInstruments <1mkA супервизор просто необходим (для MSP), там где нет BOR. так как внутренний POR срабатывает уже тогда, когда ничего гарантировать в работе кристалла нельзя. Или MAX6854-MAX6869 - низкопотребляющие (170 нА) супервизоры Совместимость по выводам с TPS3836-TPS3838
|
|
|
|
|
Feb 28 2005, 21:16
|
Участник

Группа: Свой
Сообщений: 23
Регистрация: 28-02-05
Пользователь №: 2 946

|
А чем вас не устраивает LP2951? И стабилизатор и супервизор, всё работает, всё всегда ресетится и никаких проблем! Единственное надо обратить внимание на его нагрузочную способность - а так всё отлично и на StarterKit они такой ставят... А по поводу емкостей на высокочастотном кварце так там их вообще не должно быть... всё и так отлично работает...
|
|
|
|
|
Mar 1 2005, 07:38
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(shindarah @ Mar 1 2005, 00:16) А чем вас не устраивает LP2951? И стабилизатор и супервизор, всё работает, всё всегда ресетится и никаких проблем! Единственное надо обратить внимание на его нагрузочную способность - а так всё отлично и на StarterKit они такой ставят... А по поводу емкостей на высокочастотном кварце так там их вообще не должно быть... всё и так отлично работает... Очень интересно. Речь шла о низкопотребляющих супервизорах. Объясните плиз как сделать так, чтобы LP2951 потреблял <1 uA.
|
|
|
|
|
Mar 1 2005, 22:00
|
Участник

Группа: Свой
Сообщений: 23
Регистрация: 28-02-05
Пользователь №: 2 946

|
Цитата(Alex2172 @ Mar 1 2005, 10:38) Цитата(shindarah @ Mar 1 2005, 00:16) А чем вас не устраивает LP2951? И стабилизатор и супервизор, всё работает, всё всегда ресетится и никаких проблем! Единственное надо обратить внимание на его нагрузочную способность - а так всё отлично и на StarterKit они такой ставят... А по поводу емкостей на высокочастотном кварце так там их вообще не должно быть... всё и так отлично работает... Очень интересно. Речь шла о низкопотребляющих супервизорах. Объясните плиз как сделать так, чтобы LP2951 потреблял <1 uA. Извиняюсь не заметил... Я делал как-то с низким потреблением одну штуковину... Уже в серию её запустил. Там тоже была проблема с включением, но там я супервизор ставить не стал. На вход RST завел RC цепочку, и поставил кнопку, после инициализации вход переводил на NMI и по прерыванию переводился в спящий режим, а по нажатию кнопки снова включался, а все остальные схемы запитал от REFa, питание от батарейки, в спящем режиме потребление "никакое", с кнопкой включения выключения проблем никаких. Бывают проблемы при замене батарейки, примерно один раз из 5, решаются тем, что батарейка вытаскивается и устанавливается снова... Проверено - всё работает на более 500 образцах... Пока никто не жаловался!
|
|
|
|
|
Apr 6 2005, 07:16
|
Группа: Новичок
Сообщений: 6
Регистрация: 1-03-05
Пользователь №: 2 963

|
Цитата(Alex2172 @ Dec 22 2004, 13:31) Цитата(serdz @ Dec 21 2004, 20:18) Сегодня потратил целый день и выяснил, что с кварцем все в порядке. Проблема была в RESETe, при выключении питания очень на короткое время RC цепочка не всегда ресетит процессор, помог только супервизор причем когда междк ним и процессором стоит 10К резистор (без резистора тоже иногда не ресетит). Аналогичный баг допустил. (привык к тому что AVR все умеет и на MSP понадеялся). Короче при выключении питания на кондере 4uF в схеме питания остается >0.5V, который медлено разряжается. Пока не разрядится Reset не сработает правильно. Теперь придетс супервизор искать с низким потреблением или переходить на MSP430F16xx и ему подобные. А зачем такой большой конденсатор? У меня больше 0,1 нигде нет и вроде работает.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|