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

 
 
> XT2 в MSP430F5, не получается затактировать что-либо в системе
controller_m30
сообщение Apr 14 2015, 15:27
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Есть два контроллера: MSP430F5510 и F5340. В обеих поставил на XT2 кварц 26мГц, выставил источник для MCLK от XT2CLK с делителем на 2, и предполагая, что теперь CPU тактируется 13мГц, пишу программу под такую сумасшедшую скорость...
Каково-же было моё удивление, когда я попробовал подключить к сигналу XT2CLK ещё и периферию (UART, настроенный для источника тактовой 13мГц), и получил скорость в бодах в разы меньшую (расчётно, как будто от источника 1мГц). Появилось подозрение, что и CPU работает от 1мГц...

Проверил настройки SELM и SELS в регистре UCSCTL4 - нормально, источник "5", т.е. XT2CLK.
Проверил осциллографом на ножках кварца - есть синусоида 26 мГц, с размахом 0,5В.
Настройки самого XT2: XT2DRIVE=3, XT2BYPASS=0, XT2OFF=0
Настройка Vcore в регистре PMMCTL0=3, для максимального диапазона частот CPU.
Флаг XT2OFFG=0, т.е. XT2 работает без ошибок.
Менял кварцы: 16, 12, 8 мГц - тоже никакого эффекта. С конденсаторами 15pf, и без них - и тоже без изменений.

В даташите на 5ю серию пишут, что если XT2 не работает, то автоматически выбирается источник "4", т.е. DCOCLKDIV, по дефолту равный 1мГц.
Проверил эту возможность - и действительно: частота процессора и периферии меняется пропорционально установкам генератора FLL в модуле DCO, и получается, что на самом деле всё работает от DCO... А вот почему?

Прикол ещё в том, что в одном из контроллеров от этого кварца тактируется модуль USB (в другом USB нету), и работает он прекрасно! При установке других кварцев, USB модуль также хорошо работает (само-собой, после изменения настроек под новый кварц). Получается, что кварц и настройки XT2 правильные (раз от него USB работает), а ошибка в настройках подключения MCLK и SMCLK к сигналу XT2...

Что я упускаю из виду??? help.gif

Сообщение отредактировал controller_m30 - Apr 14 2015, 16:56
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
controller_m30
сообщение Apr 15 2015, 11:12
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(mcheb @ Apr 15 2015, 12:26) *
Так у Вас
У Техаса (и надо)

Спасибо, что Вы так внимательно просмотрели мой код rolleyes.gif Но я не согласен что надо именно так.
В примере от TI обнуляются все флаги ошибок в регистре UCSCTL7, но контролируется что они обнулились не в том-же самом регистре, а аж через флаг глобальной ошибки осцилляторов OFIFG в регистре SFRIFG1. Такой способ проверки будет работать лишь в том случае, если в системе задействованы все три генератора: DCO, XT1 и XT2. А в примере от TI это как раз и подразумевается.

Если же, какой-то генератор выключен (любой: XT1, XT2, DCO) то флаг ошибки этого генератора будет установлен всегда, а соответственно и флаг глобальной ошибки тоже будет установлен непрерывно, и фиг его выключишь. У меня XT1 не используется, и флаг его ошибки =1. Поэтому я тестирую только флаг XT2OFFG, а не все флаги сразу.
Мне кажется так можно, потому что нет требования запускать все генераторы, предусмотренные производителем. Мне например кварц на XT1 не нужен, т.к. на одной плате есть часы на отдельной микросхеме, а другое устройство вообще не требует таких частот, которые может выдать XT1.

И в примере от TI, в описании над кодом сказано, что:
Цитата
// If LFXT1 is NOT used and if the user does not change the source modules,
// it causes the XT1xxOFIFG flag to be set because it is constantly looking
// for LFXT1. OFIFG, global oscillator fault flag, will always be set if LFXT1
// is set. Hence, it is important to ensure LFXT1 is no longer being sourced
// if LFXT1 is NOT used.
Т.е. что флаг глобальной ошибки будет установлен всегда, если XT1 не используется. Как переделать пример в таком случае автор ничего не предлагает, но предупреждает об этом нюансе (как я понял).

Может попробую и XT1 задействовать - вдруг XT2 без XT1 не работает... (всяко бывает). Только как-то подпаять кварц туда надо.

Сообщение отредактировал controller_m30 - Apr 15 2015, 11:49
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 03:50
Рейтинг@Mail.ru


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