Thông báo

Collapse
No announcement yet.

Watchdog ( PIC16F877A) ngủm thì làm thế nào?

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

  • #46
    Nhưng những cái đó để sau,
    Đề nghị anh em vào bài toán chính.
    PAN như vậy là tại sao?
    Giải quyết như thế nào?
    Chuối nhất là vẫn mạch vậy mà thằng 89C52 lại không sao.
    ( Câu dây sang, vì chỉ có MCU và 1 LED, tất nhiên 89C52 thì không dùng WD. Nhưng PIC thì dùng WD và không dùng đều đơ)
    Như vậy không có nghĩa là 89 tốt hơn PIC ( không so sánh). Nhưng trong kiến trúc IC nó cũng có phần nguồn cũng khá
    Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

    Biến tần
    Máy giặt
    Lò vi sóng
    Bếp từ.
    Tủ lạnh.
    Điều hòa

    Comment


    • #47
      Nguyên văn bởi MinhHa Xem bài viết
      Nhưng những cái đó để sau,
      Đề nghị anh em vào bài toán chính.
      PAN như vậy là tại sao?
      Giải quyết như thế nào?
      Chuối nhất là vẫn mạch vậy mà thằng 89C52 lại không sao.
      ( Câu dây sang, vì chỉ có MCU và 1 LED, tất nhiên 89C52 thì không dùng WD. Nhưng PIC thì dùng WD và không dùng đều đơ)
      Như vậy không có nghĩa là 89 tốt hơn PIC ( không so sánh). Nhưng trong kiến trúc IC nó cũng có phần nguồn cũng khá

      Em rất nghi ngờ vì khả năng clock và tiết kiệm điện của PIC . đó cũng có thể là một vấn đề .
      Anh đã thử clock ngoài chưa ???
      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


      • #48
        QD :
        chưa thử, nhưng nếu được thì cũng không khả thi lắm vì chẳng lẽ lại thêm con OSC bên ngoài.

        Còn 1 PAN nữa của PIC đây.
        Nhưng chẳng thấy ai quan tâm cả.
        Cái này là vấn đề POR.
        Vẫn mạch như trên. Khi mất điện, chạy 1 thời gian thì acqui cũng gần hết. Lúc này U aq nhỏ nên PIC cũng ngỏm thì tất nhiên. Nhưng khi AC có điện trở lại. Lúc này điện áp nuôi PIC OK. Nhưng nó cũng ngỏm luôn phải chờ RESET.
        Nếu PIC nằm ngay cạnh thì với tay bấm nút RESET cái là OK.
        Nhưng nếu mạch đặt tại Cao bằng mà mình ở Hanoi thì làm sao?
        ( chú ý: Uaq = 0 thì không vấn đề gì cho PIC nhưng toi AQ
        Lúc PIC ngỏm đo U aq = 4.7V. Nhưng do qua 7805 nên đầu ra nhỏ hơn 3V.

        Theo lý thuyết thì khi U lên 5V. POR hoạt động và RESET PIC. Nhưng tại sao nó không RESET mới lạ chứ.
        Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

        Biến tần
        Máy giặt
        Lò vi sóng
        Bếp từ.
        Tủ lạnh.
        Điều hòa

        Comment


        • #49
          Chào bác MH,

          Vấn đề của bác em giải thích thế này không biết có hợp lý không:

          1. Dù sao đi nữa thì WD timer cũng là 1 dạng reset mềm, chắc là sẽ không ổn định bằng IC reset bên ngoài rùi...nên bác chuyển qua sử dụng IC reset là hợp lý hi hi...(em thấy các hệ thống lớn thường dùng IC ngoài)

          2. Thường thì bất kỳ VĐK nào cũng có chân gọi là master reset, chân này thường được đấu vào mạch nạp RC, chức năng thì mọi người chắc đã biết mạch RC cần thời gian để nạp điện áp. Khi ta cắm nguồn vào thường thì có rất nhiều xung nhiễu khác nhau (xung gay, xung nhọn...) do hiện tượng shock điện gây ra, độ rộng của các xung này rất ngắn và tần số cũng rất đa dạng. Các xung này sẽ làm nhiễu hệ thống nếu ta không loại bỏ nó đi. Mạch RC trong trường hợp này sẽ loại bỏ được các xung nhọn này (các xung này xảy ra khi mạch RC chưa nạp đủ điện áp để reset VĐK). Trong trường hợp của bác MH do bác xài 2 nguồn DC và nguồn xung 12V nên khi bác rút nguồn xung ra mà vẫn còn nguồn acqui nuôi nên mạch RC lúc này vẫn ở trạng thái nạp đầy, khi bác cắm nguồn xung vào lại thì mạch RC không còn chức năng nạp nữa nên không thể lọc được các xung nhọn và gây ra hiện tượng nhiễu là điều dễ hiểu. Tuy nhiên WDT vẫn còn làm việc được trong tình huống này nhưng như bác nói xác xuất lỗi chỉ 5% là có thể chấp nhận được vì đôi lúc các xung nhiều này có thể làm mất các dữ liệu RAM và các tập lệnh chương trình chạy không đúng trình tự, chẳng hạn như tập lệnh chưa chạy được câu lệnh ghi dữ liệu vào thanh ghi WDT và dĩ nhiên làm vô hiệu hoá nó.

          Thân chào,


          Nguyên văn bởi MinhHa Xem bài viết
          Hãy nhìn đơn giản bài toán bác đưa ra, trước tiên bác đưa ra một số vấn đề, và cho rằng như thế là đủ. Một số thành viên hỏi thêm, bác lại đưa ra thêm... Như vậy có nghĩa rằng mọi người chưa khoanh vùng được lỗi của bác. Có thể bác làm việc trực tiếp với nó, và bác đã khoanh vùng lỗi xong, nhưng bác lưu ý rằng những thành viên đọc bài của bác sẽ không thể tư duy giống như bác.

          Không hề thêm gì F ạ, chỉ giải thích cho mọi người thôi, vì ý kiến thêm tụ....
          Nguyên bản ban đầu.
          Mạch như sau.
          1 con PIC 16F877A được nuôi bởi 2 nguồn.
          1. Từ ăcqui 12V qua 7805 ( cho đơn giản)
          2. Từ điện lưới qua nguồn switching xuống 12V.
          Có 2 diode shotky nối từ 12V AQ và 12V từ AC chung nhau A vào 7805.
          Trên mạch dùng tụ lọc 470uF ( tụ hóa) trước và sau 7805. Tụ tantalium ngay sát chân Vdd và Vss của PIC. ( 8 cái tantalium, 8 cái ceramic 104)

          Comment


          • #50
            RC của RESET không phải như vậy nhphong ạ.
            RC chỉ là cách đơn giản nhất thôi.
            cái POR nó cũng mô phỏng mấy con IC chuyên dụng về RESET. Sau T chu kỳ OSC của nó nó mới tích cực tức là cho phép MCU hoạt động.

            Các chuyên gia cho ý kiến. Tại sao dòng Intel, Moto.... Nó phải đồng bộ chân RESET với CLK mà mấy anh rẻ tiền không anh nào làm là sao?????
            Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

            Biến tần
            Máy giặt
            Lò vi sóng
            Bếp từ.
            Tủ lạnh.
            Điều hòa

            Comment


            • #51
              theo em nghĩ mục đích của việc đồng bộ tín hiệu Reset và xung clk là để đảm bảo việc đọc và ghi dữ liệu của CPU được chính xác. Giả sử như 1 một lệnh reset nào đó được thực hiên (có thể là cứng hoặc mềm) trong quá trình đó thì CPU đang thực hiện lệnh ghi dữ liệu vào các thiết bị ngoại vi hoặc RAM chưa thực hiện xong hay đang thực hiện chẳng hạn thì có thể dữ liệu ghi này sẽ bị lỗi, ghi sai (điều này rất quan trong trong các hệ thống điều khiển chính xác và back up lưu dữ file) hoặc mất dữ liệu mà CPU định ghi vào. Việc đồng bộ sẽ đảm bảo việc ghi dữ liệu hoàn tất và sau đó mới là reset hệ thống. Hệ thống đồng bộ làm việc bằng cách chốt lại tín hiệu reset và đợi cho CPU thực hiện xong lệnh đọc or ghi rồi mới cho phép tín hiệu reset.

              Nghĩ sao nói vậy sai thì thôi mong các bác đừng cười nhé...hi hi...

              Thân chào...

              Comment


              • #52
                Nguyên văn bởi nhphong Xem bài viết
                Chào bác MH,

                Vấn đề của bác em giải thích thế này không biết có hợp lý không:

                1. Dù sao đi nữa thì WD timer cũng là 1 dạng reset mềm, chắc là sẽ không ổn định bằng IC reset bên ngoài rùi...nên bác chuyển qua sử dụng IC reset là hợp lý hi hi...(em thấy các hệ thống lớn thường dùng IC ngoài)

                2. Thường thì bất kỳ VĐK nào cũng có chân gọi là master reset, chân này thường được đấu vào mạch nạp RC, chức năng thì mọi người chắc đã biết mạch RC cần thời gian để nạp điện áp. Khi ta cắm nguồn vào thường thì có rất nhiều xung nhiễu khác nhau (xung gay, xung nhọn...) do hiện tượng shock điện gây ra, độ rộng của các xung này rất ngắn và tần số cũng rất đa dạng. Các xung này sẽ làm nhiễu hệ thống nếu ta không loại bỏ nó đi. Mạch RC trong trường hợp này sẽ loại bỏ được các xung nhọn này (các xung này xảy ra khi mạch RC chưa nạp đủ điện áp để reset VĐK). Trong trường hợp của bác MH do bác xài 2 nguồn DC và nguồn xung 12V nên khi bác rút nguồn xung ra mà vẫn còn nguồn acqui nuôi nên mạch RC lúc này vẫn ở trạng thái nạp đầy, khi bác cắm nguồn xung vào lại thì mạch RC không còn chức năng nạp nữa nên không thể lọc được các xung nhọn và gây ra hiện tượng nhiễu là điều dễ hiểu. Tuy nhiên WDT vẫn còn làm việc được trong tình huống này nhưng như bác nói xác xuất lỗi chỉ 5% là có thể chấp nhận được vì đôi lúc các xung nhiều này có thể làm mất các dữ liệu RAM và các tập lệnh chương trình chạy không đúng trình tự, chẳng hạn như tập lệnh chưa chạy được câu lệnh ghi dữ liệu vào thanh ghi WDT và dĩ nhiên làm vô hiệu hoá nó.

                Thân chào,
                Bạn không nên mang kiến thức của 8051 áp dụng cho PIC trong trường hợp này.

                1. Ở PIC, WDT reset gần như reset gây ra bởi MCLR.

                Bạn có thể thấy ở sơ đồ sau:



                2. Thêm mạch RC vào chân PIC thì phải thêm một diode nối lên nguồn. Chính con tụ này làm cho PIC rất khó nạp.
                PIC có POR nên không cần mạch RC này làm gì cả.

                Comment


                • #53
                  Nguyên văn bởi phamthaihoa Xem bài viết
                  Bạn không nên mang kiến thức của 8051 áp dụng cho PIC trong trường hợp này.

                  1. Ở PIC, WDT reset gần như reset gây ra bởi MCLR.

                  Bạn có thể thấy ở sơ đồ sau:



                  2. Thêm mạch RC vào chân PIC thì phải thêm một diode nối lên nguồn. Chính con tụ này làm cho PIC rất khó nạp.
                  PIC có POR nên không cần mạch RC này làm gì cả.
                  oh, sorry các bạn nha, lâu quá k sử dụng nên có lẻ lộn qua lại giữa PIC và x51 rồi, mong các bác thông cảm...Định góp chút ý tưởng thôi ai dè...sai cơ bản...he he...

                  Comment


                  • #54
                    Một số vấn đề liên quan đến BOR,POR,WDT tớ tìm được.

                    1. Trong quyển PICmicro MID-RANGE MCU FAMILY, trang 494 nói về WDT có một câu hỏi về WDT.

                    Question 1: My system voltage drops and then returns to the specified device voltage range. The device is not operating correctly and the WDT does not reset and return the device to proper operation.
                    Answer 1:
                    The WDT was not designed to be a recovery from a brown-out condition. It was designed to recover from errant software operation (the device remaining in the specified operating ranges). If your system can be subjected to brown-outs, either the on-chip brown-out circuitry should be enabled or an external brown-out circuit should be implemented.

                    2. Nó còn nói một số nguyên nhân gây mất dao động của PIC là do quá trình power on không đúng.

                    The proper power-up sequence has not been followed. If a CMOS part is powered through an I/O pin prior to power-up, bad things can happen (latch up, improper start-up etc.) It is also possible for brown-out conditions, noisy power lines at start-up, and slow VDD rise times to cause problems. Try powering up the device with nothing connected to the I/O, and power-up with a known, good, fast-rise, power supply. It is not as much of a problem
                    as it may sound, but the possibility exists. Refer to the power-up information in the device data sheet for considerations on brown-out and power-up sequences.

                    Giai đoạn power-up sequence này nó trình bày khá dài dòng, tham khảo AN607 hoặc file đính kèm.

                    3.After a successful Power-up Reset, the device will begin to execute the firmware program. To have expected operation, ALL RAM should be initialized by the program. This includes the Special Function Registers (SFR) and the general purpose data memory. The use (read) of an uninitialized RAM location will cause the program to do exactly what you told it, with the unexpected RAM value. It should not be expected that all devices will power-up with the same uninitialized device values.

                    4.One of the primary functional failure modes of a device is when the applied voltage is lower than the specified minimum requirement. This functional failure is called Brown-out. Brown-out causes the program memory not to be read correctly. For example, the program counter may be pointing to a MOVE instruction, but the device reads it as a GOTO instruction (with a random destination). This can have disastrous affects to the operation of the application. If brown-out conditions are possible, the application needs to be protected by using a brown-out circuit. A brown-out circuit works with the MCLR pin to put the device in RESET before the device’s actual voltage violates the minimum limit.

                    Cái đoạn bôi đậm ấy, rất nguy hiểm.

                    Nên dùng một mạch BOR ngoài.


                    4.During a brown-out, improper program execution can occur due to an EPROM read failure. This program execution can also corrupt data memory locations, which include the Special Function Registers (SFRs). Corrupting
                    the control registers may cause hardware conflicts. For example, an input may become an output. Other conflicts are possible, but the situation will be
                    application dependent. As the device voltage gets lower, internal logic can
                    become corrupted. This can include the Program Counter (PC) value, Stack Pointer and contents, State machines, Data Memory, etc. When a valid voltage is returned, the device may be at an unexpected program location, possibly using corrupted values. In this situation, the device would not be expected to operate as intended and could get into a state that appears locked-up.

                    5.


                    6. Là một câu hỏi
                    Q. The device was powered-down and back up again, but it does not reset. It just starts operating immediately.

                    A. Possibilities include:
                    1. If power was applied to an I/O pin when the device was “powered-down”, the device would be powered through the I/O pin. The internal logic is not actually powered-down, and a Power-on Reset (POR) will not occur.
                    2. When VDD was powered down, VDD was not given enough time to settle to 0V.
                    Attached Files
                    Last edited by phamthaihoa; 07-01-2008, 21:56.

                    Comment


                    • #55
                      Nguyên văn bởi phamthaihoa Xem bài viết
                      Một số vấn đề liên quan đến BOR,POR,WDT tớ tìm được.

                      1. Trong quyển PICmicro MID-RANGE MCU FAMILY, trang 494 nói về WDT có một câu hỏi về WDT.

                      Question 1: My system voltage drops and then returns to the specified device voltage range. The device is not operating correctly and the WDT does not reset and return the device to proper operation.
                      Answer 1:
                      The WDT was not designed to be a recovery from a brown-out condition. It was designed to recover from errant software operation (the device remaining in the specified operating ranges). If your system can be subjected to brown-outs, either the on-chip brown-out circuitry should be enabled or an external brown-out circuit should be implemented.

                      2. Nó còn nói một số nguyên nhân gây mất dao động của PIC là do quá trình power on không đúng.

                      <còn nhiều nữa, tối về viết tiếp >
                      1. Đây là lý do cho câu hỏi của tôi ở post #24 (mà bác queduong ở post #28 đã trả lời, cho thấy bác ấy chưa hiểu đúng về WDT). Vấn đề của bác MinhHa liên quan đến nguồn, có thể dẫn đến latch-up, nhiễu trên MCLR, hay những vấn đề khác, hoàn toàn thuộc về phần cứng, vốn không phải là những vấn đề mà WDT của PIC được thiết kế để khắc phục.

                      Thân,
                      Biển học mênh mông, sức người có hạn

                      Comment


                      • #56
                        Đã cập nhật ở post #54.

                        Comment


                        • #57
                          Hô hô... Có nhiễu à? Ai nhiễu? Nhiễu chỗ nào?

                          Tớ từng gặp mấy ca nhiễu nguồn, không biết có giúp gì cho anh em không:
                          - Trong bo điều khiển của máy ép nhựa di đếch sừn của Nhật, cứ khởi động 45' là treo. Tớ dán một lá đồng mỏng lên lưng MòCU (có hàn nối mát). Thế là chạy phe phé.
                          - Trong biến tần của SIEMEN, lúc chạy lúc không. Khi bị lỗi thì mất cả LCD. Hóa ra là chết đứt con tụ 4700p nối từ mát nguồn (sau nắn) và mát cách ly. Tại sao nó chết thì bố giời cũng chẳng hiểu, nhưng con tụ này quan trọng phết, bởi cắm con khác vào là chạy ngay. Thế mà mấy ông vi en lại chẳng thèm để ý con tụ này mới cú... có khi còn ăn bớt.

                          Mà sao có nhiều bác yêu cầu tụ có điện dung cao thế nhỉ? Có cần thiết không? Trong khi dùng với nguồn xung thì những tụ 1000p=>10000p lại cực kỳ quan trọng.
                          Và cả vấn đề dập xung cho biến áp xung nữa... Với những biến áp lởm khởm, khi tắt điện thì xung mới vọt cao (vì mạch khống chế đã vô tác dụng). Giải quyết vấn đề đó thì quá dễ, nhưng có ai làm chưa nhỉ?
                          Đêm nay tớ không ngủ - ngày mai tớ ngủ bù

                          Comment


                          • #58
                            Nguyên văn bởi phamthaihoa Xem bài viết
                            Một số vấn đề liên quan đến BOR,POR,WDT tớ tìm được.

                            1. Trong quyển PICmicro MID-RANGE MCU FAMILY, trang 494 nói về WDT có một câu hỏi về WDT.

                            Question 1: My system voltage drops and then returns to the specified device voltage range. The device is not operating correctly and the WDT does not reset and return the device to proper operation.
                            Answer 1:
                            The WDT was not designed to be a recovery from a brown-out condition. It was designed to recover from errant software operation (the device remaining in the specified operating ranges). If your system can be subjected to brown-outs, either the on-chip brown-out circuitry should be enabled or an external brown-out circuit should be implemented.

                            2. Nó còn nói một số nguyên nhân gây mất dao động của PIC là do quá trình power on không đúng.

                            The proper power-up sequence has not been followed. If a CMOS part is powered through an I/O pin prior to power-up, bad things can happen (latch up, improper start-up etc.) It is also possible for brown-out conditions, noisy power lines at start-up, and slow VDD rise times to cause problems. Try powering up the device with nothing connected to the I/O, and power-up with a known, good, fast-rise, power supply. It is not as much of a problem
                            as it may sound, but the possibility exists. Refer to the power-up information in the device data sheet for considerations on brown-out and power-up sequences.

                            Giai đoạn power-up sequence này nó trình bày khá dài dòng, tham khảo AN607 hoặc file đính kèm.

                            3.After a successful Power-up Reset, the device will begin to execute the firmware program. To have expected operation, ALL RAM should be initialized by the program. This includes the Special Function Registers (SFR) and the general purpose data memory. The use (read) of an uninitialized RAM location will cause the program to do exactly what you told it, with the unexpected RAM value. It should not be expected that all devices will power-up with the same uninitialized device values.

                            4.One of the primary functional failure modes of a device is when the applied voltage is lower than the specified minimum requirement. This functional failure is called Brown-out. Brown-out causes the program memory not to be read correctly. For example, the program counter may be pointing to a MOVE instruction, but the device reads it as a GOTO instruction (with a random destination). This can have disastrous affects to the operation of the application. If brown-out conditions are possible, the application needs to be protected by using a brown-out circuit. A brown-out circuit works with the MCLR pin to put the device in RESET before the device’s actual voltage violates the minimum limit.

                            Cái đoạn bôi đậm ấy, rất nguy hiểm.

                            Nên dùng một mạch BOR ngoài.


                            4.During a brown-out, improper program execution can occur due to an EPROM read failure. This program execution can also corrupt data memory locations, which include the Special Function Registers (SFRs). Corrupting
                            the control registers may cause hardware conflicts. For example, an input may become an output. Other conflicts are possible, but the situation will be
                            application dependent. As the device voltage gets lower, internal logic can
                            become corrupted. This can include the Program Counter (PC) value, Stack Pointer and contents, State machines, Data Memory, etc. When a valid voltage is returned, the device may be at an unexpected program location, possibly using corrupted values. In this situation, the device would not be expected to operate as intended and could get into a state that appears locked-up.

                            5.


                            6. Là một câu hỏi
                            Q. The device was powered-down and back up again, but it does not reset. It just starts operating immediately.

                            A. Possibilities include:
                            1. If power was applied to an I/O pin when the device was “powered-down”, the device would be powered through the I/O pin. The internal logic is not actually powered-down, and a Power-on Reset (POR) will not occur.
                            2. When VDD was powered down, VDD was not given enough time to settle to 0V.
                            Bác MinhHa có khi đang gặp vài vấn đề trong số những gì được nêu trên. 6.A.2 có lẽ giải đáp cho vấn đề ở post #48 của bác MinhHa (bác ấy không power-down xuống đến 0 V).

                            Thân,
                            Biển học mênh mông, sức người có hạn

                            Comment


                            • #59
                              tất nhiên chưa đến 0V mới là vấn đề ( đã nói bài toán rồi) chứ 0V thì OK. Nhưng điện áp thấp xuống để PIC không chạy được. sau đó tăng lên nó vẫn toi chứ.
                              nếu WD ngoài thì chạy ngon.
                              Vậy muốn hỏi cái WD của PIC sao lại thiết kế như vậy? WD rất đơn giản mà tích hợp vào chip lại kém thế.
                              Còn xung điện áp thì yên tâm đã được lọc rất sạch bằng một số tụ chuyên dụng rồi.
                              Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                              Biến tần
                              Máy giặt
                              Lò vi sóng
                              Bếp từ.
                              Tủ lạnh.
                              Điều hòa

                              Comment


                              • #60
                                Tiện các bác đang thảo luận sôi nổi về "chó cảnh" ,em xin hỏi về Watchdog của 89S52, thanh ghi WDTRST thì truy nhập tốt , còn thanh ghi AUXR thì sao viết lệnh mà ko thấy động tĩnh gì nhỉ? em muốn truy nhập bit WDIDLE của nó để dừng watchdog khi ko cần thiết ấy mà
                                câu lệnh AUXR = 0x10 ko thấy WD dừng ????
                                Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X