Thông báo

Collapse
No announcement yet.

"Chó giữ nhà" làm sao cho hiệu quả ???

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • "Chó giữ nhà" làm sao cho hiệu quả ???

    Tôi thường dùng watchdog ngoài , ít khi dùng watchdog nội của PIC ,

    nhưng cái watchdog ngoài thì hơi cồng kềnh . Nay lại thử quay thử dùng watchdog của PIC xem sao ...

    Theo các bác thì làm sao cho nó hiệu quả đây ???

    Nên đặt câu lệnh CLRWDT(); vào chỗ nào ???

    + trong main
    + trước main và trong while
    + trong hàm delay
    + trong ngắt

    Hay là thủ công , cứ mỗi lần delay là lại chèn thêm ( mệt nhỉ )

    Liệu có nên tăng thời gian WDT khi gặp phải hàm trễ quá dài ???

    --- Bác nào thử cho ý kiến phát .
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

  • #2
    có lẽ pác nên đưa ra 1 chương trình ứng dụng cụ thể sẽ dễ bàn hơn

    Comment


    • #3
      Sao bác không dùng timer để xóa WD nhỉ!

      Comment


      • #4
        Mấy anh cho em hỏi WD có ý nghĩa gì vậy? Nó được dùng làm cái gì trong con VXL?

        Comment


        • #5
          Nguyên văn bởi hiepgabk Xem bài viết
          có lẽ pác nên đưa ra 1 chương trình ứng dụng cụ thể sẽ dễ bàn hơn
          Cái này dễ bàn mà :

          Trong config có sử dụng WDTEN ;

          void main()

          {
          TRISB=0x00;
          PORTB =0x00;

          while(1)
          {
          PORTB = 0;

          DelayMs(500);
          PORTB = 1;
          DelayMs(500);

          }
          }



          Theo kiểu trên thì PORTB nhấp nháy, không Clear Watchdog và PIC sẽ reset vì " quá thời gian " time out .


          Tôi thử cho cái mạch trên vào thùng RF của tôi .

          Không hiểu sao lúc con PIC bị treo , tất cả PORTB đều sáng .

          Nếu có sử dụng Watchdog nó sẽ reset ngay . Đằng này ngồi gần chục phút mà nó cứ trơ ra như vậy .

          Đến pó tay . Hình như nó treo luôn cả Watchdog .

          Chỉ khi tôi rút nguồn ra , cắm lại mới chạy . hoặc chập chân reset xuống GND.


          --- Ý tôi muốn là ( Chương trình + phần cứng thật đơn giản ( đơn giản hơn kiểu lắp ráp Watchdog ngoài ).

          Ví dụ nhé : ta vừa kết hợp Watchdog bằng set và clear WDT , thêm nữa có thể tạo thêm mạch phụ thật đơn giản , nếu PIC bị treo sẽ đưa xung để chập cái chân reset xuống GND thay mình .

          Bác nào có cao kiến gì không ???

          Làm sao để sử dụng Watchdog trong PIC thật hiệu quả thì không phải ai cũng làm được
          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

          Comment


          • #6
            Nguyên văn bởi natra2k2 Xem bài viết
            Sao bác không dùng timer để xóa WD nhỉ!
            Không biết bác có cao kiến gì không ???

            Chắc ý của bác là tạo một timer có thời gian tràn nhỏ hơn thời gian time out của Watchdog ???
            Sau đó mỗi lần tràn timer nó sẽ clear WD ...

            --- Tôi đã thử mấy kiểu rồi

            Không biết cái Watchdog của PIC có an toàn lắm không ,tôi thấy hình như nó không tác dụng trong bài của tôi , vì nhiều khi nó treo mà chẳng thấy " Chó giữ nhà Sủa " gì cả các bác ạ .

            Hiện tại tôi đang nghi ngờ mấy trường hợp xảy ra khi WD không tác dụng "

            -- Bị treo đúng bit WD enable
            - Bị rơi vào vòng lặp không lối thoát ( cái này thì khó xảy xa - vì chương trình đã chạy vài lượt tốt rồi mà )

            - Đặt Clear WDT không đúng chỗ


            ---- Tôi đang làm cái Clear WDT bằng 1 , 2 transistor để cho nó reset cái chân Clear ( MCLR) . Chưa hình dung ra phải làm thế nào cho nó chạy được .
            Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

            Comment


            • #7
              Nguyên văn bởi queduong Xem bài viết
              Cái này dễ bàn mà :

              Trong config có sử dụng WDTEN ;

              void main()

              {
              TRISB=0x00;
              PORTB =0x00;

              while(1)
              {
              PORTB = 0;

              DelayMs(500);
              PORTB = 1;
              DelayMs(500);

              }
              }



              Theo kiểu trên thì PORTB nhấp nháy, không Clear Watchdog và PIC sẽ reset vì " quá thời gian " time out .


              Tôi thử cho cái mạch trên vào thùng RF của tôi .

              Không hiểu sao lúc con PIC bị treo , tất cả PORTB đều sáng .

              Nếu có sử dụng Watchdog nó sẽ reset ngay . Đằng này ngồi gần chục phút mà nó cứ trơ ra như vậy .

              Đến pó tay . Hình như nó treo luôn cả Watchdog .

              Chỉ khi tôi rút nguồn ra , cắm lại mới chạy . hoặc chập chân reset xuống GND.


              --- Ý tôi muốn là ( Chương trình + phần cứng thật đơn giản ( đơn giản hơn kiểu lắp ráp Watchdog ngoài ).

              Ví dụ nhé : ta vừa kết hợp Watchdog bằng set và clear WDT , thêm nữa có thể tạo thêm mạch phụ thật đơn giản , nếu PIC bị treo sẽ đưa xung để chập cái chân reset xuống GND thay mình .

              Bác nào có cao kiến gì không ???

              Làm sao để sử dụng Watchdog trong PIC thật hiệu quả thì không phải ai cũng làm được
              Cái kiểu treo này em gặp nhiều roài. Nhất là mạch có mấy ông động cơ hoặc cái gì tương tự mà ngốn điện năng khi khởi động. Theo em nguyên nhân của nó là do khi cấp nguồn, điện áp cho MCU chưa đủ nên khi reset nó không nhảy về địa chỉ 0==> phần mềm không hoạt động==> WDT mềm không giải quyết vấn đề gì cả.
              Để giải quyết cái này theo em dùng cái Brown-out Protection sẽ đảm bảo MCU chỉ hoạt động khi đã đủ áp. Hoặc là phải dùng WDT cứng thôi.
              AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
              Xem thêm tại Online Store ---> Click here
              Mob: 0982.083.106

              Comment


              • #8
                Nguyên văn bởi VNarmy Xem bài viết
                Cái kiểu treo này em gặp nhiều roài. Nhất là mạch có mấy ông động cơ hoặc cái gì tương tự mà ngốn điện năng khi khởi động. Theo em nguyên nhân của nó là do khi cấp nguồn, điện áp cho MCU chưa đủ nên khi reset nó không nhảy về địa chỉ 0==> phần mềm không hoạt động==> WDT mềm không giải quyết vấn đề gì cả.
                Để giải quyết cái này theo em dùng cái Brown-out Protection sẽ đảm bảo MCU chỉ hoạt động khi đã đủ áp. Hoặc là phải dùng WDT cứng thôi.

                Có sử dụng BRown rồi nhưng không ăn thua .

                Brown out cứ như con dao 2 lưỡi . Trước đây có một bài động cơ DC , cứ khi khởi động là nó "nuốt nguồn " khiến con PIC vừa khởi động đã bị dập tắt .
                Thành thử mình Disable cái Brown out thấy nó chạy tốt ( khoảng 1 năm nay rồi ) .
                Nhưng theo BinhAnh để như vậy rất nguy hiểm và có nguy cơ bị hỏng chương trình trong con PIC ,
                Cũng chưa hiểu sâu chỗ này lắm , chỉ biết khắc phục được sự cố ,khách hàng đỡ cằn nhằn . Tội đâu sau này tính tiếp vậy.


                --- Còn vụ Watchdog , chẳng lẽ cứ phải xài thêm một cái mạch cứng ... chà chà .

                Mình vừa thí nghiệm và nhận thấy thông thường khi treo thì các PORT có xu hướng dâng cao điện áp ( mức logic cao ) ở các chân .

                Mình định dùng một vài con di ốt + 2 con transistor nhỏ + với tụ và với 2 chân của PIC Tạo thành 1 cổng logic ta sẽ đưa xung qua đó để kiểm tra . Nếu mất xung sẽ kích MCLR ( reset ) .
                Đang làm và nghĩ cách làm sao cho nó đỡ tốn "không gian " hơn là cái mạch Watchdog ngoài .

                Cách này có vẻ hợp lý không nhỉ ???
                Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                Comment


                • #9
                  Liệu có thể chỉ sử dụng 1 transistor làm mạch kích reset không nhỉ ???
                  Lại chuẩn bị thí nghiệm đây .
                  Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                  Comment


                  • #10
                    Nguyên văn bởi queduong Xem bài viết
                    Có sử dụng BRown rồi nhưng không ăn thua .

                    Brown out cứ như con dao 2 lưỡi . Trước đây có một bài động cơ DC , cứ khi khởi động là nó "nuốt nguồn " khiến con PIC vừa khởi động đã bị dập tắt .
                    Thành thử mình Disable cái Brown out thấy nó chạy tốt ( khoảng 1 năm nay rồi ) .
                    Nhưng theo BinhAnh để như vậy rất nguy hiểm và có nguy cơ bị hỏng chương trình trong con PIC ,
                    Cũng chưa hiểu sâu chỗ này lắm , chỉ biết khắc phục được sự cố ,khách hàng đỡ cằn nhằn . Tội đâu sau này tính tiếp vậy.


                    --- Còn vụ Watchdog , chẳng lẽ cứ phải xài thêm một cái mạch cứng ... chà chà .

                    Mình vừa thí nghiệm và nhận thấy thông thường khi treo thì các PORT có xu hướng dâng cao điện áp ( mức logic cao ) ở các chân .

                    Mình định dùng một vài con di ốt + 2 con transistor nhỏ + với tụ và với 2 chân của PIC Tạo thành 1 cổng logic ta sẽ đưa xung qua đó để kiểm tra . Nếu mất xung sẽ kích MCLR ( reset ) .
                    Đang làm và nghĩ cách làm sao cho nó đỡ tốn "không gian " hơn là cái mạch Watchdog ngoài .

                    Cách này có vẻ hợp lý không nhỉ ???
                    Pác sợ tốn không gian ah. Em đang có con MAX690-Supervisor nè. Chỉ có 8 chân thôi. Nhưng mà em chém 25k đấy.
                    AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                    Xem thêm tại Online Store ---> Click here
                    Mob: 0982.083.106

                    Comment


                    • #11
                      Nguyên văn bởi VNarmy Xem bài viết
                      Pác sợ tốn không gian ah. Em đang có con MAX690-Supervisor nè. Chỉ có 8 chân thôi. Nhưng mà em chém 25k đấy.
                      Hay ! để mình ngâm cứu con này xem .
                      Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                      Comment


                      • #12
                        Xem lại chế độ mặc định khi reset bằng WD.

                        Chúc vui
                        Falleaf
                        Công ty TNHH Thương mại và Giao nhận R&P
                        58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
                        mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

                        Comment


                        • #13
                          alo
                          thế giải pháp cuối cùng làgif vậy mấy bác. em đang bị tinh trạng pic chạy đc mấy ngày là bị treo, ko biết các bậc tiền bối đi trước xư ly thế nào

                          Comment

                          Về tác giả

                          Collapse

                          queduong Tìm hiểu thêm về queduong

                          Bài viết mới nhất

                          Collapse

                          Đang tải...
                          X