Перейти к содержанию
    

Всем привет

Начал только знакомиться с этим видом процессора, пытаюсь написать первую программу на основе кода с производителя:

 

//******************************************************************************

// MSP-FET430P440 Demo - USART0, 9600 UART Echo ISR, DCO SMCLK

//

// Description: Echo a received character, RX ISR used. Normal mode is LPM0.

// USART0 RX interrupt triggers TX Echo.

// Baud rate divider with 1048576hz = 1048576Hz/9600 = ~109.23 (06Dh|03h)

// ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz

// //* An external watch crystal between XIN & XOUT is required for ACLK *//

//

// MSP430F449

// -----------------

// /|\| XIN|-

// | | | 32kHz

// --|RST XOUT|-

// | |

// | P2.4|----------->

// | | 9600 - 8N1

// | P2.5|<-----------

//

//

// M. Buccini

// Texas Instruments Inc.

// Feb 2005

// Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A

//*****************************************************************************

#include <msp430x44x.h>

 

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

FLL_CTL0 |= XCAP18PF; // Configure load caps

P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD

ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD

UCTL0 |= CHAR; // 8-bit character

UTCTL0 |= SSEL1; // UCLK = SMCLK

UBR00 = 0x6D; // 1MHz 9600

UBR10 = 0x00; // 1MHz 9600

UMCTL0 = 0x03; // modulation

UCTL0 &= ~SWRST; // Initialize USART state machine

IE1 |= URXIE0; // Enable USART0 RX interrupt

P2DIR |= 0x10; // P2.4 output direction

 

_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt

 

 

}

 

 

#pragma vector=USART0RX_VECTOR

__interrupt void usart0_rx (void)

{

while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready?

TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0

}

Пытаюсь общаться через TeraTerm через COM порт частота 2400 ( 9600 вообще не пашет ).

В результате не получаю ни одного реально нажатого символа - идёт только мусор.

В чём загвоздка ?? Как исправить - тыкните носом.

 

Спасибо БОЛЬШОЕ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно начать с чтения User's Guide. Хотя бы те разделы его, которые относятся к тем периферийным модулям, что вы используете.

При просмотре "по диагонали".

1. не сконфигурирован полностью модуль тактирования

2. неправильный порядок инициализации регистров USART

3. а где у вас в main-е "вечный цикл"? Функция main выполняется только один раз.

 

Используйте для вставки исходника соответствующие тегаи. В редакторе сообщения это кнопочка code.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно начать с чтения User's Guide. Хотя бы те разделы его, которые относятся к тем периферийным модулям, что вы используете.

При просмотре "по диагонали".

1. не сконфигурирован полностью модуль тактирования

2. неправильный порядок инициализации регистров USART

3. а где у вас в main-е "вечный цикл"? Функция main выполняется только один раз.

 

Используйте для вставки исходника соответствующие тегаи. В редакторе сообщения это кнопочка code.gif

Большое спасибо за ответ

Значит пример программы с сайта разработчика неверен, я правильно понял ?

Я просто взял его как аксиому, что это полностью рабочий вариант

Буду пробовать решать эти проблемы

кстати User Guide (RUS) найден тут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит пример программы с сайта разработчика неверен, я правильно понял ?

Это значит, что править примеры нужно зная, что делаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кстати User Guide (RUS) найден тут
Можете скачать копию книги Семейство микроконтроллеров MSP430x4xx: руководство пользователя из библиотеки Компэла и читать ее в офф-лайне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно начать с чтения User's Guide. Хотя бы те разделы его, которые относятся к тем периферийным модулям, что вы используете.

При просмотре "по диагонали".

1. не сконфигурирован полностью модуль тактирования

2. неправильный порядок инициализации регистров USART

3. а где у вас в main-е "вечный цикл"? Функция main выполняется только один раз.

 

Используйте для вставки исходника соответствующие тегаи. В редакторе сообщения это кнопочка code.gif

 

по поводу 3его пункта... там вечный цикл не нужен! мк уходит в режим LMP0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там вечный цикл не нужен! мк уходит в режим LMP0.
Да, согласен. Я обратил внимание на бит GIE, а LPM0 "проспал". :( Ну дык сразу и сделал оговорку, что "по диагонали" смотрел исходник :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у человека, возможно, ошибка где ни будь в схеме. перепутал tx и rx, хз... какой драйвер поставил...

 

у меня почти все исходники от ТИ шли нормально. проблема возникла с P8 у 2618. туда вместе с IO выведен вход для XT2. и как получилось, оно по умолчанию действует, так что пришлось через SEL вводить порт в режим IO...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

// Baud rate divider with 1048576hz = 1048576Hz/9600 = ~109.23 (06Dh|03h)

// ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz

 

FLL_CTL0 |= XCAP18PF; // Configure load caps

 

В результате не получаю ни одного реально нажатого символа - идёт только мусор.

 

Раз идёт мусор то больше всего что УАРТ и порты настроены правильно. В описании примера видно что весь расчёт сделан на частоту около 1мгц, но в вашем исходнике настройки генератора нету (поидее осталась только одна строчка :) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый вечер

Плата на которой всё это бежит значится как MSP-TS430PZ100 REv 1.2 with M430F449 Rev G

Просидел последние 2 дня всухую и пришёл к выводу

1. У моей платы нет скорее всего нет кварца и поэтому частота которая выставлена в коде неверна

2. Проверил ещё раз все соединения они вроде бы правильные

пытался работать на частоте 9600 с приведенным выше исходником результат таков:

Принимаются только определёные символы , а отражаются всякий мусор

Мысли такие :

Sergey Reva скорее всего прав о том , что не верна частота

Вопрос :

1. Как узнать правильную частоту ? ( формулу расчёта )

2. Как быть увереным что нет кварца на плате ну и следовательно что с этим делать

3. MCLK , SMCLK , DCO = 32 x ACLK = 1048576Hz

что с ними делать ?

4. Как сдвинуться с этой мёртвой точки ? Мануал прочёл ,но даже запустить первую программу пример -мигание лампочек не получилось. В результате код бежит , но лампочки не мигают . А почему ? не хватает знаний.

5. Беспокоют вот эти строки

| XIN|--------

| 32kHz

|RST XOUT|--

 

я понимаю что тут должен быть кварц ???

где найти эти XIN , XOUT

 

Постараюсь скоро сделать снимок платы

БОЛЬШОЕ Спасибо

 

2lsk58h.jpg

Изменено пользователем Zaber

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Плата на которой всё это бежит значится как MSP-TS430PZ100 REv 1.2 with M430F449 Rev G

Схема ее имеется в MSP-FET430 Flash Emulation Tool (FET) (for Use With IAR v3+) User's Guide на странице 58.

1. Как узнать правильную частоту ? ( формулу расчёта )
Частоту чего именно? Какого сигнала? Сигналы ACLK, SMCLK и MCLK, можно вывести наружу, использовав альтернативные функции соответствующих пинов MSP430. Все формулы расписаны в Users's Guide. Читайте его еще раз.

2. Как быть увереным что нет кварца на плате
Посмотреть глазами. Кварцевый осциллятор обычно выглядит так

DOC000190033.jpg

или так

DOC000130007.jpg

или так

DOC000127332.jpg.

Кстати, на типовой схеме MSP-FET430P440 по ссылке на FET, указанной выше, оба кварца обозначены как not assembled, то бишь "не установлен".

ну и следовательно что с этим делать
Купить и впаять, если вы считаете, что без него (них) никак не обойдетесь. Только не забудьте об паре конденсаторов в обвязке каждого кварца.

3. MCLK , SMCLK , DCO = 32 x ACLK = 1048576Hz

что с ними делать ?

Использовать по вашему усмотрению. Или не использовать, опять же по вашему усмотрению :biggrin: Хотя без MCLK программа вообще-то выполняться не будет, т.к. от него процессорное ядро тактируется.

я понимаю что тут должен быть кварц ???

где найти эти XIN , XOUT

Как где? :07: На самой плате, на выводах ZIF-сокета или непосредственно на кристалле. Цоколевку смотрите на схеме MSP-TS430PZ100 Target Socket Module опять же в документе по самой первой ссылке или в datasheet используемого в нем кристалла MSP430.

 

Update. Ага. Пока я набивал сообщение, появилась фото. На нем видно, что часовой кварц 32768Гц на модуле все-таки установлен. Тогда см. раздел Chapter 5. FLL+ Clock Module в User's Guide, чтобы понять как правильно нужно инициализировать систему тактирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только не забудьте об паре конденсаторов в обвязке каждого кварца.

 

Конденсаторы не нужны. Они являются частью генератора. Их емкость настраивается парой битов XCAPxPF

00 ~1 pF

01 ~6 pF

10 ~8 pF

11 ~10 pF

Так что можно несколько упростить схему

post-26059-1231105762_thumb.jpg

Изменено пользователем korobov_michael

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конденсаторы не нужны.
Вы ошибаетесь. Встроенных подключаемых конденсаторов недостаточно для нормальной работы и точной установки частоты генератора при использовании широкораспространенных часовых кварцев с нагрузочной емкостью 12,5пФ. Фрагмент из MSP430 LFXT1 Oscillator Accuracy - slaa225

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы ошибаетесь.

Признаюсь, этот репорт до этого не читал. Но даже в нем говорится скорее о точности системы генерирования, нежели о принципиальной возможности запуска генератора. Причем допуск имеет величины от 0,8ppm до 2,5ppm, что для первого ознакомления с чипом более чем достаточно (а ведь это и требуется автору).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...