|
Что такое MCLK?, DCO |
|
|
|
Jan 26 2007, 07:27
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 5-10-06
Пользователь №: 21 031

|
Вопрос 1.Кak я понимаю, это частота для работы CPU и только. И если я "питаю" CPU от XT2CLK(8 MHz) или от DCOCLK (max 900kHz) то код Код ... BCSCTL1 &= ~XT2OFF; // turn ON XT2 вариант 1. BCSCTL2 = SELM_2 + DIVM_0; // Select MCLK = XT2; Divider for MCLK = 1 or вариант 2. BCSCTL2 = SELM_0 + DIVM_0; // Select MCLK = DCOCLK; Divider for MCLK = 1 ... P1OUT ^= 0x01; j = 50000; do (j--); while (j != 0); должен выполнятся с заметной разницей? но я не получаю никакой разницы для P1OUT ^= 0x01; Вопрос 2.Как можно выключить DCOCLK? Manual говорит надо установить SCG0, но Код _BIS_SR(SCG0 + GIE); не даёт желаемого результата.
|
|
|
|
|
 |
Ответов
|
Jan 26 2007, 13:01
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 7-07-06
Из: Новосибирск
Пользователь №: 18 652

|
Не получаете никакой разницы из-за того, что MSP430 просто НЕ переключается на XT2CLK. Там последовательность определенная нужна с очисткой OFIFG. Через эти грабли проходит, как мне кажется, каждый кто работает с MSP430. У меня работает такая последовательность:
FLL_CTL1 &= ~XT2OFF; // turn on secondary high frequency oscillator FLL_CTL1 |= SELM_XT2 | SELS; do { IFG1 &= ~OFIFG; // Clear OSCFault flag for (i = 0xFF; i > 0; i--); } while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?
|
|
|
|
|
Jan 26 2007, 19:06
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(NVade @ Jan 26 2007, 12:01)  Через эти грабли проходит, как мне кажется, каждый кто работает с MSP430. Это точно. Мое долгое хождение вылилось в такой код: Код int __low_level_init(void) {
WDTCTL = WDTPW | WDTHOLD;
BCSCTL1 = (0 * XT2OFF) | (0 * XTS) | (DIVA_0) | (0 * RSEL2) | (0 * RSEL1) | (0 * RSEL0); BCSCTL2 = DIVS_1 | DIVM_0 | (0 * DCOR) | (1 * SELS) | SELM_2; IE1 |= OFIE;
return 1; }
#pragma vector = NMI_VECTOR __root __interrupt void OSCFault (void) { BCSCTL2 &= ~SELM_2; //MCLK=DCO; do IFG1 &= ~OFIFG; while (IFG1 & OFIFG); BCSCTL2 |= SELM_2; //MCLK=XT; IE1 |= OFIE; } теперь хоть пинцетом кварц короти - после восстановления колебаний процессор снова переключается на кварц.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 27 2007, 22:19
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Dog Pawlowa @ Jan 27 2007, 23:53)  А я не переключаю ядро на кварц никогда, я просто ускоряю DCO. Процессор никогда не виснет! Если уж идет речь о граблях :-) Внешний кварц чаще всего нужен для стабильности и начальной точности тактовой частоты, а не просто для "повышения" частоты. Частота DCO весьма сильно зависит как от напряжения питания, так и от температуры. Естественно в применении с внешним резистором (Rosc) частоту DCO можно "разогнать" и до 100МГц, а генератор MSP430 с кварцем на такой частоте работать не будет. Но ведь и ядро на такой частоте не работает, не так ли?  Так что каждый способ/источник тактирования нужен для своей области применения. P.S. более устойчивую работу MSP430 при тактировании от DCO я не опровергаю, а наоборот - подтверждаю. Даже более того, если нужна частота выше искомых 5-6МГц, но температурная стабильность не очень волнует или допускается в задаче проводить перекалибровку частоты DCO по генератору с частотой часового кварца (32768Гц), то я бы весьма рекомендовал использование DCO с внешним резистором или применение FLL, в тех кристаллах, где он есть.
|
|
|
|
Сообщений в этой теме
Lucky:) Что такое MCLK? Jan 26 2007, 07:27 jorikdima Цитата(Lucky:) @ Jan 26 2007, 07... Jan 26 2007, 09:08 Lucky:) Да, RSELx DCOx - стоят по умолчанию, отсюда и част... Jan 26 2007, 09:20 jorikdima Цитата(Lucky:) @ Jan 26 2007, 09... Jan 26 2007, 09:32 Lucky:) Спасибо, заработало. Вся проблема была в "пос... Jan 29 2007, 11:07 alexsl Добрый день. Извините что влезаю. У меня проблема ... Oct 19 2007, 13:03 rezident Не работает видимо поэтому (выделено)
Цитата(alexs... Oct 19 2007, 15:21 alexsl Цитата(rezident @ Oct 19 2007, 19:21) Не ... Oct 20 2007, 07:18 VAI ЦитатаА вы немогли бы дать ссылку на документ, где... Oct 20 2007, 08:45 rezident Цитата(VAI @ Oct 20 2007, 14:45) The DCO ... Oct 20 2007, 12:58  alexsl Цитата(rezident @ Oct 20 2007, 16:58) Угу... Oct 22 2007, 05:40
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|