![]() |
|
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 |
|
|
|
|
#1 |
|
Đệ tử 8 túi
|
Đây là bản báo cáo đầy đủ.
Trong đó có thêm phần của anh Nam về kết quả thử nghiệm Tiny Bootloader đối với dsPIC. Các hình vẽ không đạt yêu cầu, mình sẽ chỉnh sửa lại sau. Một điểm cần lưu ý, là phiên bản này không còn phù hợp vói các chuẩn mới của PICVIETNAM. Các vấn đề đưa ra ở đây chỉ còn mang tính chất tham khảo, về sơ đồ nguyên lí, nguyên lí hoạt động về cách sử dụng Tiny Bootloader, ... và không khuyến khích việc làm tiny bootloader theo sơ đồ mạch in trong báo cáo. PVN Tiny Bootloader Version 3.0 hiện tại đã hoàn tất, và sẽ sớm thông báo kết quả trên diễn đàn. Đây sẽ là sản phẩm PVN Tiny Bootloader chính thức. thay đổi nội dung bởi: ntc, 25-05-2006 lúc 11:11 PM. |
|
|
|
|
|
#2 |
|
Đệ tử 8 túi
|
6.3. Một số lỗi thường gặp khi sử dụng Tiny Bootloader
Trong quá trình sử dụng có thể đôi lúc Tiny Bootloader hoạt động không thực sự suôn sẻ mà gặp phải một số trục trặc. Các trường hợp này đều được chương trình trên máy tính báo lỗi. Sau đây là một số lỗi thường gặp và cách khắc phục: - Lỗi không tìm thấy PIC: đây là một lỗi rất hay gặp. Trong trường hợp này, ta cần kiểm tra lại tất cả các bước tiến hành với Tiny Bootloader để phát hiện lỗi và khăc phục (kết nối phần cứng có đúng chưa, chương trình Firmware đã được nạp hay chưa, các thông số thiết lập tương thích hay chưa,…) ![]() Hình 11: Lỗi “không tìm thấy PIC”. - Lỗi do chương trình nạp vào PIC không tương thích với vi điều khiển đang sử dụng. Trong trường hợp này cần kiểm tra lại chương trình cần nạp vào PIC có thực sự tương thich chưa. Ví dụ, không thể lấy chương trình viết cho PIC18F để nạp vào PIC16F. ![]() Hình 12: Lỗi do chương trình đưa vào PIC không tương thích. - Lỗi do thanh ghi PCLATH chưa được xử lí phù hợp trong chương trình ứng dụng: trong trường hợp này cần thêm vào các lệnh xử lí thanh ghi PCLATH vào chương trình ứng dụng đã được trình bày ở trên. Khi gặp lỗi này, chương trình ứng dụng vẫn được nạp vào vi điều khiển, nhưng quá trình thực thi sẽ không đúng. ![]() Hình 13: Lỗi do thanh ghi PCLATH chưa được xử lí thích hợp. thay đổi nội dung bởi: ntc, 27-05-2006 lúc 11:34 AM. |
|
|
|
|
|
#3 |
|
Đệ tử 1 túi
Tham gia ngày: Jun 2005
Bài gửi: 15
: |
Các bác cho em hỏi "Chương trình Tiny Bootloader" cho con PIC18F458, có bác nào có cho em phát. Tìm search không ra.
|
|
|
|
|
|
#4 | |
|
Trưởng lão PIC bang
|
Trích:
http://www.etc.ugal.ro/cchiculita/so...bootloader.htm Giải nén nó vào một thư mục nào đó, trong thư mục con picsource/other/nnq là source của chương trình bootloader cho các PIC18F đã được tôi gửi cho Claudiu Chiculita (tác giả yêu cầu tôi gửi để giúp cho các người dùng khác). Tôi tin là bạn có đủ khả năng để chỉnh lại một số thiết lập như hướng dẫn trong tập tin nguồn để có thể dịch được một bootloader cho PIC18F458. Chú ý: các tập tin nguồn của tôi gửi cho Claudiu có lỗi định dạng khi mở trên Windows, xem post #20 để lấy các tập tin nguồn gốc. 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, 15-09-2006 lúc 07:20 PM. |
|
|
|
|
|
|
#5 |
|
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 2
: |
Em đã tìm thấy trong file TinyB18F32 có hỗ trợ 18F4520. Em đã chỉnh sửa như sau nhưng khi biên dịch vẫn bị lỗi.
************************************************** **************** Lỗi như sau: (ai biết chỉ giùm em với) Clean: Deleting intermediary and output files. Clean: Done. Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F4520 "TinyB18F32.asm" /l"TinyB18F32.lst" /e"TinyB18F32.err" Warning[218] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\MY DOCUMENTS\PICSOURCE\OTHER\NNQ\TINYB18F32.ASM 1 : Expected DEC, OCT, HEX. Will use HEX Error[129] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\MY DOCUMENTS\PICSOURCE\OTHER\NNQ\TINYB18F32.ASM 2 : Expected (END) Error[173] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\MY DOCUMENTS\PICSOURCE\OTHER\NNQ\TINYB18F32.ASM 2 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\MY DOCUMENTS\PICSOURCE\OTHER\NNQ\TINYB18F32.ASM) Halting build on first failure as requested. BUILD FAILED: Fri Apr 11 21:53:26 2008 ************************************************** **************************** Chương trình đã chỉnh sửa: radix DEC LIST P=18F4520 ; change also: Configure->Select Device from MPLAB ; For 2455, 2550, 4455, and 4550: 4 MHz quartz / 1 * 24 / 4 = 24 MHz xtal EQU 12000000 ; you may want to change: _XT_OSC_1H _HS_OSC_1H _HSPLL_OSC_1H baud EQU 19200 ; standard TinyBld baud rates: 115200 or 19200 ; The above 3 lines can be changed and built a bootloader for the desired frequency (and PIC type) ;************************************************* ******************* ; Tiny Bootloader 18F series Size=100words ; claudiu.chiculita@ugal.ro ; http://www.etc.ugal.ro/cchiculita/so...bootloader.htm ; Modified by Nam Nguyen-Quang for testing different PIC18Fs with tinybldWin.exe v1.9 ; namqn@yahoo.com ;************************************************* ******************* ; This source file is for PIC18F2420, 2520, 4420, 4520, 2455, 2550, 4455, and 4550 ; Copy these include files to your project directory (i.e. they are in the same ; directory with your .asm source file), if necessary #include "icdpictypes.inc" ; Takes care of: #include "p18fxxx.inc", max_flash, IdTypePIC #include "spbrgselect.inc" ; RoundResult and baud_rate #define first_address max_flash-200 ;100 words ; For different PICs, uncomment the appropriate lines of CONFIG directives ; as indicated, and comment out all the other lines, if necessary ; For example, the following configuration is for PIC18F4550, with 4 MHz crystal ; You could find the symbol names for the chip in its include file ; (in the Microchip\MPASM Suite directory) ;----- CONFIG1L Options ----- ; For 18F2455, 2550, 4455, and 4550 ; CONFIG PLLDIV = 1, CPUDIV = OSC3_PLL4, USBDIV = 2 ;----- CONFIG1H Options ----- ; For 18F2455, 2550, 4455, and 4550 ; CONFIG FOSC = HSPLL_HS, FCMEM = OFF, IESO = OFF ; For 18F2420, 2520, 4420, and 4520 ; CONFIG OSC = HS, FCMEN = OFF, IESO = OFF CONFIG OSC = INTIO67, FCMEN = OFF, IESO = OFF ; Use internal oscilator, xtal = 8000000 ;----- CONFIG2L Options ----- ; For 18F2455, 2550, 4455, and 4550 ; CONFIG PWRT = ON, BOR = OFF, BORV = 21, VREGEN = OFF ; For 18F2420, and 4420 ; CONFIG PWRT = ON, BOREN = ON, BORV = 27 ; For 18F2520, and 4520 CONFIG PWRT = ON, BOREN = ON, BORV = 28 ;----- CONFIG2H Options ----- ; For all of the chips associated with this source file CONFIG WDT = OFF, WDTPS = 128 ;----- CONFIG3H Options ----- ; For 18F2455, 2550, 4455, and 4550 ; CONFIG MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = OFF ; For 18F2420, and 4420 ; CONFIG MCLRE = ON, PBADEN = OFF, CCP2MX = PORTC ; For 18F2520, and 4520 CONFIG MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = PORTC ;----- CONFIG4L Options ----- ; For 18F2455, 2550, 4455, and 4550 ; CONFIG STVREN = ON, LVP = OFF, ICPRT = OFF, DEBUG = OFF, XINST = OFF ; For 18F2420, and 4420 ; CONFIG STVREN = ON, LVP = OFF, ENHCPU = OFF, DEBUG = OFF ; For 18F2520, and 4520 CONFIG STVREN = ON, LVP = OFF, DEBUG = OFF, XINST = OFF ;----------------------------- PROGRAM --------------------------------- cblock 0 crc i cnt1 cnt2 cnt3 counter_hi counter_lo flag endc cblock 10 buffer:64 dummy4crc endc SendL macro car movlw car movwf TXREG endm ;0000000000000000000000000 RESET 00000000000000000000000000 ORG 0x0000 GOTO IntrareBootloader ;view with TabSize=4 ;&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&& ;---------------------- Bootloader ---------------------- ;PC_flash: C1h U H L x ... <64 bytes> ... crc ;PC_eeprom: C1h 40h EEADR EEDATA 0 crc ;PC_cfg C1h U OR 80h H L 1 byte crc ;PIC_response: type `K` ORG first_address ;space to deposit first 4 instr. of user prog. nop nop nop nop org first_address+8 IntrareBootloader ;init IntOSC, added by Nam Nguyen-Quang movlw 0x70 movwf OSCCON ; the above 2 lines should be commented out for designs not using the internal oscilator ; or for the chips without the internal oscilator ;init serial port movlw b'00100100' movwf TXSTA movlw spbrg_value movwf SPBRG movlw b'10010000' movwf RCSTA ;wait for computer rcall Receive sublw 0xC1 ;Expect C1h bnz way_to_exit SendL IdTypePIC ;send PIC type MainLoop SendL 'K' ; "-Everything OK, ready and waiting." mainl clrf crc rcall Receive ;Upper movwf TBLPTRU movwf flag ;(for EEPROM and CFG cases) rcall Receive ;Hi movwf TBLPTRH movwf EEADR ;(for EEPROM case) rcall Receive ;Lo movwf TBLPTRL movwf EEDATA ;(for EEPROM case) rcall Receive ;count movwf i incf i lfsr FSR0, (buffer-1) rcvoct ;read 64+1 bytes movwf TABLAT ;prepare for cfg; => store byte before crc rcall Receive movwf PREINC0 decfsz i bra rcvoct tstfsz crc ;check crc bra ziieroare btfss flag,6 ;is EEPROM data? bra noeeprom movlw b'00000100' ;Setup eeprom rcall Write bra waitwre noeeprom btfss flag,7 ;is CFG data? bra noconfig tblwt* ;write TABLAT(byte before crc) to TBLPTR*** movlw b'11000100' ;Setup cfg rcall Write bra waitwre noconfig ;write eraseloop movlw b'10010100' ; Setup erase rcall Write TBLRD*- ; point to adr-1 writebigloop movlw 2 ; 2groups movwf counter_hi lfsr FSR0,buffer writesloop movlw 32 ; 32bytes = 16instr movwf counter_lo writebyte movf POSTINC0,w ; put 1 byte movwf TABLAT tblwt+* decfsz counter_lo bra writebyte movlw b'10000100' ; Setup writes rcall Write decfsz counter_hi bra writesloop waitwre ;btfsc EECON1,WR ;for eeprom writes (wait to finish write) ;bra waitwre ;no need: round trip time with PC bigger than 4ms bcf EECON1,WREN ;disable writes bra MainLoop ziieroare ;CRC failed SendL 'N' bra mainl ;******** procedures ****************** Write movwf EECON1 movlw 0x55 movwf EECON2 movlw 0xAA movwf EECON2 bsf EECON1,WR ;WRITE nop ;nop return Receive movlw xtal/2000000+1 ; for 20MHz => 11 => 1second delay ; for 18F2xxx chips, this should be xtal/1000000+1 movwf cnt1 rpt2 clrf cnt2 rpt3 clrf cnt3 rptc btfss PIR1,RCIF ;test RX bra notrcv movf RCREG,w ;return read data in W addwf crc,f ;compute crc return notrcv decfsz cnt3 bra rptc decfsz cnt2 bra rpt3 decfsz cnt1 bra rpt2 ;timeout: way_to_exit bcf RCSTA, SPEN ; deactivate UART bra first_address ;************************************************* ************ ; After reset ; Do not expect the memory to be zero, ; Do not expect registers to be initialised like in catalog. END |
|
|
|
|
|
#6 |
|
Trưởng lão PIC bang
|
Đường dẫn tuyệt đối của tập tin nguồn quá dài (hơn 62 ký tự), bạn nên giải nén tập tin nguồn vào một thư mục con nào đó của thư mục gốc chẳng hạn.
Bạn cũng chú ý đọc post #20 của luồng này nữa, vì các tập tin nguồn tôi đã gửi cho Claudiu đã bị định dạng lại theo format của Unix. 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 |
|
|
|
|
|
#7 |
|
Nhập môn đệ tử
Tham gia ngày: Sep 2006
Bài gửi: 3
: |
Bác Namqn à, tôi dùng MPLAB dịch file TinyB18F.asm trong tinybootloader lấy trên web trên cho con 18F2320 mà ko được.
Tôi đã include 2 file .inc và file 18f2320.lkr vào mà nó vẫn báo lỗi sau: Clean: Deleting intermediary and output files. Clean: Done. Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F2320 "TinyB18F.asm" /l"TinyB18F.lst" /e"TinyB18F.err" /o"TinyB18F.o" Warning[218] C:\NEW FOLDER\TINYB18F.ASM 1 : Expected DEC, OCT, HEX. Will use HEX Error[129] C:\NEW FOLDER\TINYB18F.ASM 2 : Expected (END) Halting build on first failure as requested. Tôi đã edit phần config để lấy file hex cho 18f2320 rồi. Mong bác sửa giúp. Many thanks |
|
|
|
|
|
#8 | |
|
Trưởng lão PIC bang
|
Trích:
Bạn xem thử hình chụp cửa sổ MPLAB của tôi khi build Tiny Bootloader cho PIC18F dưới đây, tôi không hề phải thêm các tập tin .inc và .lkr. 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 |
|
|
|
|
|
|
#9 |
|
Nhập môn đệ tử
Tham gia ngày: Sep 2006
Bài gửi: 3
: |
Bác Nam à, tôi về làm đúng như bác mà nó có thèm Success đâu.
Tôi gửi kèm file TinyB18F.asm tôi configure cho 18F2320 nhé. Nó vẫn báo lỗi thế. Tôi đã select device là 18F2320 luôn rồi. Many thanks! @admin: sao forum rất khó login, nhập đúng user và pass rồi, chào rồi mà vẫn phải login lại, đang post bài cũng phải login lại. |
|
|
|
|
|
#10 |
|
Trưởng lão PIC bang
|
Tôi đã phát hiện lỗi về định dạng của các tập tin nguồn cho các PIC18F mà tôi đã gửi cho Claudiu, chúng hiện được định dạng là Unix, UTF-8. Các tập tin này không thể hiển thị đúng khi mở trong Notepad.
Đó là lý do khiến MPLAB không thể biên dịch các tập tin nguồn này, như bạn killserver vừa phản hồi, mặc dù MPLAB vẫn hiển thị đúng trong cửa sổ soạn thảo. Rất cám ơn bạn về thông tin này, vì tôi đã không kiểm tra các tập tin đó trong phiên bản mới nhất của Tiny Bootloader trên trang web của Claudiu. Nếu các bạn phát hiện một lỗi biên dịch tương tự, hãy kiểm tra bằng cách mở tập tin nguồn đó trong Notepad, nếu chúng không được xuống dòng đúng thì có nghĩa là tập tin nguồn đó bị lỗi định dạng. Tôi gửi kèm theo các tập tin nguồn gốc trong máy của tôi. 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 |
|
|
|
|
|
#11 |
|
Nhập môn đệ tử
Tham gia ngày: Sep 2006
Bài gửi: 3
: |
Cảm ơn bác, tôi cũng thấy như thế, khi mở bằng notepad thì nó đầy cả 1 trang mà ko có xuống dòng but lại ko nghĩ ra.
|
|
|
|
|
|
#12 |
|
Đệ tử 1 túi
Tham gia ngày: Aug 2005
Bài gửi: 14
: |
Bác Namqn à, bác có thể share cho em file hex bootloader của con dsPIC30F4011, UART1, PLLx8 và PLLx16 không.
Thanks bác trước. namqn: bạn chưa cho biết tần số đưa vào PLL (thạch anh ngoài hay internal RC?). thay đổi nội dung bởi: namqn, 12-10-2006 lúc 07:15 PM. |
|
|
|
|
|
#13 |
|
Đệ tử 1 túi
Tham gia ngày: Aug 2005
Bài gửi: 14
: |
Sorry bác Namqn, bác edit vào bài của em nên em ko thấy bài mới ko vào.
Em dùng thạch anh ngoài 7.3728MHz bác ạ. Thanks bác nhiều ![]() |
|
|
|
|
|
#14 |
|
Trưởng lão PIC bang
|
Chip dùng cấu hình sau:
Code:
config __FOSC, CSW_FSCM_OFF & XT_PLL8 hay config __FOSC, CSW_FSCM_OFF & XT_PLL16 config __FWDT, WDT_OFF config __FBORPOR, MCLR_EN & PBOR_OFF config __FGS, CODE_PROT_OFF 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 |
|
|
|
|
|
#15 |
|
Đệ tử 1 túi
Tham gia ngày: Aug 2005
Bài gửi: 14
: |
Thanks bác Nam, em sẽ về thử và reply lại cho bác.
![]() |
|
|
|
![]() |
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|
Similar Threads
|
||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
| Cơ bản về bootloader & tiny bootloader | ntdung | Tiny Bootloader | 153 | Hôm qua 05:21 AM |
| Microchip Bootloader | falleaf | Bootloaders - Programmers - Debuggers - Emulators | 2 | 20-05-2017 11:43 AM |
| xin bootloader của pic18f4331 | hoangminh1234 | Tiny Bootloader | 30 | 24-12-2011 02:38 PM |
| Tiny bootloaders | falleaf | Tiny Bootloader | 15 | 01-02-2010 03:13 PM |
| Xin file hex bootloader của PIC16F84A | hanhluckyly | Tiny Bootloader | 1 | 18-10-2006 09:36 PM |