Jump to content

    
Sign in to follow this  
JohnKorsh

MSP430F5172 XT1

Recommended Posts

Добрый день!

Не поможет ли кто с кварцем XT1 в MSP430F5172?

Нужно завести на 25 МГц.

(В MSP430F5172 XT1 может работать на этой частоте, по DataSheet по крайней мере).

Вот код инициализации:

...

 

unsigned long i = 0; // Work variable.

//---------------------------------------------------------------------------

 

 

// Set of the pin select function.

// 0 - Port I/O, 1 - Function.

 

PJSEL = 0x30; // 4,5 - Quartz.

 

// Control disable of the Port Map.

 

PMAPKEYID = 0x2D52; // Set of the allowing acess to the Port map register.

PMAPKEYID = 0x0000; // Disable of the reconfiguration.

//

// Set of the Vcore voltage.

// The levels should be increased only step by step.

//

// 0 1,8 - 2,0 V Ft < 8 MHz

// 1 2,0 - 2,2 V 8 MHz < Ft < 12 MHz

// 2 2,2 - 2,4 V 12 MHz < Ft < 20 MHz

// 3 2,4 - 3,6 V 20 MHz < Ft < 25 MHz

 

SetVCoreUp (1); // Set of the level one

for (i = 0; i < 10000; i++); // Little delay.

SetVCoreUp (2); // Set of the level two

for (i = 0; i < 10000; i++); // Little delay.

SetVCoreUp (3); // Set of the level three

for (i = 0; i < 10000; i++); // Little delay.

 

// Set of the Clock parametrs.

 

// UCSCTL6 &= ~XT1OFF; // Switch on of the XT.

// UCSCTL6 &= ~XT1BYPASS; // Set of the external crystall.

// UCSCTL6 |= XTS; // Set of the hign frequency for XT1.

 

// UCSCTL6

// Btgining value 1100 0001 1100 1101 = 0xC1CD

// Bits 8-15. Control of the XT2 do not change. Bit 8 = 1 - XT2 unswitch.

// Bits 6,7 = 11. Maximum frequency for the XT1.

// Bit 5 = 1. High frequency work of the XT1.

// Bit 4 = 0. XT1 - resonator.

// Bit 2, 3 = 00. Unswitch of the internal capacitors.

// Bit 1 = 0. SMCLK switch on.

// Bit 0 = 0. XT1 switch on.

// The value is 1100 0001 1110 0000 = 0x C1E0

 

UCSCTL6 = 0xC1E0; // Set of the UCSCTL6 value.

 

// Check LFXT1 fault flag

 

i = 0; // Control of the XT1 failure. (1, if failure is occured)

while ((UCSCTL6 & XT1LFOFFG) && (i < 500000))

{

UCSCTL7 &= ~(XT1LFOFFG); // Clear LFXT1 fault flag

SFRIFG1 &= ~OFIFG; // Clear the global fault flag. In case the LFXT1 caused the global fault flag to get

// set this will clear the global error condition. If any error condition persists,

// global flag will get again.

i = i + 1;

}

 

if ((UCSCTL7 & XT1LFOFFG) == XT1LFOFFG)

{

Err_Init |= Err_XT1;

}

else

{

// UCSCTL4 |= SELA__XT1CLK; // Switch of the ACLK to XT1.

// UCSCTL4 |= SELS__XT1CLK | SELM__XT1CLK; // Switch of the SMCLK and MCLK clocks to XT1.

UCSCTL4 = 0; // Switch all of the clock to XT1.

}

 

...

 

Как видите, пробовал по-разному.

Отдельно кварц проверял и заменял.

Осциллоскопом видно, что заводится странно - не 25 МГц, а шумоподобно, на частоте около 500 КГц.

Пробовал на другой плате - то же самое.

Share this post


Link to post
Share on other sites

Кварц заведомо на основную гармонику? 25МГц-кварц может оказаться гармониковым (3-я, 5-я).

Примечания 5, 6 к характеристикам XT1 в HFM увидели?

Другие параметры кварца известны?

Нагрузочные конденсаторы есть? Какие?

Edited by Obam

Share this post


Link to post
Share on other sites

"// Bit 5 = 1. High frequency work of the XT1."

"while ((UCSCTL6 & XT1LFOFFG) && (i < 500000))

{

UCSCTL7 &= ~(XT1LFOFFG); // Clear LFXT1 fault flag

SFRIFG1 &= ~OFIFG; // Clear the global fault flag. In case the LFXT1 caused the global fault flag to get

// set this will clear the global error condition. If any error condition persists,

// global flag will get again.

i = i + 1;

}"

 

В UCSCTL6 нет бита XT1LFOFFG - это раз.

Включили HFM, а проверяем флаг для LFM - это два.

 

"Copy-paste" погубит програмистский мир.

 

Share this post


Link to post
Share on other sites
Спасибо. Помогло. Как хорошо, когда заводится кварц.

 

Что именно помогло?

 

Вот дожили: кварц завёлся - праздник.

Edited by Obam

Share this post


Link to post
Share on other sites

Что именно помогло?

 

Если честно, 25 МГц кварц так и не смог завести. Все параметры кварца лучше предельно допустимых, указанных в

DataSheet, как минимум, в два раза. Первая гармоника. Отдельно, в приспособлении - отлично заводится, держит

минус 20.

С битом проверки наличия генерации - просто задержку ставил на 5 секунд - куда уж больше - не заводится.

 

Время сильно поджимает - отложил исследование на потом.

Поставил часовой кварц - он с песнями завёлся - и ФАПЧ-ем микроконтроллера получил требуемые 25 МГц.

Share this post


Link to post
Share on other sites
Чума!!! Ничего не работает, но "Помогло. Как хорошо…" и далее по тексту :)

 

С лажей исходника из поста #1 что было?

 

Косяк в коде исправил, но дело не в нём. Я уже писал, что условный цикл заменял на 5-секундную задержку.

Пока просто отложил. Сдам Заказ - попробую понять. TI косяков не делает - чисто моё недопонимание.

Share this post


Link to post
Share on other sites

Добрый день.

тоже имею данную проблему на этом камне.

    PMM_setVCore(PMM_CORE_LEVEL_2); // Vcore setting of at max 3 for 24MHz MCLK
    //XT1
    PJSEL = BIT5 | BIT4;                           // Port select XT1

    UCSCTL6 &= ~(XT1OFF + XT1BYPASS);        // XT1 On
    UCSCTL6 |= XCAP_3 + XTS_L + XT1DRIVE_2;  // XT1 Selects high-freq. oscillator 12MHz

    //UCSCTL7 &= ~(XT1HFOFFG + XT1LFOFFG + DCOFFG);   // Clear XT1, DCO fault flags
    //SFRIFG1 &= ~OFIFG;                              // Clear fault flags

    // Loop until XT1 fault flag is cleared
    do {
        UCSCTL7 &= ~(XT1HFOFFG + XT1LFOFFG + DCOFFG);   // Clear XT1, DCO fault flags
        //UCSCTL7 &= ~XT1HFOFFG;                // Clear XT1 fault flags
        SFRIFG1 &= ~OFIFG;                              // Clear fault flags
    } while (UCSCTL7 & XT1HFOFFG);             // Test XT1 fault flag

    UCSCTL4  = SELA__REFOCLK + SELS__XT1CLK + SELM__XT1CLK;
                                              // Set ACLK  = REFO
                                              // Set MCLK  = XT1CLK
                                              // Set SMCLK = XT1CLK
    UCSCTL5  = DIVA_0 + DIVS_0 + DIVM_0;

и XT1HFOFFG всегда 1.

Пробовал режимы питания, CAP_0, CAP_1, CAP_2, CAP_3 хотя они вроде тольно дляLF

разные варианты, что видно по комментам, и даже разные кварцы.

Что не так ?

 

Share this post


Link to post
Share on other sites

Для начала, попроверяйте логику установки-сброса бит в операторах. 

Замените "плюсы" в правой части выражений на "|".

Это в смысле, что желание установить-сбросить настроечные биты задекларировано, но компилятор написанное интерпретирует иначе.

В отладчике пройдитесь по коду с построчной проверкой через регистры.

В-общем-то, можно в томже отладчике и биты регистров установить-сбросить с мониторингом на осцилографе наличия генерации.

 

 

 

Share this post


Link to post
Share on other sites

Поменял на | но я и до этого проходил под отладкой.

Все работает верно до момента сброса флагов, вот их оно не сбрасывает, ни на такт.

Генерация отсутствует. все XT1HFOFFG,  XT1LFOFFG, DCOFFG == 1

 

 

Share this post


Link to post
Share on other sites

Проверьте, что порт P J4,5 полностью настроен. А именно, работает только как выводы для генератора. (таблица внизу)

image.thumb.png.0443787e33d4bdb659ab4504dbf30e47.png

(XT1BYPASS д.б. == 0)

Share this post


Link to post
Share on other sites
UCSCTL6 |= XCAP_3 + XTS_L + XT1DRIVE_2;

XTS_L - для низкочастотных. Для ВЧ должна быть 1.  SLAU208Q pg.181

 

ps

On some devices, the XT1 oscillator also supports high-speed crystals or resonators when in highfrequency (HF) mode (XTS = 1). The high-speed crystal or resonator connects to XIN and XOUT and
requires external capacitors on both terminals. These capacitors should be sized according to the crystal
or resonator specifications.
pg 163  

(вроде как требуются внешние конденсаторы на кварц)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this