Thông báo

Collapse
No announcement yet.

Làm sao để phát hiện mất nguồn nuôi cho VDK vậy ?

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

  • Làm sao để phát hiện mất nguồn nuôi cho VDK vậy ?

    Để đề phòng mất dữ liệu khi cúp điện (VDK là PIC16F877A), nên mình tính là cứ mỗi phút là ghi vào ROM của PIC16F877A. Nhưng làm như vậy thì ko ổn vì số lần đọc ghi ROM là 1000000, nếu biết cách có thể ghi nhiều hơn số lần đó, và thấy cách này cũng ko khả thi lắm.
    Mình nghe nói là có mạch phát hiện ra mất nguồn nuôi cho PIC mà tìm hoải ko ra, mà có gợi ý sau:
    - Sử dụng tụ điện dụng lớn ( 2200uF), diode, trở để duy trì và lưu lại giá trị trước khi mất hẳn.
    Cách này thấy hay mà mình ko biết sơ đồ mạch nó mắc như thế nào như thế nào?
    Mình chỉ nghĩ là ngõ ra 5V mắc cái tụ 2200uF thôi, còn trở và diode sẽ được mắc như thế nào ?
    Mà giả sử là điện dung nó lớn và duy trì được 1s đi thì làm sao biết là nó sắp mất điện ? Phải chăng là dùng ngắt hay là ADC và hướng lập trình là gì ?
    Mong mọi người chỉ dùm nhé.

  • #2
    bạn dùng 2 con diode, 1 con mắc vào nguồn chính, 1 con ngắc vào nguồn phụ (pin=battery là li ion, acqui, Ni-MH << bạn phải có mạch sạc cho đúng loại pin bạn dùng) hoặc dùng supercap 1F. con supercap sẽ giữ điện khoảng >2hr hoặc hơn nếu mạch bạn dùng ít dòng.
    còn việc viết vào eeprom của con pic, không nên.
    Mãi đi tìm vàng.

    Comment


    • #3
      dùng ADC của con pic để báo khi nào mất điện.
      Mãi đi tìm vàng.

      Comment


      • #4
        viết vào eeprom được nhưng ít thôi... tại bạn viết có 1 chỗ....
        Mãi đi tìm vàng.

        Comment


        • #5
          phát hiện mất nguồn , nếu nguồn 220VAC thì bạn cho qua opto cách ly ... tính điện trở opto ... đưa vào 1 chân MCU để kiểm tra có điện, mất điện .

          --- Cũng có thể lấy điện 12V, 5V đã hạ áp để ... nhận biết mất điện .

          - Bạn có thể ghi thoải mái vào eeprom ( ghi 1 chỗ ) ... Mỗi ngày tôi ghi hơn chục lần ( vào 1 chỗ ) mà gần 3 năm nay nó vẫn chưa chết ... mong nó chết quá ... mà nó chẳng chết cho. Nên bạn yên tâm.

          Nếu cảm thấy không yên tâm bạn có thể sử dụng EEPROM ngoài ! ( 24C02 chẳng hạn )

          --- Dưới đây là cái sơ đồ backup do tôi thiết kế và vẫn đang dùng . Tùy theo loại MCU mà lựa chọn pin backup điện áp thích hợp ( với PIC có thể chạy từ 2V - 5,5V sử dụng pin backup Ni-MH 3V6 là OK ) .
          Với những dòng như AVR ( 1 số con chỉ làm việc tốt ở 4,5V - 5,5V ) thì dùng pin backup 6V ( hoặc 7,2V rồi qua 1 vài đi ốt hạ áp.) ... nguồn sạc cũng cao hơn.

          --- Cách thức hoạt động của mạch backup rất đơn giản : khi lập trình

          1) Đầu tiên vào chương trình ta cho đầu control = 1 để mạch backup cấp điện đồng thời với nguồn cấp ( mạch sẽ tự sạc luôn - đừng lo về việc phải ngắt sạc ... cắm cả năm cũng được )
          2) Kiểm tra trạng thái mất điện
          3) khi thấy mất điện ... do pin backup tiếp tục nuôi nên có thể ghi thoải mái ( pin mà ... không sợ nhanh hết điện như tụ )
          4) Ghi vào eeprom xong thì điều khiển đầu control =0 ... ==> tắt toàn bộ nguồn nguôi con PIC . ( không sợ hao hụt pin backup Kiệt điện )


          --- Pin backup có thể thay bằng tụ điện ... tuy nhiên giá tụ điện đắt, cồng kềnh ... thời gian duy trì điện không lâu ... nếu dùng tụ phải dùng loại cỡ 22.000uF trở lên ! hoặc dùng siêu tụ 1FClick image for larger version

Name:	backup.jpg
Views:	1
Size:	36.3 KB
ID:	1379252
          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
            Xin hỏi bác Quế Dương tác dụng của con R2 và D2 trong sơ đồ của bác là gì ạ?

            Comment


            • #7
              Nguyên văn bởi postmanbk Xem bài viết
              Xin hỏi bác Quế Dương tác dụng của con R2 và D2 trong sơ đồ của bác là gì ạ?
              Theo tôi hiểu là khi có điện thì tải không dùng điện từ pin mà tự đổi qua dùng điện từ nguồn chính.
              Mấy post trên #3, 4: tôi đã trả lời vội. Giờ xem lại thấy mod QD nói tôi mới rõ là bạn chủ thớt tìm cách phát hiện bị cúp điện, tôi hiểu nhầm là đo nguồn mới khuyên dùng ADC.

              Còn việc viết vào eeprom thì có thể chọn vài chỗ (vd 5 chỗ), chương trình tự chọn ngẫu nhiên (randomly) 1 trong 5 chỗ thì không phải sợ là viết vào 1 chỗ.

              Còn dò có điện hay không dùng opto thì nên gắn 1 con led nối tiếp với con led trong opto.

              con siêu tụ có khi còn đắt hơn 1 cục pin.
              Mãi đi tìm vàng.

              Comment


              • #8
                "Theo tôi hiểu là khi có điện thì tải không dùng điện từ pin mà tự đổi qua dùng điện từ nguồn chính."
                --> đâu phải thế bạn, vì khi có điện, pin sẽ được sạc từ nguồn chính 5V mà, đâu cần thêm các con R2, D2

                Comment


                • #9
                  Nguyên văn bởi postmanbk Xem bài viết
                  "Theo tôi hiểu là khi có điện thì tải không dùng điện từ pin mà tự đổi qua dùng điện từ nguồn chính."
                  --> đâu phải thế bạn, vì khi có điện, pin sẽ được sạc từ nguồn chính 5V mà, đâu cần thêm các con R2, D2
                  pin nó được sạc chứ nó đâu bị "dùng".
                  Mãi đi tìm vàng.

                  Comment


                  • #10
                    Nguyên văn bởi queduong Xem bài viết
                    phát hiện mất nguồn , nếu nguồn 220VAC thì bạn cho qua opto cách ly ... tính điện trở opto ... đưa vào 1 chân MCU để kiểm tra có điện, mất điện .

                    --- Cũng có thể lấy điện 12V, 5V đã hạ áp để ... nhận biết mất điện .

                    - Bạn có thể ghi thoải mái vào eeprom ( ghi 1 chỗ ) ... Mỗi ngày tôi ghi hơn chục lần ( vào 1 chỗ ) mà gần 3 năm nay nó vẫn chưa chết ... mong nó chết quá ... mà nó chẳng chết cho. Nên bạn yên tâm.

                    Nếu cảm thấy không yên tâm bạn có thể sử dụng EEPROM ngoài ! ( 24C02 chẳng hạn )

                    --- Dưới đây là cái sơ đồ backup do tôi thiết kế và vẫn đang dùng . Tùy theo loại MCU mà lựa chọn pin backup điện áp thích hợp ( với PIC có thể chạy từ 2V - 5,5V sử dụng pin backup Ni-MH 3V6 là OK ) .
                    Với những dòng như AVR ( 1 số con chỉ làm việc tốt ở 4,5V - 5,5V ) thì dùng pin backup 6V ( hoặc 7,2V rồi qua 1 vài đi ốt hạ áp.) ... nguồn sạc cũng cao hơn.

                    --- Cách thức hoạt động của mạch backup rất đơn giản : khi lập trình

                    1) Đầu tiên vào chương trình ta cho đầu control = 1 để mạch backup cấp điện đồng thời với nguồn cấp ( mạch sẽ tự sạc luôn - đừng lo về việc phải ngắt sạc ... cắm cả năm cũng được )
                    2) Kiểm tra trạng thái mất điện
                    3) khi thấy mất điện ... do pin backup tiếp tục nuôi nên có thể ghi thoải mái ( pin mà ... không sợ nhanh hết điện như tụ )
                    4) Ghi vào eeprom xong thì điều khiển đầu control =0 ... ==> tắt toàn bộ nguồn nguôi con PIC . ( không sợ hao hụt pin backup Kiệt điện )


                    --- Pin backup có thể thay bằng tụ điện ... tuy nhiên giá tụ điện đắt, cồng kềnh ... thời gian duy trì điện không lâu ... nếu dùng tụ phải dùng loại cỡ 22.000uF trở lên ! hoặc dùng siêu tụ 1F[ATTACH=CONFIG]66666[/ATTACH]
                    Em phân tích mạch này như vậy, ko biết có đúng ko nhé.
                    Khi gắn nguồn vào, PIN và nguồn 5V thì PIC sẽ chạy trước bằng nguồn PIN, khởi động PIN control = 1 làm dẫn Q2. Khi Q2 dẫn sẽ làm cho chân B của Q1 dẫn và dòng điện qua D1, R1, Q1, D2 vậy điện áp là 5 - 0.7 - điện áp trên R1 - 0.2 (CE của Q1) - 0.7 ~ 3.4.
                    Khi cúp điện, vi xử lý phát hiện ra áp vào bị mất, chân control = 0, làm tắt Q2, Q2 tắt dẫn đến Q1 tắt. Khi Q1 tắt, dòng điện chạy từ pin qua R2, qua D2, nên áp ra là 3.6 - áp trên R2 - 0.7 ( áp trên D2) = 2.9.
                    D1 dùng để chặn điện áp từ Pin về nguồn 5V
                    Em thắc mắc ko biết công dụng của R1 có phải là hạn dòng để làm 2 việc ko vậy ? 1 là nuôi PIC 2 là nạp cho PIN. Khi cúp điện thì PIN 3.6V nối với R2(27k) nối với D2 và đi vào PIC, cách này có phải là cách mắc nối tiếp? vậy tại sao lại chọn giá trị là 27k, U = I.R, I = dòng cấp vào vi điều khiển. Nếu R lớn vậy có làm tổn hao nhiều áp ko vậy và công dụng D2 dùng để làm gì ? Mong bác chỉ dẫn dùm em nhé. Em xin cám ơn bác.

                    Comment


                    • #11
                      Nguyên văn bởi KVLV Xem bài viết
                      bạn dùng 2 con diode, 1 con mắc vào nguồn chính, 1 con ngắc vào nguồn phụ (pin=battery là li ion, acqui, Ni-MH << bạn phải có mạch sạc cho đúng loại pin bạn dùng) hoặc dùng supercap 1F. con supercap sẽ giữ điện khoảng >2hr hoặc hơn nếu mạch bạn dùng ít dòng.
                      còn việc viết vào eeprom của con pic, không nên.
                      Cảm ơn anh đã cho em thêm gợi ý.

                      Comment


                      • #12
                        Con D2 là con mình dùng để chống áp ngược ... Còn R2 mình để cho nó thoát dòng ( xả rất nhỏ ) nên khi cắm điện nó có chỗ nạp cho pin . ( lúc trước do mình thiết kế nó là loại lithium )

                        Trên thực tế nếu bạn dùng pin sạc Ni-MH ... và muốn bền , không tiêu hao điện ... ( nhất là thiết bị không sử dụng ( không cắm điện liên tục )) ... thì bạn nối con R2 từ cực E tới cực B sẽ tạo áp logic và phân cực luôn. Lúc đó đóng cắt điện sẽ không bị tiêu hao PIN . Thiết bị để vài tháng mới chạy 1 lần vẫn OK .

                        --- Theo cái thiết kế của mình , để áp dụng cho mọi trường hợp ... thì bạn nên đổi lại R2 nối EB sẽ tốt hơn. ( lúc đó có thể sử dụng transistor bất kỳ ).

                        Nếu dùng pin lithium ( loại không sạc được - thực tế khi sạc vẫn được nhưng không giữ được điện lâu ) ... bạn nên làm cách " xả bớt " ( có thể hiệu chỉnh R2 ) theo hình thức xả nhiều ít .
                        ( chứ R2 không có tác dụng làm khóa đâu ... bản thân transistor có hef cao mình không gắn cái trở EB vào ... chứ đúng ra bạn cũng cần lắp trở EB ( cỡ 47K là ngon ))
                        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


                        • #13
                          Nguyên văn bởi draknight Xem bài viết
                          Em phân tích mạch này như vậy, ko biết có đúng ko nhé.
                          Khi gắn nguồn vào, PIN và nguồn 5V thì PIC sẽ chạy trước bằng nguồn PIN, khởi động PIN control = 1 làm dẫn Q2. Khi Q2 dẫn sẽ làm cho chân B của Q1 dẫn và dòng điện qua D1, R1, Q1, D2 vậy điện áp là 5 - 0.7 - điện áp trên R1 - 0.2 (CE của Q1) - 0.7 ~ 3.4.
                          Khi cúp điện, vi xử lý phát hiện ra áp vào bị mất, chân control = 0, làm tắt Q2, Q2 tắt dẫn đến Q1 tắt. Khi Q1 tắt, dòng điện chạy từ pin qua R2, qua D2, nên áp ra là 3.6 - áp trên R2 - 0.7 ( áp trên D2) = 2.9.
                          D1 dùng để chặn điện áp từ Pin về nguồn 5V
                          Em thắc mắc ko biết công dụng của R1 có phải là hạn dòng để làm 2 việc ko vậy ? 1 là nuôi PIC 2 là nạp cho PIN. Khi cúp điện thì PIN 3.6V nối với R2(27k) nối với D2 và đi vào PIC, cách này có phải là cách mắc nối tiếp? vậy tại sao lại chọn giá trị là 27k, U = I.R, I = dòng cấp vào vi điều khiển. Nếu R lớn vậy có làm tổn hao nhiều áp ko vậy và công dụng D2 dùng để làm gì ? Mong bác chỉ dẫn dùm em nhé. Em xin cám ơn bác.
                          Bạn phân tích Không chuẩn . Mình có phân tích ở trên . ( và có khuyến cáo dùng thêm trở EB ... và bỏ trở EC nếu dùng pin sạc Ni-MH ( 3V6 )

                          --- Đầu control bạn đưa vào 1 đầu I/O của pic ( chân nào cũng được ... miễn là I/O) ( Ví dụ chân RB5)

                          trong chương trình PIC :

                          RB5 =1;

                          if( mất điện ) { ghi eeprom ; Delay(); RB5=0; }

                          thế là sau khi ghi eeprom nó tự động tắt toàn bộ để " đỡ tốn pin backup "

                          --- Khi nào có điện trở lại ... nó sẽ sạc liên tục vào pin . Với pin lithium thì nên xem các giá trị R phù hợp để tránh nhanh bị hỏng PIN . Với PIN Ni-MH thì cứ vô 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

                          Comment


                          • #14
                            Nguyên văn bởi KVLV Xem bài viết
                            Theo tôi hiểu là khi có điện thì tải không dùng điện từ pin mà tự đổi qua dùng điện từ nguồn chính.
                            Mấy post trên #3, 4: tôi đã trả lời vội. Giờ xem lại thấy mod QD nói tôi mới rõ là bạn chủ thớt tìm cách phát hiện bị cúp điện, tôi hiểu nhầm là đo nguồn mới khuyên dùng ADC.

                            Còn việc viết vào eeprom thì có thể chọn vài chỗ (vd 5 chỗ), chương trình tự chọn ngẫu nhiên (randomly) 1 trong 5 chỗ thì không phải sợ là viết vào 1 chỗ.

                            Còn dò có điện hay không dùng opto thì nên gắn 1 con led nối tiếp với con led trong opto.

                            con siêu tụ có khi còn đắt hơn 1 cục pin.
                            Dùng ADC nhận biết cúp điện cũng được mà !
                            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


                            • #15
                              Bạn dùng thế này với loại transistor bất kỳ , pin ni-Mh
                              Click image for larger version

Name:	aaa.jpg
Views:	1
Size:	32.0 KB
ID:	1379259
                              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

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X