sunset 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 · Жалоба в общем нужно получить тиканья каждую миллисекунду с высокой точностью! железо MSP430F149. не так давно занимаюсь электроникой. думаю надо цеплять внешний кварц, потому как внутренний будет плавать больше от температуры и других факторов. какой кварц лучше подцепить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jorikdima 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 · Жалоба в общем нужно получить тиканья каждую миллисекунду с высокой точностью! ... какой кварц лучше подцепить? Тот, который обеспечит "высокую" точность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 · Жалоба "Высоту" точности обозначьте и какие-либо еще дополнительные критерии для выбора. В противном случае можно и внешний кварцевый генератор (рубидиевый ) присоветовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunset 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 · Жалоба прикинул достаточно будет 8Мгц для моих целей. какие поставить конденсаторы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 · Жалоба Если CL для кварца имеет типовое значение 16пФ, то конденсаторы по 15пФ ставьте. Можно 13пФ, если заземленный полигончик вокруг кварца (выводов кварцедержателя и кондеров) нарисуете и этим емкость монтажа чуть увеличите. Только, если вы все же планируете побороться за энергосбережение, то я бы на вашем месте брал кварц с минимально возможной частотой. Типа 500кГц, 600кГц или 1МГц. А если допустим джиттер величиной около 0,7%, то можно вообще часовым кварцем обойтись. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
O.L. 0 9 ноября, 2010 Опубликовано 9 ноября, 2010 (изменено) · Жалоба прикинул достаточно будет 8Мгц для моих целей. какие поставить конденсаторы? Все они сильно разные. А величину "точности" можно озвучить. 10 в(-9ой) это ведь тоже высокая точность :). Изменено 9 ноября, 2010 пользователем O.L. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunset 0 11 ноября, 2010 Опубликовано 11 ноября, 2010 (изменено) · Жалоба вопрос был мною поставлен некорректно. "высокая" точность - это я перегнул. +- 0,002ms. может кому окажется инфа полезной. -поставил кварц на 4Мгц, конденсаторы на 22pF -для выполнения нужных действий каждую ms использую прерывание Таймера А. он тактируется от ACLK, предделитель поставил на 4. счетчик досчитывает до 1000 и выполняется обработка прерывания -MCLK тактируется от DCO Изменено 11 ноября, 2010 пользователем sunset Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fiatlux37 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 (изменено) · Жалоба Короче. Кварц 5 Мгц. Минимальный шаг ровно 200нс. void Init_Sys(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT // Port P1.0 Config. P1IES &= ~0x01; P1IFG &= ~0x01; // Disable flag P1IE = 0x01; // Enable interrupt P1.0 // Init timer CCTL0 = OUTMOD_3 + CCIE; // CCR0 toggle, interrupt enabled CCTL1 = OUTMOD_3 + CCIE; // CCR1 toggle, interrupt enabled CCR0 = 0; // CCR1 = 1; // Add Offset to CCR1 TACTL = TASSEL_2 + MC_1; // SMCLK, upmode BCSCTL2 = XT2OFF + DIVS_0 + SELS; // Enable XT2CLK _EINT(); // Enable global interrupt } // Timer A0 interrupt service routine #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A0 (void) { P1OUT ^= 0x01; } // Будет менять состояние каждые 200нс. Изменено 13 ноября, 2010 пользователем fiatlux37 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 · Жалоба Будет менять состояние каждые 200нс.Не будет. По трем причинам. Причины я могу пояснить, если вы в свою очередь поясните, как у куда вы кварц 5МГц подключили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fiatlux37 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 · Жалоба Может код и неполон немного - быстро писал. Главное идея. Подключаю внешний кварц (5МГц), строчка BCSCTL2 = XT2OFF + DIVS_0 + SELS; говорит, что надо юзать его. Строчка TACTL = TASSEL_2 + MC_1; говорит, что для таймера А импульсы берутся с этого самого внешнего кварца + таймер считает вверх (MC_1). Задавая параметры CCR0 и CCR1 вы и задате нужный вам интервал импульса, т.к. строчка CCTL0 = OUTMOD_3 + CCIE говорит о том, что как только таймер досчитает до CCR1, нога поднимется в '1', а досчитав до CCR0 опустится в '0' + разрешает прерывания (CCIE). Обработку прерывания и конфигурирование таймера на порт (бит P1DIR |= 0x01;) можно написать самому. Я ЛИЧНО получал так на экране осциллографа картинку, что при прибавлении к CCRх единицы (1 тактового импульса кварца), полученный импульс сдвигается на 200нс (это минимальный шаг). Учитывая, что 1 такт кварца равен 200нс, несложно высчитать любое необходимое время импульса. ++ внешний кварц подключал вместо встроенного в отладочную плату. Не забудьте, что максимальная частота кварца для 149-ого равна 8 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 · Жалоба Учитывая, что 1 такт кварца равен 200нс, несложно высчитать любое необходимое время импульса.Это утверждение является для меня банальностью и поэтому поskipано вкупе с предыдущими банальными (опять же для меня лично) пояснениями. А интересовала меня следующая информация ++ внешний кварц подключал вместо встроенного в отладочную плату. Не забудьте, что максимальная частота кварца для 149-ого равна 8 МГц. которая опять оказалась бесполезной. Т.к. я не вижу и не знаю, что у вас там за отладочная плата и куда именно там был "встроен" кварц? Посему повторяю вопрос: как и куда (к каким выводам МК) у вас подключен кварц 5МГц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fiatlux37 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 (изменено) · Жалоба У msp430f149 есть ноги, которые называются XIN и XOUT (скорее всего 8 и 9, как у 15x и 16x) и XT2IN и XT2OUT (так же 52 и 53). Туда и подключается кварц. Потому что больше просто некуда. Далее в коде программы выбирается именно этот кварц (читай начало юзер гайда - какие именно биты необходимо включить (конкретно Basic Clock Module Introduction и картинка 4-1). User's Guide Изменено 13 ноября, 2010 пользователем fiatlux37 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 · Жалоба Туда и подключается кварц. Потому что больше просто некуда.Дык куда "туда"??? :maniac: К какой именно паре из двух перечисленных? Далее в коде программы выбирается именно этот кварц (читай начало юзер гайда - какие именно биты необходимо включить (конкретно Basic Clock Module Introduction и картинка 4-1).А вот это уже форменное нахальство! Право выборочного цитирования MSP430x1xx Family User's Guide я застолбил за собой уже лет 7 или 8 как Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fiatlux37 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 (изменено) · Жалоба Мы с вами явно недопонимаем друг друга. Цитата из гайда: XT2CLK: Optional high-frequency oscillator that can be used with standard crystals, resonators, or external clock sources in the 450-kHz to 8-MHz range.[/b] Далее следуя картинке 4-2, выбираем BCSCTL2 = XT2OFF + DIVS_0 + SELS; (включение вашего кварца). Это и будет ваш Sub System Clock (SMCLK, который выбирается битами TASSEL_2 для таймера). И, внимание, он подключается к ногам 52 и 53 !!! Т.к. эти ноги предназначенны для ВЧ кварца. Изменено 13 ноября, 2010 пользователем fiatlux37 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 13 ноября, 2010 Опубликовано 13 ноября, 2010 · Жалоба Ок. Я все понял. Вам не нужна помощь, т.к. вы не хотите отвечать на конкретные вопросы, но желаете продемонстрировать способности к цитированию. Правда без особого осмысления прочитанного :( Не люблю кормить троллей. Извините. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться