JohnKorsh 1 21 октября, 2015 Опубликовано 21 октября, 2015 · Жалоба Добрый день! Не поможет ли кто с кварцем 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 38 21 октября, 2015 Опубликовано 21 октября, 2015 (изменено) · Жалоба Кварц заведомо на основную гармонику? 25МГц-кварц может оказаться гармониковым (3-я, 5-я). Примечания 5, 6 к характеристикам XT1 в HFM увидели? Другие параметры кварца известны? Нагрузочные конденсаторы есть? Какие? Изменено 21 октября, 2015 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JohnKorsh 1 21 октября, 2015 Опубликовано 21 октября, 2015 · Жалоба Спасибо, сейчас посмотрю примечания. ,Да, по 12 пФ, как рекомендуют Supplier-ы кварца. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 21 октября, 2015 Опубликовано 21 октября, 2015 · Жалоба "// 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 1 21 октября, 2015 Опубликовано 21 октября, 2015 · Жалоба Спасибо. Помогло. Как хорошо, когда заводится кварц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 22 октября, 2015 Опубликовано 22 октября, 2015 (изменено) · Жалоба Спасибо. Помогло. Как хорошо, когда заводится кварц. Что именно помогло? Вот дожили: кварц завёлся - праздник. Изменено 22 октября, 2015 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JohnKorsh 1 22 октября, 2015 Опубликовано 22 октября, 2015 · Жалоба Что именно помогло? Если честно, 25 МГц кварц так и не смог завести. Все параметры кварца лучше предельно допустимых, указанных в DataSheet, как минимум, в два раза. Первая гармоника. Отдельно, в приспособлении - отлично заводится, держит минус 20. С битом проверки наличия генерации - просто задержку ставил на 5 секунд - куда уж больше - не заводится. Время сильно поджимает - отложил исследование на потом. Поставил часовой кварц - он с песнями завёлся - и ФАПЧ-ем микроконтроллера получил требуемые 25 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 22 октября, 2015 Опубликовано 22 октября, 2015 (изменено) · Жалоба Чума!!! Ничего не работает, но "Помогло. Как хорошо…" и далее по тексту :) С лажей исходника из поста #1 что было? Изменено 22 октября, 2015 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JohnKorsh 1 22 октября, 2015 Опубликовано 22 октября, 2015 · Жалоба Чума!!! Ничего не работает, но "Помогло. Как хорошо…" и далее по тексту :) С лажей исходника из поста #1 что было? Косяк в коде исправил, но дело не в нём. Я уже писал, что условный цикл заменял на 5-секундную задержку. Пока просто отложил. Сдам Заказ - попробую понять. TI косяков не делает - чисто моё недопонимание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 18 апреля, 2022 Опубликовано 18 апреля, 2022 · Жалоба Добрый день. тоже имею данную проблему на этом камне. 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 разные варианты, что видно по комментам, и даже разные кварцы. Что не так ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 18 апреля, 2022 Опубликовано 18 апреля, 2022 · Жалоба Для начала, попроверяйте логику установки-сброса бит в операторах. Замените "плюсы" в правой части выражений на "|". Это в смысле, что желание установить-сбросить настроечные биты задекларировано, но компилятор написанное интерпретирует иначе. В отладчике пройдитесь по коду с построчной проверкой через регистры. В-общем-то, можно в томже отладчике и биты регистров установить-сбросить с мониторингом на осцилографе наличия генерации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 18 апреля, 2022 Опубликовано 18 апреля, 2022 · Жалоба Поменял на | но я и до этого проходил под отладкой. Все работает верно до момента сброса флагов, вот их оно не сбрасывает, ни на такт. Генерация отсутствует. все XT1HFOFFG, XT1LFOFFG, DCOFFG == 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 18 апреля, 2022 Опубликовано 18 апреля, 2022 · Жалоба Проверьте, что порт P J4,5 полностью настроен. А именно, работает только как выводы для генератора. (таблица внизу) (XT1BYPASS д.б. == 0) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 18 апреля, 2022 Опубликовано 18 апреля, 2022 · Жалоба так второй строчкой, Quote PJSEL = BIT5 | BIT4; // (1<<5) | (1<<4) но и Quote PJSEL = BIT5; // 1<<5 не так, не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 18 апреля, 2022 Опубликовано 18 апреля, 2022 · Жалоба 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 (вроде как требуются внешние конденсаторы на кварц) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться