![]() |
UART của dspic30f6014a.
Em xin hỏi module uart của dspic30f6014a có điểm gì khác nhau rất rất cơ bản so với con 30f4012 trong các bài viết của anh Nam hay không? Tại vì em viết nghĩ không có gì sai nhưng nó lại không bao giờ truyền đúng được.
Chương trình em chỉ đơn giản như thế này: Truyền 1 số 8 bit lên máy tính(ở đây là số 0x31). Trên máy tính nhận và hiển thị ra lại. Em sử dụng thạch anh ngoài 7.3728M (mà có sử dụng thạch anh nội cũng sai luôn). Chương trình trên dspic. Code:
#include "p30f6014a.h" Còn chương trình trên máy tính đã thử chạy rất tốt (khi nối 2 chân 2 3 cổng COM với nhau. Em đoán là do thạch anh làm tốc độ baud ko đồng bộ giữa dspic và máy tính. Nhưng lại thấy ko có gì không đồng bộ ở đây. Chương trình trên máy tính Code:
Private Sub Form_Load() Mong mọi người giúp đỡ. |
Có vẻ như baudrate thì đúng, nhưng logic bị đảo. Bạn có dùng một vi mạch tương tự như MAX232 giữa dsPIC và máy tính chứ? Nếu có thì bạn kết nối như thế nào?
Trong phần chú thích của bạn, Fcy = 7.3728M chứ không phải là 29.4912 M. Thân, |
Em dùng Max232. Sơ đồ mắc mạch của theo sơ đồ mà Nigel nối kết máy tính với PIC6F877A (em đã từng làm với PIC6F877A theo sơ đồ này, chạy rất tốt). Bây giờ chỉ thay 2 chân truyền nhận của 16F877A thành 2 chân truyền nhận của dsPIC ( U1TX và U1RX).
http://www.winpicprog.co.uk/graphics/serial.gif Còn việc chú thích thì em nhầm. hehehe |
Em đã thử đủ mọi cách, kiểm tra lại mạch, thay lại thạch anh, vẫn ko thấy gì sai. Nó truyền rất ổn định các giá trị sai. cứ 0x31 thì ra 0x67, 0x34 thì ra 0x19, 0x01 thì ra 0x1F. Chưa có lần truyền nào sai cả. Chắc chắn phải có một lý do gì khác ở đây.
Mong mọi người có kinh nghiệm giúp đỡ. Còn chưa tới nữa tháng nữa là bảo vệ luận văn rồi. Cảm ơn rất nhiều. |
Trích:
Trước đó, bạn nói rằng phần mềm của bạn chạy tốt bằng cách nối chân 2 và 3 của cổng COM với nhau. Tôi cho rằng vẫn có khả năng chương trình của bạn hiểu sai logic, nhưng tự bản thân nó truyền cho nó thì lại hiểu đúng. Thân, |
Em đã thử truyền lên Hyperterminal. Kết quả truyền sai hoàn toàn giống như truyền lên VB.
|
Trích:
Thân, |
Hôm nay đúng là một ngày cười ra nước mắt. Trên không sai ( máy tính), dưới (vi điều khiển) cũng không sai mà sai cái ở giữa ( USB2COM).
Có ai ngờ sợi dây mua mất 8$ mà nó lại bị hư, dữ liệu đi qua nó là bị đổi mức logic. Đúng là quá hài hước. Em cảm ơn anh Nam đã nhiệt tình giúp em. |
Múi giờ GMT. Hiện tại là 12:48 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam