Thông báo

Collapse
No announcement yet.

Cho hỏi phương án giữ trạng thái của PIC khi bi mất nguồn và có nguồn lại

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

  • Cho hỏi phương án giữ trạng thái của PIC khi bi mất nguồn và có nguồn lại

    Chào các bác.

    Các Bác cho mình hỏi là phương án nào để giúp cho PIC, hay 89 lưu lại vài giá trị khi bị mất nguồn và có nguồn lại .

    Cám ơn các Bác rất nhiều.
    ---------------------------------------------------




    ---------------------------------------------------

  • #2
    Trước hết bạn phải có một mạch phát hiện mất điện lưới, đơn giản nhất bạn dùng một chân cùng với trở chia thích hợp để đo nguồn, chỉ cần đo mức 1 hay 0 thôi. Phần nguồn của bạn thêm một con tụ có điện dung lớn để bạn có đủ thời gian backup dữ liệu hay bật nguồn dự phòng.
    Với PIC thì bạn có thể ghi dữ liệu vào Flash hoặc EEPROM, cùng lắm là tận dụng các thanh ghi không bị mất nội dung ghi Reset. Hoặc bạn nếu có pin ngoài thì chuyển PIC sang chế độ sleep thì cũng giúp bạn duy trì dữ liệu đến khi có điện.
    Với 89 thì bạn cần có EEPROM ngoài.

    Comment


    • #3
      Nguyên văn bởi phamthaihoa Xem bài viết
      Trước hết bạn phải có một mạch phát hiện mất điện lưới, đơn giản nhất bạn dùng một chân cùng với trở chia thích hợp để đo nguồn, chỉ cần đo mức 1 hay 0 thôi. Phần nguồn của bạn thêm một con tụ có điện dung lớn để bạn có đủ thời gian backup dữ liệu hay bật nguồn dự phòng.
      Với PIC thì bạn có thể ghi dữ liệu vào Flash hoặc EEPROM, cùng lắm là tận dụng các thanh ghi không bị mất nội dung ghi Reset. Hoặc bạn nếu có pin ngoài thì chuyển PIC sang chế độ sleep thì cũng giúp bạn duy trì dữ liệu đến khi có điện.
      Với 89 thì bạn cần có EEPROM ngoài.
      .


      Cám ơn bạn Phạm Thái Hòa rất nhiều.
      ---------------------------------------------------




      ---------------------------------------------------

      Comment


      • #4
        Nguyên văn bởi ZEN Xem bài viết
        Chào các bác.

        Các Bác cho mình hỏi là phương án nào để giúp cho PIC, hay 89 lưu lại vài giá trị khi bị mất nguồn và có nguồn lại .

        Cám ơn các Bác rất nhiều.
        Hehe đã được tăng lương chưa ku. Đang làm dự án nào mà gê vậy cho tao ké với . Tao lương bèo wá đang chán đây.
        Để lưu dữ liệu như yêu cầu của mày thì chỉ ghi vào eeprom thôi nêu nhiêu thì dùng eeprom i2c bên ngoài. Cũng giống như theo kiểu của PTH nói nhưng nếu mày đang dùng pic 18 thì nên dùng modul LVD đển nhân ra sự thay đổi điện áp trên chân VDD dể biết khi nào cần lưu dữ liệu vào eeprom.
        Chúc mày cuồi tuần nghiên cứu song vụ này.hehehe

        Comment


        • #5
          em đang làm 1 máy đếm sự kiện dùng pic, cũng muốn lưu lại giá trị đếm khi mất nguồn, em định sau mỗi sự kiện sẽ đếm và lưu vào eerom luôn, nhưng mà trong datasheet có ghi: eerom chỉ được 1000000 lần ghi xóa, mà máy đêm em đếm nhiều lắm, vậy làm cách này liệu có được ko ?
          Phạm Minh Tuấn

          (+84) 982006467

          Comment


          • #6
            Nguyên văn bởi mgdaubo Xem bài viết
            em đang làm 1 máy đếm sự kiện dùng pic, cũng muốn lưu lại giá trị đếm khi mất nguồn, em định sau mỗi sự kiện sẽ đếm và lưu vào eerom luôn, nhưng mà trong datasheet có ghi: eerom chỉ được 1000000 lần ghi xóa, mà máy đêm em đếm nhiều lắm, vậy làm cách này liệu có được ko ?
            Đang có con MAX690 và DS1230Y có thể giải quyết việc này . Con DS1230Y thì đơn giản roài. Còn MAX690 thì đang ngâm cứu. Khi nào xong sẽ post sơ đồ lên.
            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


            • #7
              Nguyên văn bởi mgdaubo Xem bài viết
              em đang làm 1 máy đếm sự kiện dùng pic, cũng muốn lưu lại giá trị đếm khi mất nguồn, em định sau mỗi sự kiện sẽ đếm và lưu vào eerom luôn, nhưng mà trong datasheet có ghi: eerom chỉ được 1000000 lần ghi xóa, mà máy đêm em đếm nhiều lắm, vậy làm cách này liệu có được ko ?
              Nếu bạn có giải thuật hợp lí thì theo như nó quảng cáo sẽ lưu được những 1000000^2 lần cơ.
              Bạn sẽ dùng 1 ô nhớ trên EEPROM để lưu vị trí lần ghi trước đó, lúc ghi ô này bạn cần đọc đi đọc lại để chắc ô nhớ này còn ghi tốt, nếu đọc lại mà sai với nội dung ghi thì bạn chuyển sang ô nhớ khác.
              Bạn sẽ ghi lần lượt từ đầu đến hết, không ghi đi ghi lại một ô nhớ, vị trí ghi cuối sẽ đọc trong ô nhớ kia. Cứ lặp lại như vậy, bạn có thể ghi rất nhiều lần.

              Comment


              • #8
                Nguyên văn bởi phamthaihoa Xem bài viết
                Bạn sẽ dùng 1 ô nhớ trên EEPROM để lưu vị trí lần ghi trước đó, lúc ghi ô này bạn cần đọc đi đọc lại để chắc ô nhớ này còn ghi tốt, nếu đọc lại mà sai với nội dung ghi thì bạn chuyển sang ô nhớ khác.
                Bạn sẽ ghi lần lượt từ đầu đến hết, không ghi đi ghi lại một ô nhớ, vị trí ghi cuối sẽ đọc trong ô nhớ kia. Cứ lặp lại như vậy, bạn có thể ghi rất nhiều lần.
                Cái này là dùng bộ nhớ dạng FIFO cốt sao ghi lần lượt lên tất cả các ô nhớ .

                Nguyên văn bởi phamthaihoa Xem bài viết
                Nếu bạn có giải thuật hợp lí thì theo như nó quảng cáo sẽ lưu được những 1000000^2 lần cơ.
                Cái đỏ đỏ đấy chưa chính xác đâu. Thực ra là khoảng (1.000.000-1 hoặc 2)*dung lượng EEPROM. Cái trừ 1 hoặc 2 chính là vùng nhớ để bạn lưu địa chỉ đầu và cuối của FIFO. Nếu số byte ghi vào cố định thì chỉ cần lưu địa chỉ đầu của FIFO.
                Dĩ nhiên cách tính trên cũng chưa chính xác tuyệt đối vì khi ô nhớ lưu giá trị đầu bị hỏng thì phải dịch đi và dung lượng sẽ bị giảm. Tuy nhiên cách của PTH là tối ưu trong việc tận dụng EEPROM.
                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


                • #9
                  Nguyên văn bởi phamthaihoa Xem bài viết
                  Nếu bạn có giải thuật hợp lí thì theo như nó quảng cáo sẽ lưu được những 1000000^2 lần cơ.
                  Bạn sẽ dùng 1 ô nhớ trên EEPROM để lưu vị trí lần ghi trước đó, lúc ghi ô này bạn cần đọc đi đọc lại để chắc ô nhớ này còn ghi tốt, nếu đọc lại mà sai với nội dung ghi thì bạn chuyển sang ô nhớ khác.
                  Bạn sẽ ghi lần lượt từ đầu đến hết, không ghi đi ghi lại một ô nhớ, vị trí ghi cuối sẽ đọc trong ô nhớ kia. Cứ lặp lại như vậy, bạn có thể ghi rất nhiều lần.
                  Ban Phamthaihoa cho minh hoi them, khi luu vao 1 o nho trong EEPOM bị hư ( đọc ko tốt ) thì chỉ ô nhớ đó hư hay là cả EEPROM hư ?

                  Cách làm như bạn nói với cách lưu xoay dòng thì cách nào hay hơn ?
                  Thanks
                  ---------------------------------------------------




                  ---------------------------------------------------

                  Comment


                  • #10
                    Nguyên văn bởi ZEN Xem bài viết
                    Ban Phamthaihoa cho minh hoi them, khi luu vao 1 o nho trong EEPOM bị hư ( đọc ko tốt ) thì chỉ ô nhớ đó hư hay là cả EEPROM hư ?

                    Cách làm như bạn nói với cách lưu xoay dòng thì cách nào hay hơn ?
                    Thanks
                    Khi lưu vào EEPROM như bạn nói thì chỉ có ô đó bị hỏng thôi, các ô khác vẫn dùng tốt.

                    Lưu cách nào rồi cũng vậy thôi, quan trọng là giải thuật thế nào để đáp ứng được yêu cầu, cố viết sao cho khả năng kiểm soát và phát hiện lỗi của mình tốt nhất.
                    Nếu bạn làm về vấn đề lưu dữ liệu như vậy thì bạn có thể tìm hiểu thêm về các chip nhớ Flash (NAND Flash, NOR Flash...) nó có những ô nhớ dành riêng để bạn dùng khi một ô nhớ bị hỏng, ví dụ trong 1 page gồm 528 bytes thì nó dùng 512 bytes để lưu dữ liệu, dành ra 16 bytes để thay thế những ô bị hỏng. Có giải thuật rất tốt để làm vấn đề này rồi. Bạn có thể vào trang ST.com, tìm với từ khóa NAND Flash.
                    Ngoài ra, các chip NAND Flash cũng có bán trên diễn đàn này, nick Vietheart.

                    Comment


                    • #11
                      Nguyên văn bởi phamthaihoa Xem bài viết
                      Khi lưu vào EEPROM như bạn nói thì chỉ có ô đó bị hỏng thôi, các ô khác vẫn dùng tốt.

                      Lưu cách nào rồi cũng vậy thôi, quan trọng là giải thuật thế nào để đáp ứng được yêu cầu, cố viết sao cho khả năng kiểm soát và phát hiện lỗi của mình tốt nhất.
                      Nếu bạn làm về vấn đề lưu dữ liệu như vậy thì bạn có thể tìm hiểu thêm về các chip nhớ Flash (NAND Flash, NOR Flash...) nó có những ô nhớ dành riêng để bạn dùng khi một ô nhớ bị hỏng, ví dụ trong 1 page gồm 528 bytes thì nó dùng 512 bytes để lưu dữ liệu, dành ra 16 bytes để thay thế những ô bị hỏng. Có giải thuật rất tốt để làm vấn đề này rồi. Bạn có thể vào trang ST.com, tìm với từ khóa NAND Flash.
                      Ngoài ra, các chip NAND Flash cũng có bán trên diễn đàn này, nick Vietheart.
                      Cám ơn Bác rất nhiều.....
                      ---------------------------------------------------




                      ---------------------------------------------------

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X