![]() |
|
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ử 4 túi
Tham gia ngày: May 2005
Bài gửi: 83
: |
Trích:
|
|
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
__________________
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 |
|
![]() |
![]() |
![]() |
#3 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Tiny Bootloader có nhược điểm là nó cần lệnh goto trong 4 word đầu tiên của file hex. Vì vậy nó không làm việc với một số trình dịch. Đáng tiếc nhất trong đó có hai phiên bản mới nhất của HTPIC là HTPICC9.50 PL3 và HTPICC18 9.50. Nhưng với phiên bản 8.05PL2 và 8.35PL3 lại chạy rất tốt. Em hỏi trên forum của bọn HTPIC thì mod trả lời, em làm theo cũng chẳng chạy. Trên diễn đàn Microchipc.com có một chú người nhật đưa ra giải pháp khác phục nhưng chỉ chạy với bản 9.50Lite còn bản "xịn" thì không chạy ![]() |
|
![]() |
![]() |
![]() |
#4 | ||
Đệ tử 4 túi
Tham gia ngày: May 2005
Bài gửi: 83
: |
Trích:
Trích:
Có lẽ do bước 3 tôi đã làm sai , anh có thể cho 1 chương trình mẫu tham khảo đc ko , tôi dùng C30 |
||
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
http://www.picvietnam.com/forum//showthread.php?t=333 Nếu đúng là bước 3 bạn làm không tốt thì tôi sẽ bàn tiếp về việc viết code trong C30 cho tiny bootloader. 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 |
|
![]() |
![]() |
![]() |
#6 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2007
Bài gửi: 2
: |
Trích:
HICCC!!! LINK DIE RÙI ANH OI!! |
|
![]() |
![]() |
![]() |
#7 |
Trưởng lão PIC bang
|
Bạn muốn nói link nào? Link để download tập tin ví dụ của dsPIC tutorial 1?
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 |
![]() |
![]() |
![]() |
#8 | |
Đệ tử 1 túi
Tham gia ngày: Mar 2007
Bài gửi: 25
: |
Trích:
|
|
![]() |
![]() |
![]() |
#9 |
Trưởng lão PIC bang
|
Các bài viết trong box đó sẽ bị ẩn đối với những người chưa đăng nhập. Bạn đăng nhập thì sẽ mở được bài viết bằng link đó. Đôi khi bạn phải đăng nhập lại vì một lý do nào đó. Trước khi thông báo lỗi kiểu như vậy bạn hãy kiểm tra lại xem bạn đang còn log in hay đã log out rồi. Tôi vừa kiểm tra link đó xong, nếu tôi chưa đăng nhập thì cũng nhận được thông báo lỗi, nhưng đăng nhập xong thì đọc được bài viết bình thường. Nó chỉ là cái link đến dsPIC tutorial 1 nằm trong box 'dsPIC'.
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 |
![]() |
![]() |
![]() |
#10 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 96
: |
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. thay đổi nội dung bởi: minhsondaklak, 12-08-2008 lúc 09:22 AM. |
![]() |
![]() |
![]() |
#11 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#12 |
Nhập môn đệ tử
Tham gia ngày: Jul 2013
Bài gửi: 4
: |
Xin code tiny bootloader cho pic16f877a qua giao tiếp RS485
mình mới tìm hiểu về tiny bootloader và đã thử thành công qua giao tiếp RS232, hiện tại mình đang sử dụng giao tiếp RS485 và có ý tường là dùng tiny bootloader qua RS485 (mình kết nối max485 với chân RX, TX của pic, chân điều khiển Max485 là RC5, thạch anh 20M, tốc độ 9600) mình ko biết nhiều về lập trình asm nên ko biết sửa code trong tiny bootloader cho phù hợp, mong các bạn giúp đỡ
|
![]() |
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Jul 2013
Bài gửi: 4
: |
chỉnh giúp tiny bootloader PIC16F877A qua RS485
mình có sửa code tiny bootloader PIC16F877A qua RS485, mô phỏng trên proteus và sử dụng bản tiny 1.95 thì có check dc pic và báo nạp thành công nhưng chương trình nạp ko chạy (đơn giản là nháy 1 con led, các thông số về fuse mình đã cấu hình để phù hợp với chương trình tiny bootloader), đoạn chương trình giao tiếp RS485 mình viết:
SendL macro car BCF RCSTA, CREN ; turn off receive on serial bsf PORTC,5 ;RS485 transmit/ movlw car movwf TXREG BSF STATUS, RP0 ; bank 1 set bank BTFSS TXSTA, TRMT ; wait until TRMT is high goto $-1 BCF STATUS, RP0 ; bank 0 bcf PORTC,5 ;RS485 receive BSF RCSTA, CREN ; enable receive on serial endm mong các bạn xem giúp, mình đang nghi ở chỗ: #define first_address max_flash-120 ; 100 word in size nhưng ko biết chỉnh sao cho đúng, chương trình mình sửa theo bản chuẩn của tiny bootloader như sau: radix DEC LIST P=16F887a, F=INHX8M ; change also: Configure->SelectDevice from Mplab ; auto-start at 4MHz internal osc xtal EQU 20000000 ; you may also want to change: _HS_OSC _XT_OSC baud EQU 9600 ; standard TinyBld baud rates: 115200 or 19200 ;xtal EQU 4000000 ; you may also want to change: _HS_OSC _XT_OSC ;baud EQU 19200 ; standard TinyBld baud rates: 115200 or 19200 ; The above 3 lines can be changed and buid a bootloader for the desired frequency (and PIC type) ;************************************************* ******************* ; Tiny Bootloader 16FxxxA series Size=100words ; claudiu.chiculita@ugal.ro ; http://www.etc.ugal.ro/cchiculita/so...bootloader.htm ;************************************************* ******************* #include "icdpictypes.inc" ;takes care of: #include "p16fxxxA.inc", max_flash, IdTypePIC #include "spbrgselect.inc" #include "bankswitch.inc" #define first_address max_flash-120 ; 100 word in size __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF errorlevel 1, -305 ; suppress warning msg that takes f as default cblock 0x20 buffer:80 endc cblock 0x78 crc contor i cnt1 cnt2 cnt3 flag endc SendL macro car BCF RCSTA, CREN ; turn off receive on serial bsf PORTC,5 ;RS485 transmit/ movlw car movwf TXREG BSF STATUS, RP0 ; bank 1 set bank BTFSS TXSTA, TRMT ; wait until TRMT is high goto $-1 BCF STATUS, RP0 ; bank 0 bcf PORTC,5 ;RS485 receive BSF RCSTA, CREN ; enable receive on serial endm ;0000000000000000000000000 RESET 00000000000000000000000000 ORG 0x0000 PAGESEL IntrareBootloader GOTO IntrareBootloader ;view with TabSize=4 ;&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&& ;---------------------- Bootloader ---------------------- ; ;PC_flash: C1h AddrH AddrL nr ...(DataLo DataHi)... crc ;PIC_response: id K K ORG first_address nop nop nop nop org first_address+4 IntrareBootloader ;init serial port clrf STATUS bsf STATUS,RP0 ;BANK1_ movlw b'10011111' ;//////////////////////////// movwf TRISC ;/////////////////////// bcf PORTC,5 ;RS485 receive movlw b'00100100' movwf TXSTA movlw spbrg_value movwf SPBRG BANK0_ movlw b'10010000' movwf RCSTA ;wait for computer call Receive sublw 0xC1 ;Expect C1 skpz goto way_to_exit SendL IdTypePIC ;PIC type ;SendL IdSoftVer ;firmware ver x MainLoop clrf STATUS ;bank0 SendL 'K' ;"-Everything OK, ready and waiting." mainl clrf crc call Receive ;H bsf STATUS,RP1 ;bank2 movwf EEADRH movwf flag ;used to detect if is eeprom call Receive ;L bsf STATUS,RP1 ;bank2 movwf EEADR call Receive ;count movwf contor movwf i incf i movlw buffer-1 movwf FSR rcvoct call Receive incf FSR movwf INDF decfsz i goto rcvoct movf crc,f ;check checksum skpz goto ziieroare ;write bsf STATUS,RP1 ;bank switch 0->2 movlw buffer movwf FSR writeloop ; write 2 bytes = 1 instruction clrwdt movf INDF,w movwf EEDATA incf FSR movf INDF,w movwf EEDATH incf FSR BANK3_ ;bank 2->3 bcf EECON1,EEPGD btfss flag,6 ;is eeprom (or flash) bsf EECON1,EEPGD bsf EECON1,WREN movlw 0x55 movwf EECON2 movlw 0xaa movwf EECON2 bsf EECON1,WR nop nop waitwre ; btfsc EECON1,WR ;for eeprom writes (wait to finish write) ; goto waitwre bcf EECON1,WREN BANK2_ ;bank2 incf EEADR ;does not cross zones btfss flag,6 ; if writing to EEPROM, skip first counter dec. decf contor decfsz contor goto writeloop goto MainLoop ziieroare SendL 'N' goto mainl Receive clrf STATUS movlw xtal/2000000+1 ; for 20MHz => 11 => 1second movwf cnt1 rpt2 clrf cnt2 rpt3 clrf cnt3 rptc btfss PIR1,RCIF ;test RX goto $+4 movf RCREG,w ;return in W addwf crc,f ;compute checksum return clrwdt decfsz cnt3 goto rptc decfsz cnt2 goto rpt3 decfsz cnt1 goto rpt2 ;timeout: way_to_exit ;exit in all other cases; must be BANK0/1 ;BANK0_ bcf RCSTA, SPEN ; deactivate UART goto first_address ;************************************************* ************ ; After reset ; Do not expect the memory to be zero, ; Do not expect registers to be initialised like in catalog. END |
![]() |
![]() |
![]() |
#14 |
Đệ tử 1 túi
|
Top-notch Сasual Dating - Authentic Ladies
Break free from traditional dating norms and embrace the best in casual connections.
True Females Prime casual Dating
__________________
Pretty Girls from your city |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Microchip Bootloader | falleaf | Bootloaders - Programmers - Debuggers - Emulators | 2 | 20-05-2017 11:43 AM |
Pvn Tiny Bootloader | ntc | Tiny Bootloader | 52 | 31-10-2012 01:27 PM |
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 |