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)

namqn 25-12-2007 08:26 PM

Trích:

Nguyên văn bởi KnowMore (Post 13526)
Em hỏi câu này có thể hơi củ chuối:
Có trường hợp nào không thể xóa vùng Protected ROM?

Em định làm một mạch nạp để setup bootloader; sau đó chỉ cần cấp phát cho anh em TinyBld để nạp chíp. (Giải pháp kinh tế!?).
Thế nên em quan tâm việc sau khi protect vùng bootloader thì có thể xóa đi khi cần thiết không.
Tiện thể cho em hỏi luôn: tại sao thiên hạ ít dùng transistor thay MAX232 trong giao tiếp COM? Em thấy trong Tinybld vẫn thừa 1 chân ra của PC COM mà! Giá MAX232 là 11k thì phải, đắt cắt cổ!!! Nếu dùng transistor thì có thể lắp trong một số mạch lowcost.
Thanks!

Nếu không thể xóa ROM chương trình, hay flash thì chip sẽ trở thành vô dụng sau khi được bật tính năng bảo vệ. Do đó, luôn luôn có khả năng xóa được ROM chương trình, hay flash. Điều quan trọng là bảo vệ tài sản trí tuệ của người dùng. Do đó, chỉ cần bảo vệ theo cách nếu người ta muốn nạp chương trình mới vào chip thì phải xóa sạch nội dung cũ.

Mạch nạp đơn giản đã có nhiều, những người thích dùng bootloader đã có đủ công cụ để dùng. Như tôi đã nói ở trên, bạn có thể xóa bootloader bằng cách xóa chip. Dùng transistor thay các chip giao tiếp vẫn tốt, tuy nhiên bạn sẽ phải tự hiện thực bộ bơm điện tích nếu muốn tuân theo chuẩn RS-232, hoặc chấp nhận mức tín hiệu của bạn không thể cao hơn Vdd của mạch.

Thân,

minhdt10 16-07-2008 05:16 PM

TinyBootloader19
 
1 Attachment(s)
Chào các anh, e mới tập viết cho PIC, e xài 16F877A, TA 20M, e làm theo sơ đồ của anh Nguyễn Trung Chính trong tài liệu REP01.06, e dùng Tinybootloader cải tiến, nhưng khi chạy tiny để nạp chương trinh cho Pic thì thấy báo không tìm thấy chip, e kiểm tra các chân của max232 thì thấy các chân 8,9,13,12 của max232 có tín hiệu, còn chân 11,14 không có tín hiệu gì. Kiểm tra chân dao dộng của Pic thi không thấy có dao động, (cả chân 13 và 14). Trước e có làm với 89xx rồi, giờ mới tập với pic nên còn ngỡ ngàng, mong các anh giúp đỡ ạ.
Em gửi kèm file .asm, các anh có thể kiểm tra giúp e được không ạ, hoặc nếu anh nào có sẵn file hex gửi dùm e thì tốt quá, en định dùng PIC6F877A, thạch anh 20M, giao tiếp 232 tốc độ 38400 (e nghe nói ở tốc này thì tốt nhất)

namqn 17-07-2008 12:10 AM

Trích:

Nguyên văn bởi minhdt10 (Post 17462)
Chào các anh, e mới tập viết cho PIC, e xài 16F877A, TA 20M, e làm theo sơ đồ của anh Nguyễn Trung Chính trong tài liệu REP01.06, e dùng Tinybootloader cải tiến, nhưng khi chạy tiny để nạp chương trinh cho Pic thì thấy báo không tìm thấy chip, e kiểm tra các chân của max232 thì thấy các chân 8,9,13,12 của max232 có tín hiệu, còn chân 11,14 không có tín hiệu gì. Kiểm tra chân dao dộng của Pic thi không thấy có dao động, (cả chân 13 và 14). Trước e có làm với 89xx rồi, giờ mới tập với pic nên còn ngỡ ngàng, mong các anh giúp đỡ ạ.
Em gửi kèm file .asm, các anh có thể kiểm tra giúp e được không ạ, hoặc nếu anh nào có sẵn file hex gửi dùm e thì tốt quá, en định dùng PIC6F877A, thạch anh 20M, giao tiếp 232 tốc độ 38400 (e nghe nói ở tốc này thì tốt nhất)

Ngay trong luồng này, post #52 đã có firmware đúng theo yêu cầu của bạn (20 MHz, 38400 bps). Chú ý post #58 để tránh lặp lại lỗi đó.

Thân,

minhdt10 17-07-2008 10:06 AM

Chào anh namqn.
Em đang loay hoay mãi mà không nạp cho pic16f887a, em làm theo sơ đồ của bác Chinh trong rep01.06, em đã sửa file .asm để npj cho 16f877a, thạch anh 20M, tốc độ 38400, dùng tinybld19 của anh falleaf nhưng không được, em nối chân 7 của máy tính với chân 8 của max232, chân 9 của max232 với chân 1 của pic (chân 1 của pic có trở 10k kéo lên). khi chạy tiny, chọn checkpic thấy chan 1 của pic xuống thấp, em đã thay đổi các giá trị Searchdelay và timeout nhưng vẫn báo lỗi không thấy chip, em phải làm thế nào ạ, mong anh chỉ dẫn ạ. Cám ơn anh nhiều

minhdt10 17-07-2008 10:09 AM

Cám ơn anh đã trả lời sớm ạ, e đã down file đó về, nạp cho pic nhưng vẫn thấy báo lỗi không tìm thấy chip,sơ đồ e kiểm tra lại không có gì sai nhưng vẫn không được

minhdt10 17-07-2008 03:18 PM

Chào anh namqn. An cho e hỏi, nếu nối đủ 2 chân nguồn và 2 chân đất, 2 chân dao động, chân 1 của 16F877a nối trở 10k kéo lên thì soi 2 chân dao động của pic có dao động không ạ? PIC e mua mới tinh ạ. Cám ơn anh ạ

namqn 17-07-2008 07:34 PM

Trích:

Nguyên văn bởi minhdt10 (Post 17479)
Chào anh namqn.
Em đang loay hoay mãi mà không nạp cho pic16f887a, em làm theo sơ đồ của bác Chinh trong rep01.06, em đã sửa file .asm để npj cho 16f877a, thạch anh 20M, tốc độ 38400, dùng tinybld19 của anh falleaf nhưng không được, em nối chân 7 của máy tính với chân 8 của max232, chân 9 của max232 với chân 1 của pic (chân 1 của pic có trở 10k kéo lên). khi chạy tiny, chọn checkpic thấy chan 1 của pic xuống thấp, em đã thay đổi các giá trị Searchdelay và timeout nhưng vẫn báo lỗi không thấy chip, em phải làm thế nào ạ, mong anh chỉ dẫn ạ. Cám ơn anh nhiều

Giá trị search delay mang ý nghĩa thông thường, bạn dùng giá trị quanh quẩn 10 là ổn. Giá trị timeout dễ bị hiểu lầm, ngay cả người dùng PIC có kinh nghiệm vẫn hiểu lầm. Timeout nhất thiết phải nhỏ hơn 1000 ms, giá trị mặc định 300 ms là đủ tốt, nhưng nếu bạn gặp rắc rối trong việc nhận diện chip, thì có thể giảm nó xuống 200 ms hay 100 ms chẳng hạn.

Tôi không có thời gian để diễn dịch sơ đồ mạch được bạn mô tả bằng văn bản (tôi đang viết luận án), do đó bạn nên vẽ sơ đồ mạch mà bạn đang dùng thì tốt hơn.

Trích:

Nguyên văn bởi minhdt10 (Post 17480)
Cám ơn anh đã trả lời sớm ạ, e đã down file đó về, nạp cho pic nhưng vẫn thấy báo lỗi không tìm thấy chip,sơ đồ e kiểm tra lại không có gì sai nhưng vẫn không được

Bạn là người duy nhất cho rằng sơ đồ của bạn không có gì sai. Code của tôi đã được nhiều người kiểm tra (và tôi thường kiểm tra rồi mới post code lên diễn đàn), do đó khả năng lớn hơn là mạch của bạn có vấn đề. Có thể là sơ đồ nguyên lý không có vấn đề, mà mạch thực của bạn có vấn đề.

Trích:

Nguyên văn bởi minhdt10 (Post 17486)
Chào anh namqn. An cho e hỏi, nếu nối đủ 2 chân nguồn và 2 chân đất, 2 chân dao động, chân 1 của 16F877a nối trở 10k kéo lên thì soi 2 chân dao động của pic có dao động không ạ? PIC e mua mới tinh ạ. Cám ơn anh ạ

Việc các chân dao động của PIC có dạng sóng hay không tùy thuộc vào cấu hình của bộ dao động mà bạn đã đặt. Do đó câu hỏi của bạn không có câu trả lời chính xác.

Nếu code của bạn bật bit LVP thì bạn cần phải nối chân RB3/PGM xuống GND qua một điện trở khoảng vài k mới có thể chạy chương trình.

Tôi cũng muốn nói thêm là mã nguồn mà bạn đã post lên không thể đọc được (bị lỗi giải nén, ít ra là tôi không giải nén được).

Thân,

minhdt10 17-07-2008 10:06 PM

P16f877a 20m 38400
 
1 Attachment(s)
Cám ơn anh namqn, mặc dù rất bận nhưng vẫn giành thời gian cho em. Em xin lỗi anh vì file nén em dùng peaZIP nên anh không giải nén được, lần này e nén bằng WINRAR chắc chắn a sẽ giải nén được, e gửi anh sơ đồ em làm, file .asmem sửa, anh xem giúp em xem lỗi chỗ nào.
Mạch thực tế em không làm đầy đủ như trong sơ đồ của anh NCT, phần kết nối max232 e làm giống hệt, phần vi xử lý e mới đấu thạch anh 20M, tụ 33p vào chân 13, 14 của VXL, nguồn +5V vào 2 chân 11, 32, GND vào chân 12 và 31, chân 1 e nối trở 10k lên +5V, e đã thử cả reset bằng chương trình và cả bằng tay, em đã làm 3 mạch để thử, có mạch e chỉ đấu 2nguồn, 2đất, chân 1---10K---+5V, thạch anh 20M, tụ 33p, như trong sơ đồ, e đã kiểm tra rất cẩn thận, soi ôxilô thì không thấy có dao động,
Kiểm tra max232 với mạch khác e dùng 89Cxx thì ok (trước e làm với 89Cxx rồi).
Em cũng đã down file hex cho P16F877A, 20M, 38400 về nhưng chạy tinybld19 vẫn báo lỗi không tìm thấy chip.
Con chip này mới tinh, nhưng liệu em có nên mua con khác về thử không anh nhỉ.
Em cám ơn anh nhiều.
Chúc anh làm đồ án thật tốt(Chắc chắn là như vậy rồi nhỉ).

namqn 17-07-2008 10:28 PM

Trích:

Nguyên văn bởi minhdt10 (Post 17498)
Cám ơn anh namqn, mặc dù rất bận nhưng vẫn giành thời gian cho em. Em xin lỗi anh vì file nén em dùng peaZIP nên anh không giải nén được, lần này e nén bằng WINRAR chắc chắn a sẽ giải nén được, e gửi anh sơ đồ em làm, file .asmem sửa, anh xem giúp em xem lỗi chỗ nào.
Mạch thực tế em không làm đầy đủ như trong sơ đồ của anh NCT, phần kết nối max232 e làm giống hệt, phần vi xử lý e mới đấu thạch anh 20M, tụ 33p vào chân 13, 14 của VXL, nguồn +5V vào 2 chân 11, 32, GND vào chân 12 và 31, chân 1 e nối trở 10k lên +5V, e đã thử cả reset bằng chương trình và cả bằng tay, em đã làm 3 mạch để thử, có mạch e chỉ đấu 2nguồn, 2đất, chân 1---10K---+5V, thạch anh 20M, tụ 33p, như trong sơ đồ, e đã kiểm tra rất cẩn thận, soi ôxilô thì không thấy có dao động,
Kiểm tra max232 với mạch khác e dùng 89Cxx thì ok (trước e làm với 89Cxx rồi).
Em cũng đã down file hex cho P16F877A, 20M, 38400 về nhưng chạy tinybld19 vẫn báo lỗi không tìm thấy chip.
Con chip này mới tinh, nhưng liệu em có nên mua con khác về thử không anh nhỉ.
Em cám ơn anh nhiều.
Chúc anh làm đồ án thật tốt(Chắc chắn là như vậy rồi nhỉ).

Bạn dùng tập tin nguồn của Claudiu thì không cần phải post lại. Không rõ bạn biên dịch có lỗi gì không?

Bạn đã đọc post #58 của luồng này chưa? Đã có bạn dùng sai kiểu đầu nối dẫn đến không kết nối vào cổng COM được, bạn kiểm tra lại xem có rơi vào trường hợp của bạn hay không.

Nếu cấu hình bộ dao động ở chế độ HS, bạn có thể dùng dao động ký (máy hiện sóng) để xem dạng sóng ở chân 14 (không nên dùng probe đo chân 13). Nếu không có dạng sóng dao động thì PIC chưa có xung clock.

PIC hiếm khi bị hỏng khi còn mới, bạn cứ thử lại mạch của bạn. Nếu cần thì bạn cho biết khu vực bạn đang ở, có lẽ ai đó ở gần đó sẽ có thể giúp bạn kiểm tra xem PIC của bạn còn hoạt động được hay không.

Tôi đang viết luận án tiến sĩ, chứ không phải làm đồ án, hay luận văn tốt nghiệp đại học. Viết luận án mất vài tháng là việc bình thường.

Thân,

minhdt10 18-07-2008 03:15 PM

Cám ơn anh Nam, e biên dịch bằng MPASM không thấy có lỗi.
Em đang ở Hà nội, anh có địa chỉ nào bán mạch nạp cho con này không a chỉ cho e với,để em thử xem thế nào, còn bộ tiny này e sẽ tìm hiểu sau ạ

namqn 18-07-2008 08:41 PM

Trích:

Nguyên văn bởi minhdt10 (Post 17506)
Cám ơn anh Nam, e biên dịch bằng MPASM không thấy có lỗi.
Em đang ở Hà nội, anh có địa chỉ nào bán mạch nạp cho con này không a chỉ cho e với,để em thử xem thế nào, còn bộ tiny này e sẽ tìm hiểu sau ạ

Bạn vào box "Quảng cáo và bán sản phẩm" để tìm những mạch nạp có bán ở VN, hoặc post yêu cầu ở box "Tìm mua sản phẩm". Bạn cũng có thể tìm thấy những box tương tự ở www.dientuvietnam.net.

Về những sản phẩm mạch nạp ở VN thì tôi không nắm gì hơn ngoài những quảng cáo trên và các sản phẩm của R&P, vì hiện tại tôi không có mặt ở VN.

Thân,

bean984 31-07-2008 03:21 PM

ai có firmware cho con 16f877a viết bằng ccs c k?cho mình xin với. mình dùng TA 8M, tốc độ 9600. Mình dùng ccs c nên đọc mấy cái firmware viết bằng asem k hiểu gì cả. Mình muốn xin cái firmware viết bằng ccs c để hiểu và có thể tự chỉnh xửa sau này.
THANK'S tất cả mọi người!

namqn 01-08-2008 12:14 AM

Trích:

Nguyên văn bởi bean984 (Post 17881)
ai có firmware cho con 16f877a viết bằng ccs c k?cho mình xin với. mình dùng TA 8M, tốc độ 9600. Mình dùng ccs c nên đọc mấy cái firmware viết bằng asem k hiểu gì cả. Mình muốn xin cái firmware viết bằng ccs c để hiểu và có thể tự chỉnh xửa sau này.
THANK'S tất cả mọi người!

Nếu bạn muốn dùng giao diện trên host PC của Tiny Bootloader, firmware cần phải đảm bảo không vượt quá 100 word. Điều này rất khó đạt được nếu bạn viết bằng CCS C.

Với một số bootloader khác, bạn có thể viết firmware một cách khá tự do, và có nhiều firmware được viết bằng ngôn ngữ cấp cao (chủ yếu là C).

Bạn tự chọn cách tiếp cận cho mình trước đã.

Thân,

bean984 01-08-2008 03:38 PM

cho mình hỏi câu này hơi chuối.
mình có cái mạch tiny bootloader dùng TA 8M. mình muốn nạp môt chương trình cho một mạch ứng dụng khác (không có mạch rs232) chạy TA 11M liệu có được không?mình không rõ khi đưa sang mạch ứng dụng có TA khác có ảnh hưởng gì k?
với cùng một trương trình mình nạp với PG2C thì chạy ngon lành còn khi nạp theo tiny bootloader như cách ở trên thì nó lại không chạy.
thank!

namqn 01-08-2008 07:15 PM

Trích:

Nguyên văn bởi bean984 (Post 17894)
cho mình hỏi câu này hơi chuối.
mình có cái mạch tiny bootloader dùng TA 8M. mình muốn nạp môt chương trình cho một mạch ứng dụng khác (không có mạch rs232) chạy TA 11M liệu có được không?mình không rõ khi đưa sang mạch ứng dụng có TA khác có ảnh hưởng gì k?
với cùng một trương trình mình nạp với PG2C thì chạy ngon lành còn khi nạp theo tiny bootloader như cách ở trên thì nó lại không chạy.
thank!

Code dành cho bootloader và code cho ứng dụng có thể viết tương ứng với các tốc độ clock khác nhau. Do đó về nguyên tắc là bạn có thể dùng một mạch để nạp code cho PIC qua bootloader, sau đó chạy ứng dụng trên một mạch khác.

Bạn có đảm bảo chương trình ứng dụng của bạn không ghi đè lên bootloader hay không? Cấu hình của PIC trong mạch ứng dụng có khác với cấu hình của PIC trong mạch dùng để nạp qua bootloader hay không?

Nếu câu trả lời của bạn là "có" cho ít nhất 1 trong 2 câu hỏi trên thì bạn sẽ gặp vấn đề khi chạy chương trình ứng dụng.

Thân,


Múi giờ GMT. Hiện tại là 05:51 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam