Cần giúp về tiny bootloader cho dsPIC30F4011

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • iniesta
    Đệ tử 1 túi
    • Nov 2007
    • 11

    #1

    Cần giúp về tiny bootloader cho dsPIC30F4011

    Tớ viết chương trình bằng C và dịch bằng MPLAB C30. Tớ mới biết đến khái niệm tiny bootloader và muốn thử dùng nó. Sau khi tham khảo nhiều nguồn, tớ có 1 số thắc mắc như sau :

    1) Chúng ta biết là chương trình ứng dụng cần phải được sửa lại để không bị đè lên vùng nhớ của tiny bootloader. Việc sửa này, theo tài liệu hướng dẫn của Microchip, được thực hiện bằng cách modify lại file linker script ( .GLD file ) trước khi dịch ra file .hex. Tớ thắc mắc là chỉ như vậy là đủ sao ? Mình có cần chỉnh sửa thêm thắt gì ở file .c không ?

    2) Trong thư mục của tiny bootloader ko thấy có chương trình tiny bootloader cho dsPIC30F4011. Tớ có thể kiếm nó ở đâu ? ( chương trình của bạn namqn post trên diễn đàn e rằng đã cũ và không dùng được với bản 1.9.5 ). Nếu được các bạn có thể viết hộ tớ : tớ dùng thạch anh ngoài 8 MHz và PLLx8.

    Cám ơn mọi người !
    Last edited by iniesta; 05-02-2008, 08:20 PM.
  • namqn
    Trưởng lão PIC bang
    • Feb 2006
    • 3020

    #2
    Nguyên văn bởi iniesta View Post
    Tớ viết chương trình bằng C và dịch bằng MPLAB C30. Tớ mới biết đến khái niệm tiny bootloader và muốn thử dùng nó. Sau khi tham khảo nhiều nguồn, tớ có 1 số thắc mắc như sau :

    1) Chúng ta biết là chương trình ứng dụng cần phải được sửa lại để không bị đè lên vùng nhớ của tiny bootloader. Việc sửa này, theo tài liệu hướng dẫn của Microchip, được thực hiện bằng cách modify lại file linker script ( .GLD file ) trước khi dịch ra file .hex. Tớ thắc mắc là chỉ như vậy là đủ sao ? Mình có cần chỉnh sửa thêm thắt gì ở file .c không ?

    2) Trong thư mục của tiny bootloader ko thấy có chương trình tiny bootloader cho dsPIC30F4011. Tớ có thể kiếm nó ở đâu ? ( chương trình của bạn namqn post trên diễn đàn e rằng đã cũ và không dùng được với bản 1.9.5 ). Nếu được các bạn có thể viết hộ tớ : tớ dùng thạch anh ngoài 8 MHz và PLLx8.

    Cám ơn mọi người !
    1) Chỉ cần chỉnh lại linker script của chương trình ứng dụng, khi đó vùng code mà bootloader đã sử dụng sẽ không được trình biên dịch sử dụng cho bất kỳ đoạn code nào của chương trình ứng dụng. Như vậy là đủ. Bạn không cần thêm thắt gì ở file .c.

    2) Tôi vừa kiểm tra lại Tiny Bootloader v1.9.5 với dsPIC30F4012, cả hai firmware cũ và mới (tôi vừa viết lại) đều không làm việc được với giao diện trên host PC (thực tế thì thao tác ghi đã hoàn tất, nhưng giao diện trên host PC xử lý thông tin sai, và khiến bootloader mất khả năng chạy ở lần reboot tiếp theo, và phần mềm trên host PC không nhận được thông tin phản hồi của firmware. Tiny Bootloader v1.9.1 làm việc tốt với hai firmware cũ và mới. Do đó, với dsPIC30F4011, bạn có thể dùng Tiny Bootloader v1.9.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

    Comment

    • iniesta
      Đệ tử 1 túi
      • Nov 2007
      • 11

      #3
      Xin chúc các thành viên picvietnam một năm mới mạnh khỏe và hạnh phúc !

      Trở lại vấn đề trên, tớ xin cảm ơn bạn namqn đã trả lời tớ một cách rõ ràng và chi tiết. Tuy nhiên tớ có 1 vài điều nữa cần làm rõ :

      1) Trong file info đi kèm với thư mục tiny bootloader, có đoạn tác giả viết :
      " ... Q: How to work with another PIC that it's not listed in icdpictypes.inc? A: You'll have to trick the PC application. Search among the list in icdpictypes.inc for a model that is similar to your PIC, and has THE SAME amount of Flash; replace the entry with your model, but keep the ID and max_flash unchanged. "
      Như vậy nghĩa là mình hoàn toàn có thể dùng firmware tiny bootloader của dsPIC30F4012 để nạp cho dsPIC30F4011 ( Bởi 2 loại dsPIC này rất giống nhau và có cùng dung lượng bộ nhớ Flash ) ? Nếu dùng được thì có cần chú ý thêm gì không ?

      2) Tớ vẫn chưa hiểu lắm về việc reset trong quá trình nạp bằng tiny bootloader. Theo tớ hiểu thì có 3 loại reset :
      Một là reset bằng tay dùng nút bấm.
      Hai là reset bằng phần cứng dùng chân RTS của cổng COM của PC.
      Ba là reset bằng phần mềm bằng một " list of codes to send first. "
      Ở loại reset thứ nhất, do chương trình ứng dụng của tớ cần liên tục gửi dữ liệu từ dsPIC lên PC nên các bước nạp sẽ là : bấm nút reset -> click WriteFlash -> thả nút reset ra. Vậy là xong ?
      Ở 2 loại sau thì việc reset được thực hiện tự động ? Quá trình nạp chỉ cần 1 thao tác duy nhất là click WriteFlash ?
      Ở loại thứ hai, giả sử như tớ muốn dùng chân RTS của cổng COM của PC vào 1 mục đích khác, vd như là dùng làm tín hiệu bắt tay để điều khiển luồng dữ liệu gửi từ dsPIC lên PC, thì tớ phải làm sao ?
      Ở loại thứ ba, codes mà mình gửi xuống là gì cũng được ? các bạn có thể cho tớ 1 ví dụ ?

      Comment

      • namqn
        Trưởng lão PIC bang
        • Feb 2006
        • 3020

        #4
        Nguyên văn bởi iniesta View Post
        Xin chúc các thành viên picvietnam một năm mới mạnh khỏe và hạnh phúc !

        Trở lại vấn đề trên, tớ xin cảm ơn bạn namqn đã trả lời tớ một cách rõ ràng và chi tiết. Tuy nhiên tớ có 1 vài điều nữa cần làm rõ :

        1) Trong file info đi kèm với thư mục tiny bootloader, có đoạn tác giả viết :
        " ... Q: How to work with another PIC that it's not listed in icdpictypes.inc? A: You'll have to trick the PC application. Search among the list in icdpictypes.inc for a model that is similar to your PIC, and has THE SAME amount of Flash; replace the entry with your model, but keep the ID and max_flash unchanged. "
        Như vậy nghĩa là mình hoàn toàn có thể dùng firmware tiny bootloader của dsPIC30F4012 để nạp cho dsPIC30F4011 ( Bởi 2 loại dsPIC này rất giống nhau và có cùng dung lượng bộ nhớ Flash ) ? Nếu dùng được thì có cần chú ý thêm gì không ?

        2) Tớ vẫn chưa hiểu lắm về việc reset trong quá trình nạp bằng tiny bootloader. Theo tớ hiểu thì có 3 loại reset :
        Một là reset bằng tay dùng nút bấm.
        Hai là reset bằng phần cứng dùng chân RTS của cổng COM của PC.
        Ba là reset bằng phần mềm bằng một " list of codes to send first. "
        Ở loại reset thứ nhất, do chương trình ứng dụng của tớ cần liên tục gửi dữ liệu từ dsPIC lên PC nên các bước nạp sẽ là : bấm nút reset -> click WriteFlash -> thả nút reset ra. Vậy là xong ?
        Ở 2 loại sau thì việc reset được thực hiện tự động ? Quá trình nạp chỉ cần 1 thao tác duy nhất là click WriteFlash ?
        Ở loại thứ hai, giả sử như tớ muốn dùng chân RTS của cổng COM của PC vào 1 mục đích khác, vd như là dùng làm tín hiệu bắt tay để điều khiển luồng dữ liệu gửi từ dsPIC lên PC, thì tớ phải làm sao ?
        Ở loại thứ ba, codes mà mình gửi xuống là gì cũng được ? các bạn có thể cho tớ 1 ví dụ ?
        1) Tôi cũng đã theo tinh thần đó mà viết các firmware cho các PIC, dsPIC khác. Như post trên của tôi đã nói, tôi thử nghiệm với dsPIC30F4012, và kết luận cho dsPIC30F4011, nghĩa là với Tiny Bootloader thì 4011 và 4012 chẳng có gì khác nhau (phần mềm trên host PC của Tiny Bootloader sẽ nhận diện chip là 4011/4012). Bạn không cần làm thêm gì cả.

        2) Ở cách reset thứ nhất (bằng tay, dùng nút nhấn), bạn nhấn nút reset rồi buông ra để chip chạy đoạn chương trình của bootloader, khi đó firmware của bootloader sẽ trao đổi thông tin với phần mềm trên host PC để thực hiện việc nạp chương trình. Sau khi nạp xong, bootloader (firmware) sẽ giao quyền điều khiển cho chương trình ứng dụng vừa được nạp vào.

        Ở loại thứ hai, phần cứng của bạn đã được nối vào mạch reset của PIC/dsPIC, do đó bạn không nên dùng nó cho mục đích khác, trừ khi bạn sửa lại phần cứng để khi chương trình ứng dụng chạy thì nó có thể vô hiệu hóa động tác reset bằng chân RTS của cổng COM. Khi đó, thông thường bạn tốn thêm 1 chân của PIC/dsPIC, mà việc hiện thực có thể cần một vài kỹ xảo. Nếu bạn muốn thực hiện nó thì tôi có thể nêu ý tưởng (bản thân tôi không thích làm như vậy): khi bootloader chạy thì một chân của PIC/dsPIC sẽ cho phép chân RTS của cổng COM tác động lên mạch reset của PIC, nhưng khi chương trình ứng dụng chạy thì chân đó của PIC/dsPIC sẽ không cho phép chân RTS của cổng COM tác động lên mạch reset của PIC nữa.

        Ở loại thứ ba, bạn tự quy định danh sách code đó, và sửa lại firmware một cách tương ứng. Khi đó, nếu firmware nhận được chuỗi code như vậy thì nó sẽ thực hiện reset mềm PIC/dsPIC (bằng lệnh RESET trong tập lệnh của PIC/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

        Comment

        • iniesta
          Đệ tử 1 túi
          • Nov 2007
          • 11

          #5
          Cám ơn anh Nam ! Nhờ sự hướng dẫn của anh mà em đã dùng được tiny bootloader.

          Nhưng khi em dùng Hyper Terminal ( chương trình có sẵn của Windows ) để giao tiếp PC với dsPIC thì nảy sinh một vấn đề như sau :
          Bất kể mình chọn flow control là gì ( None, Hardware hay Xon/Xoff ) thì khi thiết lập xong nó cũng tự động set chân RTS lên mức cao ( và cứ để nguyên như thế trong quá trình giao tiếp ). Như vậy, theo mạch nguyên lý của tiny bootloader, điều này đồng nghĩa với chân MCLR của dsPIC sẽ bị kéo xuống GND ( mức logic 0 ) và do đó dsPIC sẽ không làm việc được ?
          Chẳng lẽ lại phải dùng một cái khóa gạt ở chân MCLR của dsPIC để giúp phân biệt quá trình nạp với quá trình làm việc bình thường của dsPIC ?

          Comment

          • namqn
            Trưởng lão PIC bang
            • Feb 2006
            • 3020

            #6
            Nguyên văn bởi iniesta View Post
            Cám ơn anh Nam ! Nhờ sự hướng dẫn của anh mà em đã dùng được tiny bootloader.

            Nhưng khi em dùng Hyper Terminal ( chương trình có sẵn của Windows ) để giao tiếp PC với dsPIC thì nảy sinh một vấn đề như sau :
            Bất kể mình chọn flow control là gì ( None, Hardware hay Xon/Xoff ) thì khi thiết lập xong nó cũng tự động set chân RTS lên mức cao ( và cứ để nguyên như thế trong quá trình giao tiếp ). Như vậy, theo mạch nguyên lý của tiny bootloader, điều này đồng nghĩa với chân MCLR của dsPIC sẽ bị kéo xuống GND ( mức logic 0 ) và do đó dsPIC sẽ không làm việc được ?
            Chẳng lẽ lại phải dùng một cái khóa gạt ở chân MCLR của dsPIC để giúp phân biệt quá trình nạp với quá trình làm việc bình thường của dsPIC ?
            Bạn có thể dùng Terminal của Tiny Bootloader, khi đó bạn có thể chọn trạng thái cho chân RTS sau khi nạp xong chương trình ứng dụng vào PIC/dsPIC. Với Tiny Bootloader v1.9.1, bạn check vào checkbox 'Reset PIC using RTS line' trong thẻ Options, và thử nghiệm với checkbox 'and RTS remains active'. Sau đó dùng thẻ Terminal để dùng terminal có sẵn của Tiny Bootloader. Với Tiny Bootloader v1.9.5 thì bạn thí nghiệm với checkbox 'RTS, DTR ON after open'.

            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

            Comment

            • iniesta
              Đệ tử 1 túi
              • Nov 2007
              • 11

              #7
              Mình mới gặp phải 1 rắc rối với tiny bootloader, mong anh Nam và các bạn giúp đỡ :
              Mình dùng tiny bootloader với PC ở nhà thì suôn sẻ, ngon lành, nhưng hễ mang đến PC ở trường là chịu chết, không dùng được. Ngoài ra, mình cũng không dùng được tiny bootloader với Laptop.
              Cụ thể, lần đầu mình mang đến dùng với PC ở trường, mình nạp được đúng 1 lần rồi sau đó đơ luôn, không nạp được tiếp. Connect cổng COM thì ok, nhưng bị lỗi hoặc là "not found" hoặc là "sending unknown data". Thế là mình mang về nhà, test thử bằng PC ở nhà, thấy cũng ko được nữa. Mình đành phải nạp lại chương trình tiny bootloader cho dsPIC. Sau đó lại dùng ngon lành. Sự thật là cái PC ở trường khá cũ ( Pen III, thiết bị ngoại vi chập chờn, rỉ sét ).
              Lần thứ 2 ( là vào buổi sáng hôm qua ), mình lại mang đến trường. Lần này cẩn thận hơn, mình thử trước với máy tính Laptop của bạn mình. Dù vậy, kết quả còn tệ hơn lần đầu : không nạp được lần nào. Ngay ở lần nạp đầu tiên tiny bootloader đã báo lỗi "not found" hoặc "sending unknown data". Connect cổng COM thì vẫn ok. Máy laptop mình dùng lúc đó là IBM T40. Lúc mang về nhà, mình cũng phải nạp lại chương trình tiny bootloader rồi mới dùng được tiếp.
              Xin hỏi mọi người nguyên nhân gì dẫn đến hiện tượng trên ?
              Cảm ơn nhiều !

              Comment

              • namqn
                Trưởng lão PIC bang
                • Feb 2006
                • 3020

                #8
                Nguyên văn bởi iniesta View Post
                Mình mới gặp phải 1 rắc rối với tiny bootloader, mong anh Nam và các bạn giúp đỡ :
                Mình dùng tiny bootloader với PC ở nhà thì suôn sẻ, ngon lành, nhưng hễ mang đến PC ở trường là chịu chết, không dùng được. Ngoài ra, mình cũng không dùng được tiny bootloader với Laptop.
                Cụ thể, lần đầu mình mang đến dùng với PC ở trường, mình nạp được đúng 1 lần rồi sau đó đơ luôn, không nạp được tiếp. Connect cổng COM thì ok, nhưng bị lỗi hoặc là "not found" hoặc là "sending unknown data". Thế là mình mang về nhà, test thử bằng PC ở nhà, thấy cũng ko được nữa. Mình đành phải nạp lại chương trình tiny bootloader cho dsPIC. Sau đó lại dùng ngon lành. Sự thật là cái PC ở trường khá cũ ( Pen III, thiết bị ngoại vi chập chờn, rỉ sét ).
                Lần thứ 2 ( là vào buổi sáng hôm qua ), mình lại mang đến trường. Lần này cẩn thận hơn, mình thử trước với máy tính Laptop của bạn mình. Dù vậy, kết quả còn tệ hơn lần đầu : không nạp được lần nào. Ngay ở lần nạp đầu tiên tiny bootloader đã báo lỗi "not found" hoặc "sending unknown data". Connect cổng COM thì vẫn ok. Máy laptop mình dùng lúc đó là IBM T40. Lúc mang về nhà, mình cũng phải nạp lại chương trình tiny bootloader rồi mới dùng được tiếp.
                Xin hỏi mọi người nguyên nhân gì dẫn đến hiện tượng trên ?
                Cảm ơn nhiều !
                Không rõ bạn hiện thực mạch reset ra sao.

                Với lỗi chỉ nạp được 1 lần duy nhất rồi phải nạp lại firmware cho bootloader, khả năng rất cao là bạn viết code không tốt, dẫn đến bootloader bị ghi đè.

                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

                Comment

                • LeDuc
                  Đệ tử 6 túi
                  • Mar 2007
                  • 150

                  #9
                  Anh Nam ơi cho em hỏi ,sao tiny bld 195 nhận được pic 16f887 nhưng khi nạp nó lại báo là kô thể nạp được .
                  Em đã chỉnh lại firmware cho 16f887 sử dụng thạch anh 20M ,baud 115200 , như trong bào TUT của anh Chính , nhưng nó chỉ nhận diện được chíp , còn nạp thì kô được ..Mong anh cho lời khuyên phải chỉnh sửa như thế nào ...
                  Em đang rất cần, mong anh , và mọi người giúp đỡ .
                  Thanks for all !
                  _________________________________________________
                  Le Trung Duc
                  Industry Research & Application Center
                  NTT Institute of Hi_technolog
                  ltduc@ntt.edu.vn
                  leduc_cktd@yahoo.com.vn
                  http://www.nttc.edu.vn
                  CNC DIY : http://quangcaosanpham.com/shop/driverservo
                  0909300332

                  Comment

                  • namqn
                    Trưởng lão PIC bang
                    • Feb 2006
                    • 3020

                    #10
                    Nguyên văn bởi LeDuc View Post
                    Anh Nam ơi cho em hỏi ,sao tiny bld 195 nhận được pic 16f887 nhưng khi nạp nó lại báo là kô thể nạp được .
                    Em đã chỉnh lại firmware cho 16f887 sử dụng thạch anh 20M ,baud 115200 , như trong bào TUT của anh Chính , nhưng nó chỉ nhận diện được chíp , còn nạp thì kô được ..Mong anh cho lời khuyên phải chỉnh sửa như thế nào ...
                    Em đang rất cần, mong anh , và mọi người giúp đỡ .
                    Thanks for all !
                    Tôi chỉ có thể xác nhận một firmware do tôi post lên ở luồng sau là làm việc tốt:
                    Mọi vấn đề liên quan tinybootloader sẽ được tổng hợp ở đây.


                    Trong trường hợp bạn cần tốc độ baud và/hoặc tần số thạch anh khác, tôi có thể dịch lại firmware cho bạn. Việc hướng dẫn chỉnh sửa firmware như thế nào mất khá nhiều thời gian, và hiện nay tôi khá bận (trong khi dịch lại firmware chỉ mất vài phút).

                    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

                    Comment

                    • LeDuc
                      Đệ tử 6 túi
                      • Mar 2007
                      • 150

                      #11
                      Nguyên văn bởi namqn View Post
                      Tôi chỉ có thể xác nhận một firmware do tôi post lên ở luồng sau là làm việc tốt:
                      Mọi vấn đề liên quan tinybootloader sẽ được tổng hợp ở đây.


                      Trong trường hợp bạn cần tốc độ baud và/hoặc tần số thạch anh khác, tôi có thể dịch lại firmware cho bạn. Việc hướng dẫn chỉnh sửa firmware như thế nào mất khá nhiều thời gian, và hiện nay tôi khá bận (trong khi dịch lại firmware chỉ mất vài phút).

                      Thân,
                      Anh dịch lại giúp em cái firmware cho 16f887 với tần số 20M va tốc độ baud 115200 .
                      Thanks for all !
                      _________________________________________________
                      Le Trung Duc
                      Industry Research & Application Center
                      NTT Institute of Hi_technolog
                      ltduc@ntt.edu.vn
                      leduc_cktd@yahoo.com.vn
                      http://www.nttc.edu.vn
                      CNC DIY : http://quangcaosanpham.com/shop/driverservo
                      0909300332

                      Comment

                      • namqn
                        Trưởng lão PIC bang
                        • Feb 2006
                        • 3020

                        #12
                        Nguyên văn bởi LeDuc View Post
                        Anh dịch lại giúp em cái firmware cho 16f887 với tần số 20M va tốc độ baud 115200 .
                        Thanks for all !
                        Bootloader được dịch với cấu hình như sau:
                        Code:
                        	__CONFIG  _CONFIG1, _HS_OSC & _FCMEN_OFF & _IESO_OFF & _CP_OFF & _WDT_OFF & _BOR_ON & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF
                        	__CONFIG  _CONFIG2, _WRT_OFF & _BOR21V
                        Đính kèm là firmware bootloader, và hình chụp cho thấy bootloader chạy tốt.

                        Thân,
                        Attached Files
                        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

                        Comment

                        • LeDuc
                          Đệ tử 6 túi
                          • Mar 2007
                          • 150

                          #13
                          Nguyên văn bởi namqn View Post
                          Bootloader được dịch với cấu hình như sau:
                          Code:
                          	__CONFIG  _CONFIG1, _HS_OSC & _FCMEN_OFF & _IESO_OFF & _CP_OFF & _WDT_OFF & _BOR_ON & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF
                          	__CONFIG  _CONFIG2, _WRT_OFF & _BOR21V
                          Đính kèm là firmware bootloader, và hình chụp cho thấy bootloader chạy tốt.

                          Thân,
                          Cảm ơn anh Nam , em đã nạp được rồi . Khi nào anh rãnh chỉ giúp em cách sửa firmware cho tiny nha . Em cũng đã sừa lại nhưng nó chỉ nhận được chip thôi, khi nạp thì vẫn can not write ... hic hic..
                          Thanks for all !
                          _________________________________________________
                          Le Trung Duc
                          Industry Research & Application Center
                          NTT Institute of Hi_technolog
                          ltduc@ntt.edu.vn
                          leduc_cktd@yahoo.com.vn
                          http://www.nttc.edu.vn
                          CNC DIY : http://quangcaosanpham.com/shop/driverservo
                          0909300332

                          Comment

                          • falleaf
                            PIC Bang chủ
                            • May 2005
                            • 2627

                            #14
                            Nguyên văn bởi LeDuc View Post
                            Cảm ơn anh Nam , em đã nạp được rồi . Khi nào anh rãnh chỉ giúp em cách sửa firmware cho tiny nha . Em cũng đã sừa lại nhưng nó chỉ nhận được chip thôi, khi nạp thì vẫn can not write ... hic hic..
                            Thanks for all !
                            Bạn cấu hình chip như thế nào, bạn hãy post lên đây. Cách sửa code không có gì khó khăn cả, chỉ cần sửa vài dòng của nó thôi, nếu bạn hiểu lập trình MPASM thì chắc chắn là bạn sẽ hiểu được cách cấu hình rất dễ dàng.

                            Chúc vui
                            Công ty TNHH Thương mại và Giao nhận R&P
                            store.hn@rpc.vn - store.hcm@rpc.vn

                            Học PIC như thế nào?

                            Comment

                            • LeDuc
                              Đệ tử 6 túi
                              • Mar 2007
                              • 150

                              #15
                              Nguyên văn bởi falleaf View Post
                              Bạn cấu hình chip như thế nào, bạn hãy post lên đây. Cách sửa code không có gì khó khăn cả, chỉ cần sửa vài dòng của nó thôi, nếu bạn hiểu lập trình MPASM thì chắc chắn là bạn sẽ hiểu được cách cấu hình rất dễ dàng.

                              Chúc vui
                              em sửa lại được rồi anh à . lúc đầu em khai báo cấu hình như sau :
                              Code:
                                 __CONFIG  _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
                              Còn phần icdpictypes em thêm vào như sau :
                              Code:
                              IFDEF __16F887
                              		#include "p16f887.inc"
                              IdTypePIC = 0x36		
                              		#define max_flash 0x2000
                              	ENDIF
                              chỉ có thể nhận diện đươc chip mà ko nạp được .
                              Em đã sửa lại cấu hình giống như anh Nam và đã chạy được rồi với cấu hình như sau :
                              Code:
                              __CONFIG  _CONFIG1, _HS_OSC & _FCMEN_OFF & _IESO_OFF & _CP_OFF & _WDT_OFF &  _  BOR_ON & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF
                              	__CONFIG  _CONFIG2, _WRT_OFF & _BOR21V
                              Lần này thì đã nạp được rồi .. Cảm ơn các anh
                              Nhưng em vẫn chưa hiểu phần khai báo cấu hình , bình thường khi viết chương trình em cũng khái báo 1 số cái như HS ,WDT, LVP,DEBUG . sao cái phần này lại khai báo nhiều quá , các anh có thể chỉ dẫn giúp em đưỡc ko ?

                              Thanks for all !
                              _________________________________________________
                              Le Trung Duc
                              Industry Research & Application Center
                              NTT Institute of Hi_technolog
                              ltduc@ntt.edu.vn
                              leduc_cktd@yahoo.com.vn
                              http://www.nttc.edu.vn
                              CNC DIY : http://quangcaosanpham.com/shop/driverservo
                              0909300332

                              Comment

                              Working...