PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Tiny Bootloader (http://www.picvietnam.com/forum/forumdisplay.php?f=67)
-   -   Pvn Tiny Bootloader (http://www.picvietnam.com/forum/showthread.php?t=439)

nguyenhuutan 11-04-2008 10:27 PM

Các anh làm ơn tìm giúp em bootloader cho PIC18F4520 với. Em đã down file của pác nqnam về rồi mà không thấy hỗ trợ 18F4520. Em cài đặt như trong source file cho 18F452 rồi nạp cho con 4520 được không? Cảm ơn.

nguyenhuutan 11-04-2008 10:56 PM

Lỗi biên dịch ở chỗ nào
 
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

namqn 11-04-2008 11:57 PM

Đườ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,

bigtitan 14-05-2008 01:28 AM

Mấy anh cho em hỏi, quy trình tạo 1 file HEX mới nạp vào làm bootloader cho bất kì con PIC nào là sao(nghĩa là mỗi con 1 file riêng , như 4331, 4431, 877, hay con nào đó,chứ ko phải với mọi nhe, đừng hiểu nhầm em). Em thấy cứ phiền bác nam config dùm ngại quá,lủi này đó ko có net sao nhờ được.

namqn 14-05-2008 08:09 AM

Trích:

Nguyên văn bởi bigtitan (Post 16205)
Mấy anh cho em hỏi, quy trình tạo 1 file HEX mới nạp vào làm bootloader cho bất kì con PIC nào là sao(nghĩa là mỗi con 1 file riêng , như 4331, 4431, 877, hay con nào đó,chứ ko phải với mọi nhe, đừng hiểu nhầm em). Em thấy cứ phiền bác nam config dùm ngại quá,lủi này đó ko có net sao nhờ được.

Tôi copy phần chú thích mà tôi đã viết trong các source code của Tiny Bootloader cho PIC18F dưới đây.
Code:

        radix DEC
        LIST      P=18F4331        ; change also: Configure->Select Device from MPLAB
xtal EQU 20000000                ; you may want to change: _XT_OSC_1H  _HS_OSC_1H  _HSPLL_OSC_1H
baud EQU 56000                        ; 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/software/picbootloader.htm
        ;        Modified by Nam Nguyen-Quang for testing different PIC18Fs with tinybldWin.exe v1.9
        ;        namqn@yahoo.com
        ;********************************************************************

;        This source file is for PIC18F242, 252, 442, 452, 248, 258, 448, 458, 2220, 2221, 2320,
;        2321, 4220, 4221, 4320, 4321, 1220, 1320, 2331, 2431, 4331, 4431, 2439, 2539, 4439, and 4539
       
;        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 PIC18F4580, with 8 MHz crystal
;        You could find the symbol names for the chip in its include file
;        (in the Microchip\MPASM Suite directory)

Chú thích của Claudiu như sau: 3 dòng trên có thể được thay đổi để dịch bootloader cho cấu hình (và loại PIC) mong muốn. Ngay sau directive LIST có chú thích rằng bạn cũng phải thay đổi loại PIC bằng lệnh menu Configure->Select Device của MPLAB IDE.

Nếu bạn không hiểu phần hướng dẫn của tôi, tôi xin dịch thành tiếng Việt như sau:
Với các loại PIC khác nhau, bỏ chú thích những dòng tương ứng của các directive CONFIG như đã chỉ ra, và chú thích tất cả những dòng khác, nếu cần thiết. Ví dụ, cấu hình sau là cho PIC18F4580, với thạch anh 8 MHz. Bạn có thể tìm thấy các ký hiệu cho chip trong tập tin include của nó (nằm trong thư mục Microchip\MPASM Suite).

Tôi đã chỉ ra tập tin này áp dụng cho những PIC18F nào. Tất cả những từ cấu hình cần thiết đều đã được tôi làm mẫu, việc của bạn là thay thế những mẫu này với cấu hình phù hợp cho yêu cầu của bạn, sau đó biên dịch project. Chỉ cần copy tập tin nguồn .asm cùng với 2 tập tin "icdpictypes.inc" và "spbrgselect.inc" (chú ý, tôi có bổ sung các chip vào trong tập tin "icdpictypes.inc", do đó bạn nên dùng tập tin do tôi cung cấp).

Thân,

Hard 15-05-2008 04:35 PM

Hi,
BootLoader (BLD) là một phần rất hay của lập trình VDK, tui luôn tìm cách sử dụng BLD khi sử dụng với một loại VDK nào. Xem trong topic này, tui thấy các bác trao đổi về việc sử dụng BLD có sẵn, tui thì lại không thích như vậy vì thực sự tui muốn hiểu chi tiết hơn về nó và viết một cái BLD cho riêng mình để có thể làm chủ nó, làm cho nó hoạt động theo ý mình.
Tui tiếp cận với PIC bằng CCS vì vậy đọc mã nguồn bằng ASM tui không hiểu, nếu muốn hiểu thì phải mất thời gian nghiên cứu tập lệnh, cái này không có lợi đối với tui. Tui cũng đã đọc mã nguồn BLD của CCS (trong mục Example) nhưng cũng không hiểu lắm và cách nó làm cũng khác với tinyBLD mà các bác đang trao đổi ở đây mà tui thích kiểu tinyBLD này, thấy nó tiện hơn. Vì vậy tui muốn dùng CCS để viết riêng một BLD theo kiểu tinyBLD mà các bác đang trao đổi. Tuy nhiên, để BLD có thể giao tiếp với phần mềm truyền file hex trên PC thì phải biết giao thức của nó. Đấy chính là cái tui cần hỏi các bác về cách thức mà BLD và phần mềm trên PC như thế nào? Để bắt tay thì nó phải truyền cái gì? cái gì được truyền đầu tiên và tiếp theo là cái gì cho đến khi quá trình kết thúc? Phải nắm được những thông tin đó thì mới có thể lập trình được.
Một câu hỏi nữa cần các bác trả lời là: tại sao tui viết
#org 0x1F00
void main(void)
{
// code for testing here
}
Nhưng khi biên dịch thì kết quả trong file Hex là mất khá nhiều byte (khoảng vài chục) mới đến lệnh nhảy tới địa chỉ của hàm main() (tức 0x1F00). Không phải như chúng ta nghĩ là hàm main là hàm được thực thi đầu tiên nên chỉ mất 4 byte (từ 0000 đến 0003) cho lệnh nhảy. Nếu như vậy thì có cách nào để cho CCS biên dịch ra lệnh đầu tiên là lệnh nhảy đến hàm main lập tức không? Nếu không thực hiện được điều này thì không thể viết BLD kiểu tinyBLD được.
Tui mới tìm hiểu về CCS và PIC nên cũng chưa nắm rõ để giải quyết vấn đề này. Rất mong các cao thủ bỏ chút công sức giúp đỡ. Cảm ơn các bác đã đọc bài.
Thân ái.

namqn 15-05-2008 06:49 PM

Trước hết, bạn định dùng phần mềm trên host PC của Tiny Bootloader hay sẽ tự viết? Giao thức của Tiny Bootloader khá đơn giản, có thể thấy ngay trong phần chú thích của các mã nguồn firmware.

Về chuyện hàm main() được thực thi sau vài chục chu kỳ lệnh, đây là chuyện bình thường, vì các trình biên dịch cấp cao thường thiết lập một số điều kiện làm việc (ngăn xếp, biến được khởi tạo, ...) trước khi nhảy đến chương trình chính, trong giai đoạn startup. Nếu dùng C18 chẳng hạn, bạn có thể đọc mã nguồn startup. Với CCS C thì tôi không rõ bạn có thể can thiệp gì vào giai đoạn startup hay không, đơn giản vì tôi không dùng nó.

Thân,

Hard 16-05-2008 09:04 AM

Hi,
Đúng là ngôn ngữ bậc cao thì nó có làm một vài thao tác như vậy, nên tui muốn hỏi các bác là có cách nào để loại bỏ cái này không? Tui đã dùng cách như sau (xem đoạn code bên dưới) nhưng không được, khi biên dịch nó báo lỗi tùm lum, invalid org
#org 0x0003, 0x1f00 {} // Báo cho trình biên dich biết là khi biên dịch không được bỏ bất kỳ mã lệnh nào vào vùng địa chỉ này.
Nếu các bác để ý thì đó là phần bộ nhớ chương trình từ địa chỉ ngắt đầu tiên đến địa chỉ đầu tiên của BLD. Tuy nhiên, CCS chỉ cho phép bỏ trống từ địa chỉ 0x0033 trở đi thôi, xâm phạm vào vùng địa chỉ ngắt hay reset là không được. Có cách nào để giải quyết vấn đề này không nhỉ?
Theo cách làm của CCS thì BLD của nó đặt ở phần đầu bộ nhớ chương trình nên các chương trình ứng dụng mình viết để nạp bằng BLD phải khai báo lại:
#build(reset = BLD_END + 1, interrupt = BLD_END + 5)
Tui không thích kiểu như vậy vì nếu làm thế thì không thể viết chương trình ứng dụng trên các trình biên dịch khác để dùng BLD được (vì địa chỉ reset luôn là 0x0000).
Có ai có cao kiến nào không?

Thân ái.

window 24-09-2008 10:05 AM

Cám ơn các bạn rất nhiều !

dang tuan 02-10-2009 05:44 PM

ban ơi chỉ cho mình cách dịch lại firmware bootloader với sao mình dịch lại nó báo lỗi tùm num cả nhỉ
cám ơn nhiều

elvies 15-06-2012 12:44 AM

Xin thầy Nam vui lòng xem qua và trợ giúp phần biên dịch bootloader cho pic18f4520
 
Xin thầy Nam vui lòng xem qua phần lỗi này dùm em, em thường sử dụng ccsc để lập trình nên em không nắm rõ được các thanh ghi và nội dung đoạn code trong file TinyB18F của thầy, tuy nhiên em cũng đọc được các hướng dẫn ngay trong đoạn code và làm theo, tuy nhiên khi biên dịch thì lại xảy ra lỗi bên dưới. Em đã copy toàn bộ các file header vào cùng thư mục của file ".asm". Em cũng đã kiểm tra file nguồn đúng chuẩn windows(em sử dụng folder thầy gửi sau này và đã mở bằng notepad).
----------------------------------------------------------------------
Debug build of project `D:\picsource\new\Pic18f4520_20MHz_38400bps.mcp' started.
Language tool versions: MPASMWIN.exe v5.45, mplink.exe v4.43, mplib.exe v4.43
Preprocessor symbol `__DEBUG' is defined.
Thu Jun 14 23:11:23 2012
----------------------------------------------------------------------
Make: The target "D:\picsource\other\TinyB18F\TinyB18F.o" is out of date.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F4520 "TinyB18F.asm" /l"TinyB18F.lst" /e"TinyB18F.err" /d__DEBUG=1
Error[176] D:\PICSOURCE\OTHER\TINYB18F\TINYB18F.ASM 35 : CONFIG Directive Error: (setting "OSCSError[176] D:\PICSOURCE\OTHER\TINYB18F\TINYB18F.ASM 57 : CONFIG Directive Error: (setting "BORError[176] D:\PICSOURCE\OTHER\TINYB18F\TINYB18F.ASM 80 : CONFIG Directive Error: (setting "CCP2MUXError[176] D:\PICSOURCE\OTHER\TINYB18F\TINYB18F.ASM 99 : CONFIG Directive Error: (setting "STVRHalting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `D:\picsource\new\Pic18f4520_20MHz_38400bps.mcp' failed.
Language tool versions: MPASMWIN.exe v5.45, mplink.exe v4.43, mplib.exe v4.43
Preprocessor symbol `__DEBUG' is defined.
Thu Jun 14 23:11:25 2012
----------------------------------------------------------------------
BUILD FAILED
-------------------------------------------------------------------------------------


----------------------------------------
Đoạn config sửa lại file TinyB18F.asm của thầy như sau:
----------------------------------------
radix DEC
LIST P=18F4520
xtal EQU 20000000
baud EQU 38400

#include "D:\picsource\new\icdpictypes.inc"
#include "D:\picsource\new\spbrgselect.inc"
#include "D:\picsource\new\bankswitch.inc"
#define first_address max_flash-200 ;100 words

CONFIG OSC = HS, OSCS = OFF
CONFIG PWRT = ON, BOR = ON, BORV = 27
CONFIG WDT = OFF, WDTPS = 128
CONFIG CCP2MUX = OFF
CONFIG STVR = ON, LVP = OFF, DEBUG = OFF
--------------------------------------------------------------

HaiAu2005 31-10-2012 12:03 PM

Chắc đây là sản phẩm đầu tay của PICVN 6 năm về trước? Thời gian làm mạch này và thử đến khi có thể bắt đầu sử dụng được thì hết bao nhiêu thời gian? Mạch này có thể dùng breadboard được vì người làm nghiệp dư chắc khó có thể chế được mạch in, các linh kiện gồm:

1. IC MAX232x1
2. Tụ 1 uFx4
3. RS-232 connector x 1
4. J1 6-pin connector x 1
5. Breadboard x 1
6. RS-232 cable x 1
7. Một số dây nối và vài thứ lặt vặt khác

Giá mua linh kiện trên ở Australia (có thể ở Mỹ rẻ hơn chút) ước chừng khoảng 30-40 AUD (gần tương đương 30-40 USD) đắt bằng 1 nửa giá mua PICKIT3 + bo mạch thử (khoảng 70 AUD). Còn mua thêm mạch thử nữa thì chắc sẽ mất khoảng 60-70 AUD, làm hỏng thì mất thêm chừng ít tiền nữa, vị chi cho project này hết chừng 100 AUD (gần tương đương 100 USD).

>> Ở nước ngoài nhiều khi đi mua đồ về tự làm có khi đắt hơn là mua đồ làm sẵn. Nhưng có nhiều người thích DIY nên người ta vẫn mua đồ về tự làm lấy như là một hobby và như vậy có đất sống cho các cửa hàng hobby shops là vậy. Còn ở VN dường như ngược lại, ngoài chuyện hobby và thích làm thì mua linh kiện về làm giá rẻ hơn mua đồ làm sẵn thì phải???

HaiAu2005 31-10-2012 01:27 PM

Tôi nhìn thấy cái programmer sau trên eBay giá chưa đầy 14 AUD:

http://i1005.photobucket.com/albums/.../BI00049-2.jpg

http://www.ebay.co.uk/itm/PIC-USB-Mi...50847177167%26

So với tiny bootloader chắc cái này khác nhiều.

Nếu không muốn làm mạch nạp, có lẽ mua cái này và mua một con PIC, một breadboard và vài linh kiện cũng như motor và IC điều khiển mô tơ nữa là có công cụ học PIC một cách nhanh chóng.


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