реклама на сайте
подробности

 
 
> Чудуса msp430f2252 Timer_A в режиме выдачи импульсов, При увеличении частоты на выходе фронт расщепляется!
progvlad
сообщение Oct 24 2008, 14:40
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 24-10-08
Пользователь №: 41 156



Использовал пример. Частотата внешнего кварца 8 Мгц. Необходимо сформировать аппаратно на пине процессора 130 кГц.


Выполнил настройку таймера и источника тактовых сигналов. До частот ~40-50 кГц - нормальный меандр на выходе. Но при частотатах выше - полные чудеса: фронты расщепляются на импульсы и на других незадействованных выходах появляются импульсы от задействованного таймера.

// P1.1/TA0|--> TACCR0
// P1.2/TA1|--> TACCR1
// P1.3/TA2|--> TACCR2



// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0(void)
{
TACCR0 += 200; // Add Offset to TACCR0
}

// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)
{
switch (TAIV) // Efficient switch-implementation
{
case 2: TACCR1 += 1000; // Add Offset to TACCR1
break;
case 4: TACCR2 += 10000; // Add Offset to TACCR2
break;
case 10: P1OUT ^= 0x01; // Timer_A3 overflow
break;
}
}


Как лечить не знаю. Пришлось программно выполнить формирование 130 кГц.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Oct 27 2008, 10:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Попробуйте тактировать ядро (MCLK) от DCO, настроенного на 8МГц-12МГц, а не от кварца (как в вашем примере). У вас не обозначен вектор NMI в котором должна происходить обработка ошибки работы кварцевого генератора. При первом же сбое он (MCLK) перейдет на тактирование от DCO, частота которого у вас по умолчанию около 1МГц. Естественно, что при этом прерывания с частотой 100кГц просто не будут успевать обрабатываться.
И еще замечание. При первой инициализации регистров НЕ пользуйтесь битовыми масками, а инициализируйте их (регистры) явными значениями.
Go to the top of the page
 
+Quote Post
progvlad
сообщение Oct 27 2008, 12:31
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 24-10-08
Пользователь №: 41 156



Цитата(rezident @ Oct 27 2008, 13:25) *
Попробуйте тактировать ядро (MCLK) от DCO, настроенного на 8МГц-12МГц, а не от кварца (как в вашем примере).


Этот пример от TI. Мне важно было точно получить стабильную выходную частоту 130 кГц. Поэтому именно внешний точный кварц использовал. эффект проявляется при частоте > 60-90 кГц на выходе микроконтроллера, когда используется переключение сигнала на выходе 'P1.1/TA0/A1'. Пришлось выполнять программно формирование частоты.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 27 2008, 13:33
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(progvlad @ Oct 27 2008, 17:31) *
Этот пример от TI.
Вот именно что пример, а не конечная программа в которой предусмотрены все нюансы, в т.ч. особенности вашей топологии трассировки кварцевого генератора, например.
Цитата(progvlad @ Oct 27 2008, 17:31) *
Мне важно было точно получить стабильную выходную частоту 130 кГц. Поэтому именно внешний точный кварц использовал. эффект проявляется при частоте > 60-90 кГц на выходе микроконтроллера, когда используется переключение сигнала на выходе 'P1.1/TA0/A1'. Пришлось выполнять программно формирование частоты.
Ядро, исполняющее программу, и периферийные модули могут тактироваться от разных источников. Ядро имеет смысл тактировать от DCO, т.к. это внутренний генератор, наименее склонный к воздействию внешних помех. Периферию при этом вы можете спокойно тактировать от кварцевого генератора. При кварце 8МГц вы можете получить частоту 130кГц с основной относительной погрешностью менее 0,8%. Причем не программно, а чисто аппаратно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 01:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016