Bạn nào đã giao tiếp UART với máy tính bằng kit launchpad xin chi giáo

Thanks. Ok rồi nhưng vẫn chưa đúng cái mình cần là file eagle kia. file pdf thì chẳng làm j được cả. hj
Thế bạn thử google, hoặc lên trang TI.com kiếm đi:)) Sau này nghiên cứu những cái mới và khó hơn (cụ thể là khi đi làm ấy) bạn sẽ đương đâu với những info mà google chừng chục lần mới ra (nếu biết đúng cách), hoặc những trang web chữ tàu chữ nhật còn rối hơn trang TI, nên cố gắng tập luyện đi nhé:))
 
Chịu khó đọc tài liệu tiếng anh đi bạn ơi, hì đọc có nhìu cái hiểu rõ hơn là tài liệu Tiếng Việt đó
Nói chính xác hơn cho bạn luong9 rõ là các TOT của CLB PIF mình là người làm TUT tiếng Việt cho cộng đồng diendanti.com, cũng như hiện tại support cho các bạn trong vấn đề sử dụng board Launchpad. nhưng những người đi trước chưa hẳn là sẽ đến trước cái đích, nên bạn hãy cố gắng đọc tài liệu tiếng Anh, phần nào khó thì tụi mình sẽ giúp:D
Keep on moving.
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
hix...có tới 2 cái RXD lận... Mình cắm vô cái chỗ jumper cuối thôi phải không ạ :-s... 2553 bị lỗi sao :(( huhu...em lại thích con này... Kì này teo tùng C6 ùi :(...chưa giao tiếp như ý được nữa
 

bigboy061293

Thành Viên PIF
trời, launchpad hồi đó mình xài bản củ, cứ bốc code example uart của nó ra rồi chạy thử, mò mò coi cách set thanh ghi, ... rồi xem mấy cái clip hướng dẫn bên diendanti là làm được mà :) Hình như là cũng đâu cần tháo jump hay chỉnh sửa phần cứng gì nhiều, cứ vậy rồi làm tới. :)
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
Nhưng mà mình xài 2553 thì cắm làm sao vậy...jumper nè
RXD- - - -
TXD-RXD-RST-TEST-VCC
nhìn vô mà cắm hoài mà chạy cái Terminal mà không thấy nó ra cái gì hết ( Nếu không bật Echo) mà nếu gõ thì chỉ có Write tăng giá trị còn ở Read không thấy gì >"< hjz
Nếu đoạn code này thì có chỗ nào sai không? tại vì bấm u hoài mà nó không ra gì hết huhu
Ai giúp em với...à mà mình có cần cài thạch anh để cho nó chạy không ạ :-?
Code:
#include "msp430g2553.h"
 
/****************************************************************
* MAIN
****************************************************************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //Stop watchdog timer
 
//UART Config
BCSCTL1 = CALBC1_1MHZ;                    // Set DCO
DCOCTL = CALDCO_1MHZ;
 
P1SEL = BIT1 + BIT2 ;                    // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2;
 
UCA0CTL1 |= UCSSEL_2;                    // SMCLK
 
UCA0BR0 = 0x02;                              // 1MHz 115200
UCA0BR1 = 0;                              // 1MHz 115200
 
UCA0MCTL = 0;
UCA0CTL1 &= ~UCSWRST;                    // **Initialize USCI state machine**
IE2 |= UCA0RXIE;  // Enable USCI_A0 RX interrupt
__bis_SR_register(LPM0_bits+GIE); //Enable nngat ngoai vi
 
 
// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void);
{
while (!(IFG2 & UCA0TXIFG));                // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}
 
 
while(1)
{
 
//UART
if (UCA0RXBUF=='u')
{
UCA0TXBUF = 's';
            _delay_cycles(10);
      UCA0TXBUF = 'o';
            _delay_cycles(10);
      UCA0TXBUF = 'd';
            _delay_cycles(10);
      UCA0TXBUF = 'e';
            _delay_cycles(10);
     
}
}
}
 

honghiep

Cố Vấn CLB
Staff member
trên launchpad có 2 cách sử dụng jump. thử từng cách thế nào cũng trúng:5cool_beat_plaster:
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
nhưng mà sao gõ hoài mà Read không tăng giá trị, chỉ có Write là tăng vù vù...mà bật Echo thì mới thấy hiện lại những gì mình đánh..Còn cái code ở trên mà sao nhập "u" nó không ra gì hết :( òa òa
 

Manhdd

Cố Vấn CLB
Staff member
Sao em xài baud rate tới 115200 vậy. Launchpad hỗ trợ đến 9600 thôi :5cool_sweat:
Mà sao em paste code lung tung vậy, để #pragma vector trong main cũng build được à :((
Em cắm jumper UART ngang qua (mới trả lời câu này cho bạn trên diendanTI rồi mà) rồi thử lại sample code nhé :1cool_choler:

Code:
//******************************************************************************
//   MSP430G2xx3 Demo - USCI_A0, 9600 UART Echo ISR, DCO SMCLK
//
//   Description: Echo a received character, RX ISR used. Normal mode is LPM0.
//   USCI_A0 RX interrupt triggers TX Echo.
//   Baud rate divider with 1MHz = 1MHz/9600 = ~104.2
//   ACLK = n/a, MCLK = SMCLK = CALxxx_1MHZ = 1MHz
//
//                MSP430G2xx3
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |     P1.2/UCA0TXD|------------>
//            |                 | 9600 - 8N1
//            |     P1.1/UCA0RXD|<------------
//
//   D. Dang
//   Texas Instruments Inc.
//   February 2011
//   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************
#include  "msp430g2553.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  BCSCTL1 = CALBC1_1MHZ;                    // Set DCO
  DCOCTL = CALDCO_1MHZ;
  P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
  P1SEL2 = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 = 104;                            // 1MHz 9600
  UCA0BR1 = 0;                              // 1MHz 9600
  UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
}

//  Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
Dạ..cái khúc code ở trên em copy trong slide bài giảng UART đó ạ :-s..hix...để em thử lại :D
À mà phần nếu nhập u thì in ra mấy cái ký tự đó đúng chưa ạ?
 

Manhdd

Cố Vấn CLB
Staff member
Khúc code ở trên em cắt đầu đuôi, dán sai rồi. Ai đời đặt ngắt trong main() chứ. Mà có để ngoài cũng hok được vì phải xử lý RXBUF trong ngắt chứ không phải while .Thử echo code này cho chạy đi rồi viết lại.
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
hix...sao em sửa lại rồi mà echo off vẫn không hiện lên, write tăng còn read thì :-<
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
Vậy nếu mình muốn nhập h thì hiện ra dòng Hello thì sao ạ :-s
 

Manhdd

Cố Vấn CLB
Staff member
mình nghĩ bạn nên cài cái msp430ware, trong đó nó có đủ mấy cái thư viện với mấy cái hàm y như pic vậy, chỉ việc bốc và thả vào rồi xài thôi. Còn không, bạn lấy cái thư viện uart nè :) add vào rồi xài

http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=slaa307a&fileType=zip
Em kiếm cái này ở đâu vậy? Nó khác với MSP430Ware mà anh biết :5cool_sweat: . Em đã test thử nó chưa?
Thư viện này dùng code ASM nên khá khó đọc, với lại đây là lib software uart (dùng timer A) , khai báo chip là msp430x11x1. Lib được viết từ năm 2007, trong khi G2 Value Series Third Generation MSP430G2xx3 mới ra đời gần đây (khoảng 2 năm trước) thôi mà :-(
 

bigboy061293

Thành Viên PIF
mình nghĩ bạn nên cài cái msp430ware, trong đó nó có đủ mấy cái thư viện với mấy cái hàm y như pic vậy, chỉ việc bốc và thả vào rồi xài thôi. Còn không, bạn lấy cái thư viện uart nè :) add vào rồi xài

http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=slaa307a&fileType=zip
Em kiếm cái này ở đâu vậy? Nó khác với MSP430Ware mà anh biết :5cool_sweat: . Em đã test thử nó chưa?
Thư viện này dùng code ASM nên khá khó đọc, với lại đây là lib software uart (dùng timer A) , khai báo chip là msp430x11x1. Lib được viết từ năm 2007, trong khi G2 Value Series Third Generation MSP430G2xx3 mới ra đời gần đây (khoảng 2 năm trước) thôi mà :-(

em chưa test anh ơi :)
tìm thu việt uart cho dòng g mãi mà không thấy. Có cái này http://dev.ivanov.eu/projects/msp430-449stk2_sample/uart_8c.html
nó khai báo là con msp430x44x nhưng nếu chỉnh sửa 1 chút chắc được mà phải hông anh ?
 

Manhdd

Cố Vấn CLB
Staff member
Thư viện em đưa nằm trong bộ thư viện nào đó rồi. Với lại viết cho dòng x44x, không sửa cho G2xxx được, mỗi dòng có đặc trưng riêng.

MSP430ware mặc dù được xây dựng rất tốt, sử dụng dễ dàng, nhưng mới chỉ có driverlib cho dòng F5, F6 thôi. G2 đơn giản nên không biết chừng nào TI mới làm :)
CLB sẽ phát triển một vài driver cơ bản cho lanch pad, tương tự bên PIC để đưa vào hỗ trợ C7. Driver LCD với UART anh vừa viết nhưng chưa kiểm định nên không áp dụng cho C6 - lớp học VĐK PIC. Em nào cần (cho mục đích hợp lý) thì liên hệ anh gửi riêng, tiện thể test giùm luôn =))

PS: Bạn nào muốn thử F5, F6 có thể xin sample TI mấy con thuộc 2 dòng này về chơi thử. Chúng đều có hỗ trợ chuẩn nạp Spy-Bi-Wire trên Launchpad và các tính năng cũng rất tốt :1cool_byebye:
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
SHare em với anh ơi :(.. à mà làm sao để mình gửi HEX qua UART vậy anh? sao em chỉ thấy nói về string không vậy?
 

Manhdd

Cố Vấn CLB
Staff member
SHare em với anh ơi :(.. à mà làm sao để mình gửi HEX qua UART vậy anh? sao em chỉ thấy nói về string không vậy?
Vậy là em vẫn chưa thể truyền nhận được nữa hả? Vui lòng gửi email đề xuất cho anh (manhcly@gmail.com)
Dữ liệu kiểu kí tự là dữ liệu đơn giản và cần thiết cho UART. Từ kí tự có thể xây dựng lên các cấu trúc khác (ghép các kí tự). Tuy nhiên, để truyền nhận hiệu quả hơn, ta có thể xử lý từng bit. RX Buffer và TX Buffer đều là 8 bit nên em có thể tùy biến trong việc truyền nhận của mình.
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
dạ em truyền ùi :"> ..bây giờ hok biết truyền bit ra sao đó ạ :-s...mà cái Hyper Teminate xài chán quá... xài Bình thường xong em đóng COM rồi nạp rồi mở COM lại nó bá oCOM đang được dùng >"<..toàn phải log off mới xài được
 
Top