PDA

View Full Version : xin bootloader của pic18f4331


hoangminh1234
31-12-2006, 12:57 AM
edited.. MOD xoa dùm nhé

THANDONGDATVIET
08-11-2007, 02:51 PM
Sao lại xóa đi vậy. Bác nào có bootloader của chú 18f4431 làm ơn up lên mạng cho anh em tham khảo chút. Tìm mãi mà chẳng thấy đâu

namqn
08-11-2007, 05:14 PM
Sao lại xóa đi vậy. Bác nào có bootloader của chú 18f4431 làm ơn up lên mạng cho anh em tham khảo chút. Tìm mãi mà chẳng thấy đâu
Bạn nên cho biết cấu hình cần thiết: tần số clock, baud rate, dùng thạch anh ngoài hay bộ dao động nội?

Thân,

THANDONGDATVIET
09-11-2007, 08:42 AM
Tôi sử dụng thạch anh tần số 40Mhz còn baud rate thì bao nhiêu cũng được.
Thank !

namqn
09-11-2007, 05:01 PM
Tôi sử dụng thạch anh tần số 40Mhz còn baud rate thì bao nhiêu cũng được.
Thank !
Tập tin hex được đính kèm dưới đây, được biên dịch theo cấu hình mà bạn yêu cầu, baud rate = 38400 bps.

Bạn có thể tìm thấy các tập tin nguồn cho các PIC18 khác nhau trong tập tin nén của Tiny Bootloader (thư mục con 'others/nnq'), có thể download từ link dưới đây.

http://www.etc.ugal.ro/cchiculita/software/tinyblddownload.htm

Thân,

LeDuc
11-11-2007, 06:36 PM
Giúp em file hex cho con 16f887 voi . em su dung thach anh 8M baud rate = 19200 ...
Thanks for all !

namqn
12-11-2007, 05:37 PM
Giúp em file hex cho con 16f887 voi . em su dung thach anh 8M baud rate = 19200 ...
Thanks for all !
PIC16F88x sử dụng một thuật toán ghi flash khác biệt so với các PIC16F trước đây, do đó firmware bootloader cần được hiệu chỉnh và không thể giữ kích thước < 100 word. Firmware với cấu hình bạn đã yêu cầu được đính kèm dưới đây.

Edit: firmware này sẽ không làm việc với Tiny Bootloader, vì kích thước > 100 word. Xin đọc post #19 về firmware đã được hiệu chỉnh. Xin lỗi các bạn vì sai sót này.

Thân,

THANDONGDATVIET
15-11-2007, 09:49 AM
Sao ở Hà Nội chẳng có chỗ nào bán con thạch anh 40Mhz nhỉ ? Bác nào có file Hex bootloader của con 18f4431 nào thì share cho anh em với ( Bất kì tần số nào cũng được). Ngoài ra có ai biết chỗ nào bán con thạch anh 40Mhz ở Hà Nội thì thông báo giùm.

THANDONGDATVIET
15-11-2007, 04:53 PM
Chiều nay vừa ra chợ trời mua được con thạch anh 40Mhz mừng đập đầu vào tường. Nhưng đến khi mang về lại chẳng nạp được. Bác Namqn xem hộ file hex đó có vấn đề gì không nhỉ ?

LeDuc
15-11-2007, 05:19 PM
PIC16F88x sử dụng một thuật toán ghi flash khác biệt so với các PIC16F trước đây, do đó firmware bootloader cần được hiệu chỉnh và không thể giữ kích thước < 100 word. Firmware với cấu hình bạn đã yêu cầu được đính kèm dưới đây.

Thân,

Thanks anh Nam .. nhưng hiện nay em vẫn chưa nạp được con 887 bằng mạch nạp tiny bootloader .. sau khi nạp firmware cho con 16f887 em chuyển qua nạp bằng mạch nạp tiny bootloader nhưng no vẫn báo là ko tìm thấy pic...
phần cứng em làm theo tut của anh Chính http://www.picvietnam.com/forum//showthread.php?t=439
Ko biết tại sao vẫn chưa được , các bác có kinh nghiệm xin chỉ giúp em với ..

namqn
15-11-2007, 05:21 PM
Chiều nay vừa ra chợ trời mua được con thạch anh 40Mhz mừng đập đầu vào tường. Nhưng đến khi mang về lại chẳng nạp được. Bác Namqn xem hộ file hex đó có vấn đề gì không nhỉ ?
Bạn cho biết đang dùng mạch nạp gì và phần mềm nào? File .hex do MPLAB dịch ra, tôi không hề chỉnh sửa gì, do đó cho rằng nó không có vấn đề gì. 'chẳng nạp được' là một tình huống rất chung chung, bạn nên nói rõ là bạn gặp vấn đề ở khâu nào: phần mềm không load được file .hex, hay không nạp được vào chip, hay nạp rồi mà nó không chạy, ...

Bạn yêu cầu dịch với thạch anh 40 MHz thì tôi làm theo yêu cầu của bạn. Theo tôi thì bạn không nên dùng thạch anh 40 MHz mà nên dùng thạch anh 10 MHz với x4 PLL (cấu hình HSPLL). Datasheet của PIC18F4431 đã nêu tần số tối đa khi dùng cấu hình HS là 25 MHz.

Thân,

THANDONGDATVIET
16-11-2007, 08:23 AM
Cảm ơn bác đã chỉ giáo. Tôi dùng tiny bootloader và winpic800. Vậy nếu dùng thạch anh tần số 10Mhz thì có thể dùng file hex mà bác đã cho được không ?
Nếu có thể thì bác send luôn cho file hex của thằng thạch anh 10Mhz.
Thank !

namqn
16-11-2007, 08:35 PM
Cảm ơn bác đã chỉ giáo. Tôi dùng tiny bootloader và winpic800. Vậy nếu dùng thạch anh tần số 10Mhz thì có thể dùng file hex mà bác đã cho được không ?
Nếu có thể thì bác send luôn cho file hex của thằng thạch anh 10Mhz.
Thank !
Bạn có thể dùng file .hex mà tôi đã gửi, load vào WinPic800, sau đó vào Settings của WinPic800 và chuyển HS thành HS PLL x4 ...

Thân,

namqn
16-11-2007, 10:07 PM
Thanks anh Nam .. nhưng hiện nay em vẫn chưa nạp được con 887 bằng mạch nạp tiny bootloader .. sau khi nạp firmware cho con 16f887 em chuyển qua nạp bằng mạch nạp tiny bootloader nhưng no vẫn báo là ko tìm thấy pic...
phần cứng em làm theo tut của anh Chính http://www.picvietnam.com/forum//showthread.php?t=439
Ko biết tại sao vẫn chưa được , các bác có kinh nghiệm xin chỉ giúp em với ..
Tôi vừa kiểm tra lại thì nhận ra Tiny Bootloader từ phiên bản 1.9.3 trở đi có sự thay đổi về cách thức nhận diện chip. Do đó, firmware mà tôi đã post lên trước đó chỉ làm việc với phiên bản từ 1.9.1 trở lại. Bạn thử lại với firmware mới mà tôi đã dịch lại, được đính kèm dưới đây, xem sao.

Tôi cũng gửi kèm hình chụp màn hình giao diện của Tiny Bootloader 1.9.5 đã nhận ra chip PIC16F887 của tôi.

Thân,

LeDuc
16-11-2007, 11:46 PM
Nó báo như vậy có phải là do lỗi đường truyền phải ko anh? hay do em reset bằng tay...Rất mong các anh giúp đõ ...
Thanks for all !!

namqn
17-11-2007, 02:31 AM
Nó báo như vậy có phải là do lỗi đường truyền phải ko anh? hay do em reset bằng tay...Rất mong các anh giúp đõ ...
Thanks for all !!
Thông báo lỗi đó thường xảy ra với UART chạy không đúng baud rate. Trước tiên bạn kiểm tra lại xem UART của bạn có chạy đúng ở 19200 bps hay không, bằng cách viết một chương trình đơn giản gửi 1 chuỗi ký tự ra UART ở 19200 bps và dùng Hyper Terminal của Windows để kiểm tra.

Board mạch của tôi hàn cứng thạch anh 20 MHz nên tôi chưa có điều kiện thử firmware với thạch anh 8 MHz.

Thân,

THANDONGDATVIET
17-11-2007, 08:35 AM
Bạn có thể dùng file .hex mà tôi đã gửi, load vào WinPic800, sau đó vào Settings của WinPic800 và chuyển HS thành HS PLL x4 ...

Thân,
Em đã làm giống như anh nói nhưng khi detect chíp thì nó báo là 18f242 /442.Nạp thử thì không chạy, chẳng biết làm thế nào cả. Hay bác có cái hướng dẫn sửa file asm của mấy thằng chíp này thì post lên cho em nghiên cứu được không ? Em làm việc với máy tính nhiều nên thấy thằng bootloader rất tiện.
Thank !

namqn
17-11-2007, 11:17 PM
Em đã làm giống như anh nói nhưng khi detect chíp thì nó báo là 18f242 /442.Nạp thử thì không chạy, chẳng biết làm thế nào cả. Hay bác có cái hướng dẫn sửa file asm của mấy thằng chíp này thì post lên cho em nghiên cứu được không ? Em làm việc với máy tính nhiều nên thấy thằng bootloader rất tiện.
Thank !
Tiny Bootloader cho đến phiên bản 1.9.5 vẫn không có ID riêng cho các chip PIC18Fxx31 (4431, 4331, 2431, và 2331). Do đó, tôi chỉ dùng ID của các chip PIC18F242/442 cho PIC18F4431 (vì chúng có cùng kích thước flash, đây cũng là cách mở rộng phạm vi hỗ trợ cho Tiny Bootloader theo khuyến cáo của Claudiu). Nếu bạn đã nạp được bằng Tiny Bootloader thì bạn có thể thử nạp lại một chương trình khác để khẳng định là bootloader vẫn chạy tốt.

Trong trường hợp bootloader vẫn chạy tốt thì vấn đề nằm ở chương trình ứng dụng của bạn, chứ không phải do bootloader. Nếu bootloader chỉ có thể thực hiện việc nạp chương trình một lần duy nhất, ngay sau khi firmware được nạp vào chip, thì mới phải xem lại bootloader. Nhiệm vụ của bootloader chỉ là đưa chương trình ứng dụng vào flash của PIC, và nhảy đến chương trình ứng dụng đó sau khi đã nạp nó vào flash xong.

Thân,

namqn
18-11-2007, 02:36 AM
Giúp em file hex cho con 16f887 voi . em su dung thach anh 8M baud rate = 19200 ...
Thanks for all !
Firmware mà tôi đã post lần trước có kích thước > 100 word, do đó sẽ không làm việc đúng với Tiny Bootloader (chỉ nạp được 1 lần, và bản thân firmware bị ghi đè 1 phần, dẫn đến không còn làm việc sau đó). Firmware đã được hiệu chỉnh với cấu hình mà bạn yêu cầu đã được đính kèm dưới đây.

Firmware này đã được tôi thử nghiệm đầy đủ (nhận diện chip đúng với Tiny Bootloader phiên bản 1.9.3 trở đi, nạp tốt chương trình ứng dụng vào chip, và vẫn chạy tốt nếu chip được reset để kích hoạt bootloader).

Thân,

LeDuc
18-11-2007, 02:31 PM
hiện nay em đã nạp được pic 16f887 nhưng em sử dụng tiny phiên bản 1.9.5 , chứ phiên bản 1.9.3 nó báo như vậy đó anh..
Cảm ơn anh nhiều .....

LeDuc
18-11-2007, 05:44 PM
Firmware mà tôi đã post lần trước có kích thước > 100 word, do đó sẽ không làm việc đúng với Tiny Bootloader (chỉ nạp được 1 lần, và bản thân firmware bị ghi đè 1 phần, dẫn đến không còn làm việc sau đó). Firmware đã được hiệu chỉnh với cấu hình mà bạn yêu cầu đã được đính kèm dưới đây.

Firmware này đã được tôi thử nghiệm đầy đủ (nhận diện chip đúng với Tiny Bootloader phiên bản 1.9.3 trở đi, nạp tốt chương trình ứng dụng vào chip, và vẫn chạy tốt nếu chip được reset để kích hoạt bootloader).

Thân,
Em đã test khoản 4 tiếng liên tục cho 3 con Pic , và 3 mạch chủ , test liên tục . Tốc độ nạp nhanh , cho đến giờ thì mạch vẫn rất ổn định . Những cũng chỉ có thễ nạp bằng phiên bản 1.9.5 . còn mấy phiên bản trước thì ko hiểu loại chip nào. Và còn 1 điều nữa là kô thể reset bằng tay được . em vẫn chưa hiểu vấn đề nảy cho lắm ..
rất cảm ơn anh !!

namqn
18-11-2007, 09:00 PM
Em đã test khoản 4 tiếng liên tục cho 3 con Pic , và 3 mạch chủ , test liên tục . Tốc độ nạp nhanh , cho đến giờ thì mạch vẫn rất ổn định . Những cũng chỉ có thễ nạp bằng phiên bản 1.9.5 . còn mấy phiên bản trước thì ko hiểu loại chip nào. Và còn 1 điều nữa là kô thể reset bằng tay được . em vẫn chưa hiểu vấn đề nảy cho lắm ..
rất cảm ơn anh !!
Tôi xác nhận là phiên bản 1.9.3 không nhận ra chip 887 với ID mới, vì chỉ có phiên bản 1.9.5 mới có tập tin piccodes.ini để người dùng tự bổ sung ID cho chip mới.

Về việc reset bằng tay, bạn xem lại mạch reset của bạn, cũng như chỉnh timeout (ms) của Tiny Bootloader (trong nhãn Options) thành khoảng 100 - 200 ms. Tôi đã thử bootloader với nút reset trên mạch thử nghiệm.

Thân,

LeDuc
18-11-2007, 11:27 PM
Tôi xác nhận là phiên bản 1.9.3 không nhận ra chip 887 với ID mới, vì chỉ có phiên bản 1.9.5 mới có tập tin piccodes.ini để người dùng tự bổ sung ID cho chip mới.

Về việc reset bằng tay, bạn xem lại mạch reset của bạn, cũng như chỉnh timeout (ms) của Tiny Bootloader (trong nhãn Options) thành khoảng 100 - 200 ms. Tôi đã thử bootloader với nút reset trên mạch thử nghiệm.

Thân,

Em đã chỉnh timeout lại và đã nạp được rồi .. Rất cam ơn anh ....
thanks for all !

hanhluckyly
21-11-2007, 12:02 AM
anh ơi share em cái bootloader 20Mhz baud 56000 với, ah tiện thể anh có thể chỉ cách cho tụi em thiết lập các thông số tr6en không để mắc công anh phải compile nhiều lần khi có nhiều người hỏi

thank you anh

namqn
21-11-2007, 01:06 AM
anh ơi share em cái bootloader 20Mhz baud 56000 với, ah tiện thể anh có thể chỉ cách cho tụi em thiết lập các thông số trên không để mắc công anh phải compile nhiều lần khi có nhiều người hỏi

thank you anh
Bạn chưa cho biết bạn dùng PIC nào. Source code cho một số PIC16, đa số PIC18, và một số dsPIC đã nằm trong tập tin nén của Tiny Bootloader. Phần source code cho các PIC18 của tôi cũng đã được đưa vào đó (thư mục con 'others/nnq'). Việc thiết lập cấu hình cũng khá đơn giản đối với những chip đã được hỗ trợ trong source code, bạn chỉ cần đảm bảo cấu hình giống như cho chương trình ứng dụng và cho phép bootloader làm việc đúng, và cấu hình đúng cho module UART (Claudiu viết sẵn macro tính giá trị nạp vào thanh ghi tạo baud rate, mà trong một số trường hợp sẽ cho sai số khá lớn, khi đó phải tự tính giá trị đó bằng tay và thay đổi ở lệnh tương ứng trong source code của firmware).

Thân,

hanhluckyly
21-11-2007, 11:50 AM
sory anh, em dùng PIC 18F4331 , anh share dùm em cái bootloader 20MHz baud 56000 với

namqn
21-11-2007, 07:25 PM
Firmware theo yêu cầu của bạn được đính kèm dưới đây. Tôi đã dùng cấu hình sau để dịch bootloader cho PIC18F4331:
CONFIG OSC = HS, FCMEN = OFF, IESO = OFF
CONFIG PWRTEN = ON, BOREN = ON, BORV = 27
CONFIG WDTEN = OFF, WINEN = OFF, WDPS = 128
CONFIG T1OSCMX = ON, HPOL = HIGH, LPOL = HIGH, PWMPIN = OFF
CONFIG MCLRE = ON, EXCLKMX = RD0, PWM4MX = RD5, SSPMX = RD1, FLTAMX = RD4
CONFIG STVREN = ON, LVP = OFF, DEBUG = OFF
Bạn chú ý là chip sẽ được nhận diện như PIC18F4320 (vì PIC18F4331 không có ID riêng cho nó).

Cách thức tùy biến các tập tin nguồn đã được tôi viết trong các source code dành cho PIC18 của tôi. Các bạn hãy thử nhìn qua một lần các source code đó.

Thân,

LeDuc
25-11-2007, 10:42 PM
Anh Nam , cho em hỏi khi nạp firmware(tiny botloader ) cho 16f887 em bị một trường hợp này mong anh xem giùm ..

Em truyền dữ liệu qua chuẩn giao tiếp USART đồng bộ Master kô được .Phần cứng là 2 chân RX(c7)+TX(c6) nối với 2 chân data + clock của thanh ghi dịch 74LS164 rồi đưa ra 7447 để giải mã hiện thị led 7 đoạn . Khi mô phỏng phần cứng trong proteus thì hoạt động bình thường nhưng khi nạp vào mach thực tế thì tất cả các chân đều ở mức điện áp cao( khoản 3v) ..

Cũng cùng phần cứng đó em sử dụng giao tiếp SPI , thì có thể quét led 7 đoạn ...
Em vẫn kô hiếu mong anh chỉ giúp...Và cho em hỏi hình như cách dịch bit của chế độ USART cũng khác so với cách dịch bit của chế độ SPI hả anh? em mô phỏng trong protues thì thấy 2 chế dộ giao tiếp đó , dịch bit ngược nhau ...

namqn
26-11-2007, 07:56 PM
Anh Nam , cho em hỏi khi nạp firmware(tiny botloader ) cho 16f887 em bị một trường hợp này mong anh xem giùm ..

Em truyền dữ liệu qua chuẩn giao tiếp USART đồng bộ Master kô được .Phần cứng là 2 chân RX(c7)+TX(c6) nối với 2 chân data + clock của thanh ghi dịch 74LS164 rồi đưa ra 7447 để giải mã hiện thị led 7 đoạn . Khi mô phỏng phần cứng trong proteus thì hoạt động bình thường nhưng khi nạp vào mach thực tế thì tất cả các chân đều ở mức điện áp cao( khoản 3v) ..

Cũng cùng phần cứng đó em sử dụng giao tiếp SPI , thì có thể quét led 7 đoạn ...
Em vẫn kô hiếu mong anh chỉ giúp...Và cho em hỏi hình như cách dịch bit của chế độ USART cũng khác so với cách dịch bit của chế độ SPI hả anh? em mô phỏng trong protues thì thấy 2 chế dộ giao tiếp đó , dịch bit ngược nhau ...
Các giao thức truyền thông như RS-232, SPI, hay I2C đều là những giao thức đã được định trước, thông thường không thích hợp cho việc xử lý cấp thấp phần cứng (dịch bit ra thanh ghi dịch để giải mã chẳng hạn). Tôi chưa viết phần SPI nhưng bạn có thể đọc về RS-232 ở đây:

http://namqn.byethost7.com/Commu.php

Thân,

stadiumbbc
09-07-2010, 09:35 AM
Tập tin hex được đính kèm dưới đây, được biên dịch theo cấu hình mà bạn yêu cầu, baud rate = 38400 bps.

Bạn có thể tìm thấy các tập tin nguồn cho các PIC18 khác nhau trong tập tin nén của Tiny Bootloader (thư mục con 'others/nnq'), có thể download từ link dưới đây.

http://www.etc.ugal.ro/cchiculita/software/tinyblddownload.htm

Thân,
Anh Nam ơi! em đang cần bootloader cho con 18F4331 tần số là 4MHZ , bit rate là 9600 .
Mong anh giúp em với.
Thanks.

vietnhan
24-12-2011, 02:38 PM
Anh cho em bootloader của 16f887 để truyền nhận dữ liệu bằng rs232.
Bootloader kèm theo file thì chi nhận được file hex khác,khi sử dụng rs232 điều khiển lại thì lai không được anh giúp dum em nha.