Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MSP430F5172 XT1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
JohnKorsh
Добрый день!
Не поможет ли кто с кварцем 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 КГц.
Пробовал на другой плате - то же самое.
Obam
Кварц заведомо на основную гармонику? 25МГц-кварц может оказаться гармониковым (3-я, 5-я).
Примечания 5, 6 к характеристикам XT1 в HFM увидели?
Другие параметры кварца известны?
Нагрузочные конденсаторы есть? Какие?
JohnKorsh
Спасибо, сейчас посмотрю примечания.

,Да, по 12 пФ, как рекомендуют Supplier-ы кварца.
Obam
"// 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" погубит програмистский мир.
JohnKorsh
Спасибо. Помогло. Как хорошо, когда заводится кварц.
Obam
Цитата(JohnKorsh @ Oct 21 2015, 21:40) *
Спасибо. Помогло. Как хорошо, когда заводится кварц.


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

Вот дожили: кварц завёлся - праздник.
JohnKorsh
[quote name='Obam' date='Oct 22 2015, 10:16' post='1374887']
Что именно помогло?

Если честно, 25 МГц кварц так и не смог завести. Все параметры кварца лучше предельно допустимых, указанных в
DataSheet, как минимум, в два раза. Первая гармоника. Отдельно, в приспособлении - отлично заводится, держит
минус 20.
С битом проверки наличия генерации - просто задержку ставил на 5 секунд - куда уж больше - не заводится.

Время сильно поджимает - отложил исследование на потом.
Поставил часовой кварц - он с песнями завёлся - и ФАПЧ-ем микроконтроллера получил требуемые 25 МГц.
Obam
Чума!!! Ничего не работает, но "Помогло. Как хорошо…" и далее по тексту sm.gif

С лажей исходника из поста #1 что было?
JohnKorsh
Цитата(Obam @ Oct 22 2015, 10:42) *
Чума!!! Ничего не работает, но "Помогло. Как хорошо…" и далее по тексту sm.gif

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


Косяк в коде исправил, но дело не в нём. Я уже писал, что условный цикл заменял на 5-секундную задержку.
Пока просто отложил. Сдам Заказ - попробую понять. TI косяков не делает - чисто моё недопонимание.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.