PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Bootloaders - Programmers - Debuggers - Emulators > Tiny Bootloader

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Tiny Bootloader Mọi vấn đề liên quan tinybootloader sẽ được tổng hợp ở đây.

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-02-2010, 02:33 PM   #1
hongquyen
Đệ tử 4 túi
 
hongquyen's Avatar
 
Tham gia ngày: Jun 2007
Bài gửi: 74
:
Question 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.
hongquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2010, 03:37 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
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
Tôi chỉ thay đổi phần liên quan đến bộ dao động (_HS_OSC) để phù hợp với cấu hình dao động thực tế và tần số của thạch anh (nếu có dùng) mà thôi.

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,
Hình Kèm Theo
File Type: gif PIC_Baudrates.gif (59.3 KB, 23 lần tải)
__________________
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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2010, 04:37 PM   #3
hongquyen
Đệ tử 4 túi
 
hongquyen's Avatar
 
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.
hongquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2010, 06:14 PM   #4
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi hongquyen View Post
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.
Giá trị trong các ô là giá trị cần thiết phải đặt vào thanh ghi tạo tốc độ baud (SPBRG), nhưng chỉ có thể đặt phần nguyên vào thanh ghi đó. Do vậy, ô có giá trị 2,26 sẽ có sai số lớn hơn nhiều (vì chỉ có thể đặt 2 trong khi giá trị chính xác là 2,26) so với ô có giá trị 12,02 (vì phần nguyên 12 sai khác rất ít so với giá trị chính xác là 12,02).

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
Chú ý: Các macro của Claudiu chỉ dùng cho trường hợp BRGH = 1. Do đó, nếu bạn chọn các tổ hợp ứng với BRGH = 0 (và đã chỉnh lại firmware như đề cập dưới đây), thì bạn phải chỉnh tay giá trị spbrg_value như đã nói ở trên.

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
Tốc độ trong firmware phải khớp với tốc độ chọn trong phần mềm (là 1 trong 5 giá trị mà bạn đã mô tả). Giá trị cho 56000 bps là để dùng với các ứng dụng khác có hỗ trợ tốc độ này.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-04-2010, 01:52 PM   #5
heidy_james
Nhập môn đệ tử
 
Tham gia ngày: Apr 2010
Bài gửi: 1
:
Smile

Thông qua giao các ý kiến của bạn, bạn có thể đào lên rằng nhận thức mà bạn không thể bắt được từ bất kỳ nguồn lực khác. Tôi như thế này cách chia sẻ kiến thức.
__________________
000-087|| 000-979|| HP0-J43|| 350-050
heidy_james vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:52 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam