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

 
 
> Запуск из LPM3 по приему в UART
SMRM
сообщение May 28 2013, 14:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 26-06-09
Пользователь №: 50 667



Уважаемые коллеги подскажите в чем проблема.
Кристалл MSP430F5418A.
Использую DCO как клок для SMCLK. Калибрую через FLL кварцем 32kHz клок для UART.
Ухожу в LPM3. При передачи в UART данных все запускается и ловит данные для ревизии revE.
Все это работает и давно.
Сейчас закупили ревизию F. Перестал работать UART(данные не ловятся). Но под JTAG работает и ревизия F.
В errate пишут что в rev E оставался вкл SMCLK, а в rev F это устранили.
Проверял под JTAG с помощью запрета SMCLKREQEN запускается ли процедура старта генерации для UART.
Когда SMCLKREQEN = 1, прием UART работает.
Когда SMCLKREQEN = 0 не работает. Делаю вывод что запуск клока для UART из LPM3 при правильной настройке SMCLKREQEN работает.
Что не так?
Заранее благодарю за помощь.


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение May 28 2013, 20:06
Сообщение #2


Гуру
******

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



Чтобы не гадать какие именно "чудеса" вносит сам отладчик, проверьте работу на "чистом железе" без использования отладчика. Скорректируйте свою программу. Выведите SMCLK на соответствующий пин (переключите функцию пина для вывода SMCLK) и в штатном режиме с использованием LPM3 проконтролируйте с помощью осциллографа активацию SMCLK при приеме UART.

Цитата(SMRM @ May 28 2013, 19:05) *
Когда SMCLKREQEN = 1, прием UART работает.
Когда SMCLKREQEN = 0 не работает. Делаю вывод что запуск клока для UART из LPM3 при правильной настройке SMCLKREQEN работает.
Что не так?

Вывод некорректный. В том смысле, что SMCLKREQEN = 1 это условие необходимое, но не достаточное.
Go to the top of the page
 
+Quote Post
SMRM
сообщение May 30 2013, 10:37
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 26-06-09
Пользователь №: 50 667



Цитата(rezident @ May 28 2013, 23:06) *
Чтобы не гадать какие именно "чудеса" вносит сам отладчик, проверьте работу на "чистом железе" без использования отладчика. Скорректируйте свою программу. Выведите SMCLK на соответствующий пин (переключите функцию пина для вывода SMCLK) и в штатном режиме с использованием LPM3 проконтролируйте с помощью осциллографа активацию SMCLK при приеме UART.


Вывод некорректный. В том смысле, что SMCLKREQEN = 1 это условие необходимое, но не достаточное.


Спасибо за подсказку!
Сделал как предложили и увидел на осциллографе что старт SMCLK есть, но продолжительное время частота не та которую задаю с помощью DCO+FLL.
Только значительно позже частота становится требуемой(8 мГц). За это время уже все данные пропали.
Как я понял по документации по старт биту UART через SMCLKREQEN запускается только DCO(так как при вызове прерывания SCG0 остается в 1.
Попробовал для решения вопроса организовать прерывание NMI в котором сбрасываю SCG0. Не помогло.
Возможно при моей настройке нельзя из LPM3 организовать корректный запуск генератора и прием на UART(baud 115200, хотя пробовал и для 9600).
Мои настройки:
UCSCTL4 = (SELA__XT1CLK + SELM__DCOCLK + SELS__DCOCLK);

__bis_SR_register(SCG0); // Disable the FLL control loop
UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx
UCSCTL1 = DCORSEL_4; // Set RSELx for DCO
UCSCTL2 = FLLD_0 + 243; // Set DCO Multiplier for 8MHz
__bic_SR_register(SCG0); // Enable the FLL control loop

Может кто встречал такую ситуацию и что подскажет.
Заранее благодарю за помощь.
Go to the top of the page
 
+Quote Post



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

 


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


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