PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Tiny Bootloader (http://www.picvietnam.com/forum/forumdisplay.php?f=67)
-   -   Cơ bản về bootloader & tiny bootloader (http://www.picvietnam.com/forum/showthread.php?t=130)

thaithienanh 03-08-2008 01:29 AM

Thầy Namq cho em xin file hex của PIC 18f4550 chạy thạch anh 20 MHz và baurate 57600 nhé :), em cảm ơn thầy.

namqn 03-08-2008 03:29 AM

Trích:

Nguyên văn bởi thaithienanh (Post 17914)
Thầy Namq cho em xin file hex của PIC 18f4550 chạy thạch anh 20 MHz và baurate 57600 nhé :), em cảm ơn thầy.

Bạn có ý định dùng module USB hay không? Những từ cấu hình khác cũng nên được mô tả, nếu không tôi sẽ phỏng đoán để đặt cấu hình khi dịch bootloader.

Thân,

thaithienanh 03-08-2008 09:13 AM

Trích:

Nguyên văn bởi namqn (Post 17916)
Bạn có ý định dùng module USB hay không? Những từ cấu hình khác cũng nên được mô tả, nếu không tôi sẽ phỏng đoán để đặt cấu hình khi dịch bootloader.

Thân,

Dạ cái này em nạp theo chuẩn 232 ^^ tại dùng chung kit với 16F877a , còn những cấu hình khác không có gì đặc biệt cả :)

bean984 04-08-2008 10:32 AM

đây là code bootloader của mình
Code:

        radix DEC
        LIST      P=16F877A, F=INHX8M        ; change also: Configure->SelectDevice from Mplab
xtal EQU 8000000                ; you may also want to change: _HS_OSC _XT_OSC
baud EQU 9600                        ; standard TinyBld baud rates: 115200 or 19200

mình lấy bootloader của con 16f873A và sử lại như vậy không biết có vấn đề gì không?
còn đây là code thử pic của mình
Code:

#include "16F877A.h" // PIC16F877A header file
#device 16F877A*=16 ADC=10
#include <defs_16F877A.h>
#include <stdlib.h>
#include <string.h>
#fuses HS, NOWDT,PUT, NOPROTECT, NOLVP, NODEBUG, BROWNOUT // for debug mode
#use delay(clock=8000000) // for 8Mhz crystal
#use fast_io(a)

void main(void)
{
  set_tris_a(0);
 
  while(true)
  {
  porta=255;
  delay_ms(2000);
  porta=85;
  delay_ms(2000);
  porta=170;
  delay_ms(2000);
  }
}

không biết cái boot loader của mình có vấn đề? hay code pic có vấn đề? mà khi nạp bằng tiny bootloader thấy thông báo ok rồi mà chương trình không chạy?.
nếu có thể thì cho mình xin file bootloader với cấu hình như trên(cả file .asm và .hex)
cảm ơn mọi người!

bean984 04-08-2008 10:50 AM

mình đã thử dùng PG2C và ICProg đọc lại con pic thì thấy phần code thử pic lại được ghi vào Eeprom? còn phần mã chương trình chỉ có bootloader?

namqn 04-08-2008 05:03 PM

Trích:

Nguyên văn bởi bean984 (Post 17930)
đây là code bootloader của mình
Code:

        radix DEC
        LIST      P=16F877A, F=INHX8M        ; change also: Configure->SelectDevice from Mplab
xtal EQU 8000000                ; you may also want to change: _HS_OSC _XT_OSC
baud EQU 9600                        ; standard TinyBld baud rates: 115200 or 19200

mình lấy bootloader của con 16f873A và sử lại như vậy không biết có vấn đề gì không?
...
không biết cái boot loader của mình có vấn đề? hay code pic có vấn đề? mà khi nạp bằng tiny bootloader thấy thông báo ok rồi mà chương trình không chạy?.
...

Bạn chỉ đưa có vài dòng đầu tiên của code cho bootloader, ngay cả cấu hình của bootloader cũng không rõ, do đó không thể nhận xét bootloader của bạn là có vấn đề hay không.

Thân,

namqn 04-08-2008 05:05 PM

Trích:

Nguyên văn bởi bean984 (Post 17931)
mình đã thử dùng PG2C và ICProg đọc lại con pic thì thấy phần code thử pic lại được ghi vào Eeprom? còn phần mã chương trình chỉ có bootloader?

Bạn cho biết đã dùng Tiny Bootloader phiên bản nào, và như post trên tôi đã nêu, code đầy đủ của bootloader, để xem liệu bootloader có chạy đúng như "thiết kế" của bạn hay không.

Thân,

namqn 05-08-2008 07:42 AM

1 Attachment(s)
Trích:

Nguyên văn bởi thaithienanh (Post 17914)
Thầy Namq cho em xin file hex của PIC 18f4550 chạy thạch anh 20 MHz và baurate 57600 nhé :), em cảm ơn thầy.

Các từ cấu hình sau đã được dùng để dịch firmware cho bootloader:
Code:

        CONFIG        PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2
        CONFIG        FOSC = HSPLL_HS, FCMEN = OFF, IESO = OFF
        CONFIG        PWRT = ON, BOR = OFF, BORV = 2, VREGEN = OFF
        CONFIG        WDT = OFF, WDTPS = 128
        CONFIG        MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = OFF
        CONFIG        STVREN = ON, LVP = OFF, ICPRT = OFF, DEBUG = OFF, XINST = OFF

Tập tin .hex được đính kèm. Chú ý: tần số làm việc của CPU là 48 MHz (96 MHz của khối PLL được chia cho 2).

Thân,

thaithienanh 06-08-2008 12:47 AM

Trích:

Nguyên văn bởi namqn (Post 17953)
Thân,

Em vừa test fimware thầy cho, nhưng không thành công, tiny nó không nhận ra PIC, thầy cho em hỏi có cần phải chú ý điều gì về phần cứng khi sử dụng fimware này không :). Về phần cứng của em em nghĩ đáng chú ý ở điểm chân 23 (chân D- của USB) em đã sử dụng cho giao tiếp I2C, vậy có ảnh hưởng gì đến cấu hình của PIC không ?

namqn 06-08-2008 06:26 AM

1 Attachment(s)
Trích:

Nguyên văn bởi thaithienanh (Post 17963)
Em vừa test fimware thầy cho, nhưng không thành công, tiny nó không nhận ra PIC, thầy cho em hỏi có cần phải chú ý điều gì về phần cứng khi sử dụng fimware này không :). Về phần cứng của em em nghĩ đáng chú ý ở điểm chân 23 (chân D- của USB) em đã sử dụng cho giao tiếp I2C, vậy có ảnh hưởng gì đến cấu hình của PIC không ?

Tôi đã thử Tiny Bootloader v1.9.1 với firmware đã post lên, cho thấy bootloader làm việc tốt (xem hình chụp đính kèm).

Về phần cứng thử nghiệm, ngoài hai chân RX và TX của module EUSART, tôi còn một tụ điện 470 nF nối vào chân Vusb (chân 18) của PIC (bạn không nên nối gì khác vào chân này).

Tôi cho rằng việc dùng chân 23 của PIC cho giao tiếp I2C không ảnh hưởng đến bootloader.

Thân,

namqn 06-08-2008 06:51 AM

1 Attachment(s)
Tôi vừa kiểm tra lại tập tin .hex mà tôi đã upload ở bài viết #84, một dấu hiệu đáng ngờ là tập tin có ngày tháng được cập nhật là 04/8/2006, mặc dù tôi biên dịch hôm qua. Thông tin cấu hình trong tập tin đó bị thiếu (tôi cũng không rõ vì lý do gì, vì firmware được tôi biên dịch lại hôm nay cũng sử dụng cùng tập tin nguồn, trên cùng một máy tính).

Vì lý do trên, tôi upload lại firmware mà tôi vừa biên dịch và thử nghiệm vào hôm nay. Bạn thử lại xem bootloader có làm việc tốt hay không.

Thân,

thaithienanh 06-08-2008 07:08 PM

Trích:

Nguyên văn bởi namqn (Post 17966)
Tôi vừa kiểm tra lại tập tin .hex mà tôi đã upload ở bài viết #84, một dấu hiệu đáng ngờ là tập tin có ngày tháng được cập nhật là 04/8/2006, mặc dù tôi biên dịch hôm qua. Thông tin cấu hình trong tập tin đó bị thiếu (tôi cũng không rõ vì lý do gì, vì firmware được tôi biên dịch lại hôm nay cũng sử dụng cùng tập tin nguồn, trên cùng một máy tính).

Vì lý do trên, tôi upload lại firmware mà tôi vừa biên dịch và thử nghiệm vào hôm nay. Bạn thử lại xem bootloader có làm việc tốt hay không.

Thân,

Hi cảm ơn thầy, với fimware mới này PIC chạy tốt rồi, àh chân 18 em sử dụng cho giao tiếp I2C (có treo một điện trở), nhưng mạch vẫn chạy tốt vậy là không ảnh hưởng ^^ vui rùi, em chúc thầy luôn khỏe để dành thời gian cho công việc giảng dạy thất tốt ạh :)

minhsondaklak 11-08-2008 08:00 PM

Hình dung về Bootloader ?
 
Đọc xong phần bootloader, mình chợt nghĩ: Nó giống như là "hệ điều hành" của chip VĐK, tuỳ chọn cho VĐK nạp chương trình mới hay là chạy chương trình cũ đã nạp trước đó.
Việc hình dung nôm na như nhế có thể giúp bạn dể nắm bắt và dể nhớ về Bootloader.

namqn 11-08-2008 10:43 PM

Trích:

Nguyên văn bởi minhsondaklak (Post 18098)
Đọc xong phần bootloader, mình chợt nghĩ: Nó chính là "hệ điều hành" của chip VĐK, tuỳ chọn cho VĐK nạp chương trình mới hay là chạy chương trình cũ đã nạp trước đó.
Việc hình dung nôm na như nhế có thể giúp bạn dể nắm bắt và dể nhớ về Bootloader.

Nếu hình dung theo kiểu này thì bootloader trong PIC giống như bootloader của MBR hay của partition trong ổ đĩa của máy tính, cho phép bạn khởi động một trong những hệ điều hành trên đĩa, với ổ đĩa có nhiều hệ điều hành (vì vậy nên firmware loại này của PIC cũng được gọi là bootloader). Nếu gọi là hệ điều hành thì nó phải thường xuyên chạy và điều phối các ứng dụng trên PIC, bootloader không làm việc đó đâu.

Thân,

kebitmat_f 27-08-2008 05:54 PM

Em mới tìm hiểu về Pic. Định sử dụng nạp chương trình cho Pic6F877A bằng tiny bootloader. Nhưng vẫn lơ tơ mơ về cái cách này. Theo em hiểu : Ngoài mạch ứng dụng của Pic thì thiết kế thêm 2 module : mạch tinybootloader và RS232. Cái thằng RS232 em đọc tài liệu về nó thì bảo đó là một cách giao tiếp PC với thiết bị ngoại vi. Như thế nếu em có mạch tinybootloader rồi muốn nối với PC thì cần làm những gì? Nối vào các chân của tiny bootloader vào đâu của PC? hay là fai làm một mạch cứng nữa?
hic hic. Thấy bối rối quá.
Mong các bác chỉ giáo tận tình. Nếu có hướng dẫn cụ thể, chi tiết (từ cứng đến mềm)từng bước nạp cho Pic bằng tiny bootloader thì tốt quá.
Thanks !


Múi giờ GMT. Hiện tại là 09:12 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