|
Tài trợ cho PIC Vietnam |
Tiny Bootloader Mọi vấn đề liên quan tinybootloader sẽ được tổng hợp ở đây. |
|
Ðiều Chỉnh | Xếp Bài |
|
21-02-2010, 02:33 PM | #1 |
Đệ tử 4 túi
Tham gia ngày: Jun 2007
Bài gửi: 74
: |
hỏi: cách thiết lập cấu hình cho BLD có vài điều thắc mắc.
em có 2 câu hỏi kính mong anh Nam và mọi người giải thích giúp em.
câu1: một số bạn hòi cách cấu hình cho 16f887 và anh Nam có chỉ cấu hình như sau: cấu hình 1: __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC cấu hình 2: __CONFIG _CONFIG1, _HS_OSC & _FCMEN_OFF & _IESO_OFF & _CP_OFF & _WDT_OFF & _LVP_OFF & _DEBUG_OFF trong cấu hình thứ nhất của anh Nam, lại bỏ đi _INTRC_OSC_NOCLKOUT và thay thế bằng _HS_OSC và trong cấu hình thứ 2(cũng của anh Nam) lại có _DEBUG_OFF mà trong cấu hình 2 và cấu hình gốc của BLD lại kg có. em vẫn kg hiểu cách thêm bớt như thế này nó sẽ có tác dụng gì ? và tại sao phải làm như vậy?, vậy kính mong anh Nam và các anh các chị khác có thể dành chút thời gian để giải thích vấn đề này (cấu hình chung), để sau này bọn em có thể tự cấu hình cho những dòng PIC khác(vd dsPIC30F4012, PIC18F4550...)mặc dù từ cấu hình khác nhau. câu2: với mọi tần số của thạch anh(4M,12M,20M...), ta có thể thiết lập 1 trong các tốc độ 115200,57600,38400,19200,9600. trong quá trình nạp ct ứng dụng bằng BLD hay có với tần số này chỉ có thể dùng với tốc độ kia? (vì em trong ở đâu đó trong chủ để này thấy có anh nào đó chỉnh sửa BLD và bảo chỉ được dùng với tốc độ này chô nên em hơi boăn khoăn). em chân thành cảm ơn. thay đổi nội dung bởi: hongquyen, 03-04-2010 lúc 10:16 PM. |
21-02-2010, 03:37 PM | #2 |
Trưởng lão PIC bang
|
Câu 1:
Cấu hình thực sự trong mã nguồn Tiny Bootloader của tôi như sau: Code:
__CONFIG _CONFIG1, _HS_OSC & _FCMEN_OFF & _IESO_OFF & _CP_OFF & _WDT_OFF & _BOR_ON & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF __CONFIG _CONFIG2, _WRT_OFF & _BOR21V Phần _DEBUG_OFF (và một số phần khác như _CP_OFF và _WRT_OFF) thực tế là trùng với giá trị mặc định, nên có thể không cần thiết lập. Tuy nhiên, có vài trường hợp các giá trị này được thiết lập ngầm khác với mặc định (chủ yếu do người dùng thiết lập qua lệnh Configure>Configuration Bits ... của MPLAB IDE, rồi quên chỉnh lại), do đó nên thiết lập tường minh các giá trị này trong code. Câu 2: Ứng với mỗi tần số thạch anh, chỉ có một số tốc độ baud là thích hợp, vì giá trị đặt vào thanh ghi tạo tốc độ baud là một số nguyên, nên có khả năng gây ra sai số quá lớn ở một số tốc độ. Tôi thường dùng một bảng tính để đánh giá sai số cho các tốc độ baud khác nhau ở một tần số xung nhịp cụ thể, và chỉ dùng những tốc độ baud nào có sai số nhỏ (xem hình đính kèm, những ô màu xanh là những tổ hợp có sai số nhỏ). Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
21-02-2010, 04:37 PM | #3 |
Đệ tử 4 túi
Tham gia ngày: Jun 2007
Bài gửi: 74
: |
chào anh Nam
anh cho em hỏi .như trong hình anh gửi kèm thì như anh nói những ô màu xanh là những ô có sai số nhỏ, vậy giả sử như trong hình với thạch anh là 4M và với tốc độ buad là 19200 thì rõ ràng là em thấy ô màu trắng có sai số nhỏ hơn (2,26) trong khi ô màu xanh có sai số là 12,02 thì mình phải dùng tốc độ baud và thạch anh như trong ô màu trắng chứ phải kg anh?? và trong file *.asm của BLD thì làm sao ta chỉnh dc giá trị của BRGH để đạt được sai số nhỏ nhất?? tốc độ mình sửa trong file asm của BLD phải với giống với tốc độ chọn trong phần mềm tiny BLD (chỉ tvo71i các tốc độ: 115200,57600,38400,19200,9600) phải kg ạ? em cảm ơn. thay đổi nội dung bởi: hongquyen, 21-02-2010 lúc 05:02 PM. |
21-02-2010, 06:14 PM | #4 | |
Trưởng lão PIC bang
|
Trích:
Việc tính ra giá trị cần đặt vào SPBRG đã được xử lý tự động bằng các macro trong tập tin "spbrgselect.inc", bạn không cần phải chỉnh lại giá trị này nếu chọn các tổ hợp ứng với các ô màu xanh. Tuy nhiên, nếu bạn chọn một ô màu vàng thì bạn phải chỉnh lại spbrg_value thành số nguyên gần nhất với giá trị của ô màu vàng đó tại dòng lệnh (macro của Claudiu về nguyên tắc là chạy tốt, nhưng với một số ô màu vàng lại cho kết quả không tốt, theo trí nhớ khá mờ nhạt của tôi): Code:
movlw spbrg_value Về bit BRGH, nó là bit 2 của thanh ghi TXSTA, bạn có thể tùy nghi điều chỉnh bit này tại hai dòng lệnh: Code:
movlw b'00100100' movwf TXSTA Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 thay đổi nội dung bởi: namqn, 21-02-2010 lúc 07:15 PM. Lý do: Bổ sung thông tin |
|
|
|