Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с MSP430F5419
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
abar
Здравствуйте!
В новом проекте решил использовать MSP430F5419. До этого "жил" на MSP430F149.
Исходные данные:
контроллер MSP430F5419 имеет два кварца: XT1 на 32кГц и XT2 на 8МГц(конденсаторы на землю по 22pF).
Порты настроены на служебное использование ножек, к которым подключены кварцы.
Ниже кусок кода, отвечающий за настройку работы UCS Module

CODE
UCSCTL0 = 0x00;
UCSCTL1 = DISMOD;//DCORSEL1+DCORSEL0;
UCSCTL2 = 0x00; //FLLN multiplier
UCSCTL3 = SELREF0+SELREF2;//+FLLREFDIV0;
UCSCTL5 = 0x00;
UCSCTL4 = SELA2+SELS2+SELM2;
UCSCTL6 = XT2DRIVE0+XTS;
UCSCTL8 = 0x00;

do{
UCSCTL7 &= ~XT2OFFG; // Clear OSCFault flag
for (i = 0xFFFF; i > 0; i--); // Time for flag to set
}
while (UCSCTL7 & XT2OFFG); // OSCFault flag still set?
UCSCTL4 = SELA0+SELA2+SELS0+SELS2+SELM0+SELM2;


почитав умных людей добавил обработку сбоя работы кварца:
CODE
#pragma vector=UNMI_VECTOR
__interrupt void zx6(void)
{
if(UCSCTL7 & XT2OFFG){
Fault=1;//флаг, который обрабатывается в основном цикле программы
UCSCTL4 = SELA2+SELS2+SELM2;
}
}


Основной цикл программы:

CODE
while(1){
if(Fault){
do{
UCSCTL7 &= ~XT2OFFG; // Clear OSCFault flag
for (i = 0xFFFF; i > 0; i--); // Time for flag to set
}while ((UCSCTL7 & XT2OFFG) != 0); // OSCFault flag still set?
UCSCTL4 = SELA0+SELA2+SELS0+SELS2+SELM0+SELM2;
Fault=0;
}
}


Что меня смущает:
SMCLK и ACLK работают исправно и на ножках контроллера я вижу осцилографом честные 8МГц.
Но MCLK тактируется от DCO, как не боролся, переключение на тактирование от XT2 сделал после проверки стабильной работы кварца -- итог один, не переключается.
Ставил break point в немаскируемом прерывании -- туда не заходит ни разу.
Гуру, что я упустил?
rezident
А зачем вам вообще тактировать MCLK от XT2? По-моему у вас какие-то застарелые традиции наблюдаются. У MSP430 генератор XT2 имеет внешние компоненты (кварц, конденсаторы) и следовательно менее устойчив к внешним помехам, чем DCO, который находится внутри корпуса МК, имеет возможность быстрого старта из энергосберегающего режима, имеет управление частотой в широком диапазоне частот. Ну и чем же вы можете обосновать необходимость тактирования MCLK и ядра процессора именно от кварцевого генератора? Может просто стоит пересмотреть свои убеждения?
abar
К своему стыду должен признать, что начиная данный проект, невнимательно ознакомился с документацией на кристалл, мне в первую очередь необходимо было наличие 4 UART. Со всем остальным особо не разбирался. Вчера, почитав внимательно Ваш ответ и документацию, понял что Вы правы.
Сейчас дочитываю документацию подробно на работу FLL модуля и его настройку. Кварцы XT1 и XT2 останутся видимо незапаянными в моем проекте. Спасибо за наставления. beer.gif
measure
Цитата(rezident @ Feb 4 2010, 12:50) *
А зачем вам вообще тактировать MCLK от XT2? По-моему у вас какие-то застарелые традиции наблюдаются. У MSP430 генератор XT2 имеет внешние компоненты (кварц, конденсаторы) и следовательно менее устойчив к внешним помехам, чем DCO, который находится внутри корпуса МК, имеет возможность быстрого старта из энергосберегающего режима, имеет управление частотой в широком диапазоне частот. Ну и чем же вы можете обосновать необходимость тактирования MCLK и ядра процессора именно от кварцевого генератора? Может просто стоит пересмотреть свои убеждения?

Какое удивительное суждение... То есть DCO стабильней кварцевого генератора? - Это открытие. А ну скажите, сколько ppm на градус у него? А какой фазовый шум? Например, я произвожу измерения на частоте 18 МГц и мне необходима стабильность фазы на уровне 20 пикосек в течение 1 мс. Даже лучшие умножители частоты имеют фазовый шум где-то 70 пикосек, а уж MSP-шный DCO...
Так говорите Тексас в 5ххх серии не только провалил прерывания , но и не способен работать с внешним ВЧ кварцем?
rezident
Цитата(measure @ Oct 8 2010, 04:45) *
Какое удивительное суждение... То есть DCO стабильней кварцевого генератора? - Это открытие.
Я нипонял, что за предъявы? 07.gif За базар ответите? Гиде я кидал понты, что ДыСыО стабильнее кварца? Бакланить-то любой горазд, а ты фраерок за предъяву ответь!
lol.gif Шутка типа smile.gif
Ваши домыслы мне непонятны. У MSP430 несколько внутренних источников тактирования. И я предлагал тактировать от DCO посредством MCLK лишь само вычислительное ядро. Любую другую периферию, использующуюся в точных измерениях, можно тактировать от SMCLK или от ACLK, которые в свою очередь могут иметь источником НЧ или ВЧ кварцевый генератор. Так что не приписывайте мне ваши собственные домыслы.
Цитата(measure @ Oct 8 2010, 04:45) *
Так говорите Тексас в 5ххх серии не только провалил прерывания , но и не способен работать с внешним ВЧ кварцем?
Опять же. Я говорил? Где???!!!
Shread
В 1хх использовали раньше пару нч кварц+вч кварц. Сейчас везде(даже 1хх) стоит только нч. MCLK - DCO с разовой либо с периодической подстройкой по НЧ кварцу: Если принят пакет по UART и CRC не совпала, подстраиваем кварц. Если прибор используется при комнатной температуре и не предполагает перенос в работающем состоянии с улицы в помещение и обратно, то достаточно одной калибровки DCO при включении. UART 921600, полет нормальный biggrin.gif
jorikdima
Цитата(Shread @ Oct 8 2010, 17:00) *
UART 921600, полет нормальный biggrin.gif

По ДМА работаете на такой бешеной скорости? Поток большой?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.