Thông báo

Collapse
No announcement yet.

[Hỏi] có cách nào lưu data cho vdk khi mất nguồn mà ko dùng eeprom

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

  • [Hỏi] có cách nào lưu data cho vdk khi mất nguồn mà ko dùng eeprom

    Chào mọi người.
    Em có vấn đề là muốn lưu một giá trị dữ liệu gồm 3 byte trong vdk 89S52, mà dữ liệu này ko bị mất đi khi mất nguồn cấp. Em không muốn kết nối thêm eeprom cho nó. Vậy em có thể dùng pin CMOS để làm điều này như làm với DS1307 hay không ? Biết rằng, giá trị 3byte mà em cần lưu là giá trị đếm lên sau mỗi chu kỳ 6s. Khi nào tràn sẽ set về 0 và tiếp tục đếm tiếp. Hy vọng mọi người giúp đỡ.

  • #2
    Làm được, bạn đọc datasheet ds rồi làm theo. Trước đây một bạn bên công ty mình cũng đã dùng phương pháp này cho ứng dụng tối ưu chi phí khi chip không có eeprom. Chúc bạn thành công
    http://techpal.vn
    Chia sẻ công nghệ, cùng thành công

    Comment


    • #3
      Nguyên văn bởi TheHouse Xem bài viết
      Chào mọi người.
      Em có vấn đề là muốn lưu một giá trị dữ liệu gồm 3 byte trong vdk 89S52, mà dữ liệu này ko bị mất đi khi mất nguồn cấp. Em không muốn kết nối thêm eeprom cho nó. Vậy em có thể dùng pin CMOS để làm điều này như làm với DS1307 hay không ? Biết rằng, giá trị 3byte mà em cần lưu là giá trị đếm lên sau mỗi chu kỳ 6s. Khi nào tràn sẽ set về 0 và tiếp tục đếm tiếp. Hy vọng mọi người giúp đỡ.
      nếu sơ đồ của bạn đang dùng con ds1307, thì tại sao không dùng RAM của con chip này. tôi nhớ là con ds1307 có khoảng 32 bytes extra RAM.
      Mãi đi tìm vàng.

      Comment


      • #4
        Ý em là muốn lưu dạng giống như con DS1307, chứ sơ đồ em không dùng đến con này.

        Comment


        • #5
          Nguyên văn bởi TheHouse Xem bài viết
          Chào mọi người.
          Em có vấn đề là muốn lưu một giá trị dữ liệu gồm 3 byte trong vdk 89S52, mà dữ liệu này ko bị mất đi khi mất nguồn cấp. Em không muốn kết nối thêm eeprom cho nó. Vậy em có thể dùng pin CMOS để làm điều này như làm với DS1307 hay không ? Biết rằng, giá trị 3byte mà em cần lưu là giá trị đếm lên sau mỗi chu kỳ 6s. Khi nào tràn sẽ set về 0 và tiếp tục đếm tiếp. Hy vọng mọi người giúp đỡ.
          Hi,
          Trường hợp này dùng con EEPROM AT24C04 là giải pháp tối ưu nhất rồi bác à, các con đường khác đều tốn kém và phức tạp hơn. Nếu thiếu chân để giao tiếp với EEPROM thì lồng ghép nó vào chân quét led7 hoặc bàn phím.
          Thân ái.
          Đường đến những ngày vinh quang không còn xa
          Con đường chúng ta... chúng ta đã chọn.

          Comment


          • #6
            Giải pháp tối ưu nhất là bạn dùng chip vi điều khiển có tích hợp bộ nhớ IAP (Internal Application Programmable - bộ nhớ ứng dụng khả trình bên trong). Tôi lấy thí dụ các MCU 8051 của hãng Megawin như chi tiết ở đây Megawin MCU 8051 @ TULA.VN - http://tula.vn/modules.php?name=monline&file=sdtc1&_run=viewdetai ls&lid=1273

            Bộ nhớ IAP (built-in flash) trong này của chip có vai trò hệt như một EEPROM ngoài mà bạn dùng, dung lượng của nó có thể tới vài KByte. Bạn sẽ lập trình ghi vào và lưu trữ, lấy ra dùng như bình thường với các EEPROM ngoài.

            Ngoài ra, bạn cũng nên nghiên cứu dùng loại chip có tích hợp bộ dao động nội (RC) trong chip. Loại chip này có chứa sẵn RC bên trong cho bạn chọn dùng nên bạn có thể không cần đến thạch anh dao động ngoài cho chip hoạt động nên sẽ tiết kiệm chi phí, khoảng trống và độ an toàn cho hệ thống. Thêm nữa, nếu bạn biết về nạp ISP thì bạn sẽ làm tín đồ của nó bởi tính khả dụng và tiết kiệm.

            Comment


            • #7
              Nguyên văn bởi TheHouse Xem bài viết
              Chào mọi người.
              Em có vấn đề là muốn lưu một giá trị dữ liệu gồm 3 byte trong vdk 89S52, mà dữ liệu này ko bị mất đi khi mất nguồn cấp. Em không muốn kết nối thêm eeprom cho nó. Vậy em có thể dùng pin CMOS để làm điều này như làm với DS1307 hay không ? Biết rằng, giá trị 3byte mà em cần lưu là giá trị đếm lên sau mỗi chu kỳ 6s. Khi nào tràn sẽ set về 0 và tiếp tục đếm tiếp. Hy vọng mọi người giúp đỡ.
              Cách đơn giản và tiết kiệm nhất là bạn lưu data vào flashrom. Tuy nhiên, khi lưu vào flashrom bạn phải ghi vào địa chỉ không lưu chương trình. Đối với 8051 hay AVR mình chưa thấy hỗ trợ chức năng này, PIC thì có, họ gọi là self programming.

              Comment


              • #8
                Nguyên văn bởi embeonline Xem bài viết
                Giải pháp tối ưu nhất là bạn dùng chip vi điều khiển có tích hợp bộ nhớ IAP (Internal Application Programmable - bộ nhớ ứng dụng khả trình bên trong). Tôi lấy thí dụ các MCU 8051 của hãng Megawin như chi tiết ở đây Megawin MCU 8051 @ TULA.VN - http://tula.vn/modules.php?name=monline&file=sdtc1&_run=viewdetai ls&lid=1273

                Bộ nhớ IAP (built-in flash) trong này của chip có vai trò hệt như một EEPROM ngoài mà bạn dùng, dung lượng của nó có thể tới vài KByte. Bạn sẽ lập trình ghi vào và lưu trữ, lấy ra dùng như bình thường với các EEPROM ngoài.

                Ngoài ra, bạn cũng nên nghiên cứu dùng loại chip có tích hợp bộ dao động nội (RC) trong chip. Loại chip này có chứa sẵn RC bên trong cho bạn chọn dùng nên bạn có thể không cần đến thạch anh dao động ngoài cho chip hoạt động nên sẽ tiết kiệm chi phí, khoảng trống và độ an toàn cho hệ thống. Thêm nữa, nếu bạn biết về nạp ISP thì bạn sẽ làm tín đồ của nó bởi tính khả dụng và tiết kiệm.
                anh cho em biết chính xác chức năng lưu dữ liệu khi bị mất ngồn của megawin với ạ? cụ thể là lưu ở vùng nhớ nào?

                Comment


                • #9
                  Nguyên văn bởi embeonline Xem bài viết
                  Giải pháp tối ưu nhất là bạn dùng chip vi điều khiển có tích hợp bộ nhớ IAP (Internal Application Programmable - bộ nhớ ứng dụng khả trình bên trong). Tôi lấy thí dụ các MCU 8051 của hãng Megawin như chi tiết ở đây Megawin MCU 8051 @ TULA.VN - http://tula.vn/modules.php?name=monline&file=sdtc1&_run=viewdetai ls&lid=1273

                  Bộ nhớ IAP (built-in flash) trong này của chip có vai trò hệt như một EEPROM ngoài mà bạn dùng, dung lượng của nó có thể tới vài KByte. Bạn sẽ lập trình ghi vào và lưu trữ, lấy ra dùng như bình thường với các EEPROM ngoài.

                  Ngoài ra, bạn cũng nên nghiên cứu dùng loại chip có tích hợp bộ dao động nội (RC) trong chip. Loại chip này có chứa sẵn RC bên trong cho bạn chọn dùng nên bạn có thể không cần đến thạch anh dao động ngoài cho chip hoạt động nên sẽ tiết kiệm chi phí, khoảng trống và độ an toàn cho hệ thống. Thêm nữa, nếu bạn biết về nạp ISP thì bạn sẽ làm tín đồ của nó bởi tính khả dụng và tiết kiệm.
                  anh cho em biết chính xác chức năng lưu dữ liệu khi bị mất ngồn của megawin với ạ? cụ thể là lưu ở vùng nhớ nào?

                  Comment


                  • #10
                    Nguyên văn bởi embeonline Xem bài viết
                    Giải pháp tối ưu nhất là bạn dùng chip vi điều khiển có tích hợp bộ nhớ IAP (Internal Application Programmable - bộ nhớ ứng dụng khả trình bên trong). Tôi lấy thí dụ các MCU 8051 của hãng Megawin như chi tiết ở đây Megawin MCU 8051 @ TULA.VN - http://tula.vn/modules.php?name=monline&file=sdtc1&_run=viewdetai ls&lid=1273

                    Bộ nhớ IAP (built-in flash) trong này của chip có vai trò hệt như một EEPROM ngoài mà bạn dùng, dung lượng của nó có thể tới vài KByte. Bạn sẽ lập trình ghi vào và lưu trữ, lấy ra dùng như bình thường với các EEPROM ngoài.

                    Ngoài ra, bạn cũng nên nghiên cứu dùng loại chip có tích hợp bộ dao động nội (RC) trong chip. Loại chip này có chứa sẵn RC bên trong cho bạn chọn dùng nên bạn có thể không cần đến thạch anh dao động ngoài cho chip hoạt động nên sẽ tiết kiệm chi phí, khoảng trống và độ an toàn cho hệ thống. Thêm nữa, nếu bạn biết về nạp ISP thì bạn sẽ làm tín đồ của nó bởi tính khả dụng và tiết kiệm.
                    anh cho em biết chính xác chức năng lưu dữ liệu khi bị mất ngồn của megawin với ạ? cụ thể là lưu ở vùng nhớ nào?

                    Comment


                    • #11
                      Dùng AT89S8253 có bộ nhớ EEPROM cũng là một giải pháp.
                      0912666017

                      Comment


                      • #12
                        Các huynh cho em hỏi cách chọn dung lượng bộ nhớ cho IC EEPROM thế nào để khỏi lãng phí ạ. Em nghe nói IC này giá đắt lắm ạ.

                        Comment


                        • #13
                          Trong vi điều khiển có bộ nhớ EEPROM cho phép lưu dữ liệu khi mất điện
                          Ví dụ như trong PIC thì bạn chỉ việc dùng như thế này:
                          Giá sử cần lưu giá trị của biến : a ( a = 10 chẳng hạn )
                          Lệnh lưu: write_eeprom( a, 0x01);
                          Khi đọc ra: Read_eeprom(a,0x1);

                          Comment


                          • #14
                            ý em là chọn bộ nhớ EEPROM ngoài ạ. Em cần lưu một số đại lượng và lưu nhiều lần trong ngày. em muốn hỏi tính chọn bộ nhớ EEPROM thế nào cho không lãng phí. Có nhiều loại từ 1K đến 1M

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...
                            X