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

 
 
> 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
Ответов
mcheb
сообщение Apr 15 2015, 00:44
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата
Что я упускаю из виду???

Нет кода инициализации тактирования
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Apr 15 2015, 06:16
Сообщение #3


Местный
***

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



Цитата(mcheb @ Apr 15 2015, 03:44) *
Нет кода инициализации тактирования

Вот. Правда ассемблерный.
Код
        mov     #0A503H,PMMCTL0       ; Vcore=3
        call    #zaderjka             ; Пауза 1 сек

        mov     #0c0cdH,UCSCTL6       ; XT2DRIVE=3, XT2BYPASS=0, XT2OFF=0 (XT1-не используется)
x31:    mov     #0,UCSCTL7            ; Сброс FAULT флагов
        bit     #08h,UCSCTL7          ; контроль флага XT2OFFG
        jnz     x31                   ; повтор если XT2OFFG=1
        call    #zaderjka             ; Пауза 1 сек (на всякий случай)

        mov     #0011H,UCSCTL5        ; Делители MCLK и SMCLK = /2
        mov     #0055h,UCSCTL4        ; MCLK и SMCLK=5 (источник XT2CLK)

meandr: xor.b   #1,P4OUT              ; вывод меандра для измерения частоты
        jmp     meandr                ; бесконечный цикл
После этого предполагается, что процессор и периферия (по линии тактирования SMCLK) работают на частоте 13мГц.

Выполнение одного цикла программки "meandr" занимает 6 тактов (XOR=4 такта, и JMP=2 такта), а период такого меандра будет равен 12 тактов (6 тактов на "1", и 6 тактов на "0"). При частоте CPU 13мГц меандр будет что-то около 1мГц. А вместо этого формируется меандр около 40 кГц.

Почему меандр 40 кГц? DCOCLKDIV по дефолту = 1мГц, делитель MCLK уменьшает тактовую ещё в два раза, и на получившейся частоте 500 кГц CPU как раз и формирует меандр: 500 000 / 12 = 41,6 кГц. Хотя в регистре UCSCTL4 по прежнему указан источник "5"...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 12th August 2025 - 05:24
Рейтинг@Mail.ru


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