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

 
 
> MSP430F449 UART работает только на 19200
ArtemTom
сообщение Jun 21 2010, 06:58
Сообщение #1


Участник
*

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



Чип MSP430F449IPZ, кварцевый резонатор PK-206 32.768MHz.

Комп <-RS232-> MSP430F449 <-> Внешнее устройство
С компа передаются данные на внешнее устройство через плату с MSP, внешнее устройство отправляет по запросу данные назад на ПК.
В программе начинаю так и все работает:
Код
#include <msp430x44x.h>

#define P1ON 0x90
#define P2ON 0x60
#define DTR1 0x02
#define DTR2 0x01

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;

// FLL module
  FLL_CTL0 |= XCAP0PF;                
  FLL_CTL1= XT2OFF;                      //SMCLK - on, XT2 - off, MCLK - DC0CLK, SMCLK -DCOCLK, ACLK devider 1
  FLL_CTL0 = DCOPLUS;
  SCFQCTL = 128-1;                      
  SCFI0 = FLLD_2 +FN_2;                // DCO 1.4 - 12 MHz (FLLD_2 +FN_2)
// FLL module

// Порты на комп
  UCTL0=SWRST;
  UTCTL0 = SSEL1;          // UCLK = SMCLK
  UBR10 = 0x01;              // 8MHz 19200
  UBR00 = 0xA0;             // 8MHz 19200
  UMCTL0 = 0xBB;           // 8MHz 19200
  UCTL0 =  0x10;             // 8n1
  P2SEL |= 0x30;             // P2.4,5 = USART0 TXD/RXD
  P2DIR |= 0x10;             // P2.4 output
  ME1 |= UTXE0 + URXE0;   // вкл USART0 TXD/RXD
  UCTL0 &= ~SWRST;
  IE1 |= URXIE0;            //  вкл USART0 RX interrupt

//Внешнее устройство
  UTCTL1 = SSEL1;           // UCLK = SMCLK
  UBR11 = 0x01;             // 8MHz 19200
  UBR01 = 0xA0;             // 8MHz 19200
  UMCTL1 = 0xBB;            // 8MHz 19200
  UCTL1 =  0x10;            // 8n1
  P4SEL = 0x03;             // P4.0,1 = USART1 TXD/RXD
  P4DIR = 0xFD;             // P4.1 output
  ME2 |= UTXE1 + URXE1;     //  USART1 TXD/RXD
  IE2 &= ~0x30;             // откл RxTx interrupts

  P4OUT = 0x50;             // откл RX and TX

  BTCTL = BT_ADLY_125;      // BT_fLCD_DIV128
  SVSCTL = 0x70;            // SVS 2.65 volt

  P1IE = DTR1+DTR2;       // вкл INT at port 1 and port 2
  IE2 |= BTIE;              // вкл basic timer
  WDTCTL = WDT_ARST_1000;   // Start WDT (1sec)
  IE1 |= 0x01;              // вкл WDT interrupt;

  _EINT();
}

#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
    IFG1 &= ~URXIFG0;    
    while ((IFG2 & UTXIFG1) == 0);
    TXBUF1 = RXBUF0;
}

#pragma vector=UART1RX_VECTOR
__interrupt void usart1_rx (void)
{
    IFG2 &= ~URXIFG1;    
    while ((IFG1 & UTXIFG0) == 0);
    TXBUF0 = RXBUF1;
}

#pragma vector=BASICTIMER_VECTOR
__interrupt void RTC(void)
{
  IFG2 &= ~BTIFG;
  // Reset WotchDog Timer
  WDTCTL = WDT_ARST_1000;
}


Пытаюсь менять строки:
Код
UBR10 = 0x01;              // 8MHz 19200
UBR00 = 0xA0;             // 8MHz 19200
UMCTL0 = 0xBB;           // 8MHz 19200


На другую скорость, при этом передаются иероглифы.
Пробовал но нескольким файлам расчетов этих параметров.
Наверно затупил где-то?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jun 21 2010, 10:19
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ArtemTom @ Jun 21 2010, 09:58) *
кварцевый резонатор PK-206 32.768MHz.
А разве кто-то обещал, что проц будет работать с такой частотой?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ArtemTom   MSP430F449 UART работает только на 19200   Jun 21 2010, 06:58
- - MrYuran   Цитата(ArtemTom @ Jun 21 2010, 10:58) Про...   Jun 21 2010, 08:12
- - Xenia   Цитата(ArtemTom @ Jun 21 2010, 10:58) Нав...   Jun 21 2010, 08:55
- - ArtemTom   Кодwhile ((IFG2 & UTXIFG1) == 0...   Jun 21 2010, 09:54
|- - MrYuran   Цитата(ArtemTom @ Jun 21 2010, 13:54) Код...   Jun 21 2010, 10:14
|- - Xenia   Цитата(MrYuran @ Jun 21 2010, 14:14) Это ...   Jun 21 2010, 10:32
|- - ArtemTom   Цитата(Сергей Борщ @ Jun 21 2010, 14:19) ...   Jun 21 2010, 10:53
|- - MrYuran   Цитата(ArtemTom @ Jun 21 2010, 14:53) Про...   Jun 21 2010, 11:07
- - ArtemTom   Да вроде ничего не перемешивал на 19200 все же раб...   Jun 21 2010, 11:15
|- - MrYuran   Цитата(ArtemTom @ Jun 21 2010, 15:15) Да ...   Jun 21 2010, 11:24
- - rezident   ArtemTom, у вас тактовая частота SMCLK выбрана 12М...   Jun 21 2010, 11:15
|- - ArtemTom   Цитата(rezident @ Jun 21 2010, 15:15) у в...   Jun 21 2010, 12:35
|- - rezident   Цитата(ArtemTom @ Jun 21 2010, 18:35) Мож...   Jun 21 2010, 14:28
|- - MrYuran   Цитата(ArtemTom @ Jun 21 2010, 16:35) Тут...   Jun 21 2010, 15:18
- - ArtemTom   Спасибо за файл, встречал его уже в темах. Я разоб...   Jun 22 2010, 06:07
|- - rezident   Цитата(ArtemTom @ Jun 22 2010, 12:07) А к...   Jun 23 2010, 01:05
- - ArtemTom   rezident, большое спасибо, буду разбираться. Книга...   Jun 24 2010, 04:28
- - ArtemTom   Интересно а можно ли как-то в процессе программы и...   Jul 8 2010, 12:25
- - Dog Pawlowa   Цитата(ArtemTom @ Jul 8 2010, 15:25) Как-...   Jul 8 2010, 16:34


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

 


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


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