Bootloader cho PIC18F4680
1 Attachment(s)
Một bạn gửi email nhờ tôi biên dịch giúp bootloader cho PIC18F4680, với các cấu hình sau:
- Thạch anh 20 MHz, baudrate = 9600 bps, và các từ cấu hình được dùng cho firmware dưới đây: Code:
CONFIG OSC = HS, FCMEN = OFF, IESO = OFF Code:
CONFIG OSC = HSPLL, FCMEN = OFF, IESO = OFF Code:
$50, C, 18F 2680/4680, $10000, $400, Thân, |
Rất cam on anh Nam, em sẽ thử và cho anh biết kết quả liền
Thân chào anh. |
Cho em hoi them: em thấy trong CCS cung có bootloader, anh dã dùng nó chua ạ? có diều gì phải luu ý khi dung no khong anh?
|
Trích:
Thân, |
Gui A. Nam:
Em cảm ơn anh nhiều, nhờ có anh mà em có thể sử dụng được Bootloader. Giờ em cũng có thể tự cấu hình cho PIC được rồi anh ạ. Em hoi thêm anh: Do vừa sử dụng cổng COM để giao tiếp với máy tính, vừa dùng cổng COM để sử dụng Bootloader, chính vì vậy mình không thể dùng các chân kiểm soát dữ liệu của công COM(RTS,DTR) để làm việc Reset được. Em có 1 cách, nó hơi rườm rà, nhưng em cũng muốn chia sẽ để các ban khác tham khảo: |
Do khong thể sử dung dong thời chuong trỉnh giao tiep voi máy tinh và chuong trinh Tiny Bootloader dược, nen em lam như sau:
Mở chuong trình giao tiep vói máy tính lên, gửi lênh "Reset PIc"(nêu viet bang CCS thì dung lenh sau: Reset_cpu()) sau đó nhanh tay tat chuong trình giao tiep voi máy tính đi, mở chuong trình Tiny Bootloader len và nạp chuong trình. Tấc nhiên có thể dùng vòng lặp(giá trị của vòng lặp này phải lưu trong eeprom-->dể không mất khi Reset lại PIC,) để tang thời số lần gọi lenh Reset Em da viết chuong trình này, thấy rat hiệu quả, làn nào cung nhận ra PIc, nap tốt, có diều nó hoi rườm ra như vậy. void upload_program() { int8 read_value; read_value=read_eeprom (0x01);//đọc giá trị vòng lạp đã lưu trong eeprom if(read_value!=0x00)//so sánh giá trị này với 0x00 { read_value--;//giảm giá trị vòng lặp đi write_eeprom(0x01,read_value); //ghi lai vào eeprom printf("\r\n Remaining %d times \r\n",read_value);//hien ra man hình số lan Reset //còn lại reset_cpu(); //Reset Pic } if(read_value==0) printf("\r\n Start Program \r\n");//thuc hien chuong trinh ung dung. } |
Anh Nam có cách nào khác không anh?
Ngoài Bootloader ra, còn cách nào khác cũng tương tự như nó dể nạp chuong trình cho PIC khong anh? |
Trích:
Cách làm của bạn cũng tốt, tôi không cho rằng nó rườm rà lắm, mặc dù nếu là tôi thì tôi sẽ viết đơn giản hơn nữa. Cách của tôi như sau: Chương trình ứng dụng nhận thông điệp cần reset PIC, và thực hiện reset PIC. Sau đó bootloader sẽ được thực thi, với thời gian chờ khá dài, đủ để bạn mở phần mềm Tiny Bootloader và kết nối với PIC. Nếu không thực hiện được việc kết nối với PIC thì chương trình ứng dụng sẽ chạy, khi đó tôi chỉ cần gửi lại thông điệp yêu cầu reset PIC, và quá trình được lặp lại. Thân, |
Anh cho em hoi:
Vi trong file bootloader ta cung khai báo cấu hình, trong chuong trinh ung dung ta cung khai báo cấu hình, tại sao lại cần như vậy anh? Nếu ta khai báo cấu hình khác nhau thì có anh hưởng gì không? |
Trích:
Bạn thử xem xét một ví dụ cụ thể nhé: Bootloader dùng cấu hình thạch anh 10 MHz (HS), còn chương trình ứng dụng dùng cấu hình thạch anh 4 MHz (XT). Điều gì sẽ xảy ra nếu sau khi nạp chương trình ứng dụng, các từ cấu hình được thay đổi thành giá trị ứng với chương trình ứng dụng? Ngược lại, nếu sau khi nạp chương trình ứng dụng, các từ cấu hình vẫn mang giá trị ứng với bootloader, thì có vấn đề gì không? Thân, |
Minh vừa nghiên vưà xong cach dùng Bootloader trong CCS. Nếu bạn nào gặp khó khăn khi muốn dùng Bootloader trong CCS thì cho mình hay nhé.
|
Trích:
|
Bootloader trong CCS
Về mục đích sử dụng thì nó tương tự như Tiny Bootloader. Một điều đặc biệt là Bootloader CCS có thể đặt cuối bộ nhớ Flash(giống Tiny Bootloader) và vừa có thể đặt đầu bộ nhớ Flash.
Ngay sau khi bạn tạo 1 project mớii trong CCS sẽ xuất hiện môt hộp thoại PIC Wizard, khung ben tay trái bạn chọn Bootloader, khung ben phai bạn chon Use Bootloader, sau đó bạn có thể chọn Select Bootloader Location... Ban tham khao thêm trong CCS: bootloader.h, ex_bootloader.c nhé. Bạn nên tìm hiểu trước nhé, vì khi bạn hiểu rồi bạn mới cấu hình cho Pic cũng như sắp xếp lại dịa chỉ lưu chương trình Bootloader sao cho nó đở tốn dung lượng bộ nhớ Flash nhất. Bạn cứ tìm hiểu, thăc mác chổ nào thì cho mình hay. Thân, |
Múi giờ GMT. Hiện tại là 10:09 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