PDA

View Full Version : lưu lại trạng thái làm việc cua pic khi cup dien.


670366770496
25-12-2007, 08:47 AM
Chào tất cả các thành viên trên diễn đàn!
Mình đang có dự án viết chương trình cho máy giặt sử dụng PIC.Nhưng có một điều như thế này mình muốn trao đổi với các anh em.
Với tính năng hoạt động của máy giặt.Trước khi cúp điện trạng thái đang hoạt động của nó phải được lưu lại.Sau khi có điện trở lại trạng thái đó phải được khôi phục và tiếp tục hoạt động.(Nghĩa là có nhớ)
Với PIC thì khi cúp điện mình chỉ biết PIC sẻ bị reset.không nhớ được trạng thái đang hoạt động.
Theo các anh em có cách nào có thể thực hiện được vấn đề như trên không.
Rất mong được góp ý và thảo luận!

electronicltv
25-12-2007, 10:35 AM
Bạn nên lưu trạng thái làm việc vào eeprom của PIC, khi đó nếu mất điện thì cũng không mất được giá trị trong eeprom.

Jerry
25-12-2007, 11:36 AM
Nếu định lưu vào EEPROM thì nên chú ý đến vấn đề số lần ghi/xóa mà EEPROM chịu được. Thường thì người ta hay lưu nó vào bộ nhớ NVRAM hơn.

namqn
25-12-2007, 06:47 PM
Nếu định lưu vào EEPROM thì nên chú ý đến vấn đề số lần ghi/xóa mà EEPROM chịu được. Thường thì người ta hay lưu nó vào bộ nhớ NVRAM hơn.
Lưu vào EEPROM là ổn rồi. Số chu kỳ xóa/ghi điển hình của EEPROM trong PIC là 1 triệu lần (tối thiểu là 100000 lần), thừa đủ cho cả quãng đời làm việc của máy giặt (ngay cả khi mỗi ngày bị cúp điện vài lần!). NVRAM làm phức tạp thêm việc thiết kế phần cứng, mà giá cả thì không rẻ chút nào.

Thân,

Jerry
25-12-2007, 09:47 PM
Máy giặt chắc là phải có chip thời gian thực rồi. Bộ nhớ NVRAM thường tích hợp trên chip thời gian thực đó nên cũng ko có gì phức tạp về phần cứng. Tuy nhiên như anh Nam nói, với cái ứng dụng máy giặt này thì lưu vào EEPROM cũng được.

sandro_bk
26-12-2007, 09:41 PM
thế các bác cho em hỏi làm sao biết lúc đó mất điện mà ghi vào eeprom,nếu ghi liên tục trong khi làm việc thì đúng là ko cần thiết

electronicltv
26-12-2007, 10:00 PM
Cái đó là do bạn lập trình thôi. Bạn chỉ lưu lại trạng thái như: đang giặt hay sấy, xả,....Mỗi lần giặt chỉ ghi vài lần thôi, ghi khi máy giặt chuyển từ quá trình này sang quá trình kia. VD 1 lần giặt ghi 5 lần, số lần ghi tối thiểu là 100000 lần => hoạt động được gần 54 năm :D . Lúc này chắc máy giặt hư mất tiêu hoặc bạn đổi máy mới từ lâu rồi.

bien_van_khat
26-12-2007, 10:49 PM
Cái đó là do bạn lập trình thôi. Bạn chỉ lưu lại trạng thái như: đang giặt hay sấy, xả,....Mỗi lần giặt chỉ ghi vài lần thôi, ghi khi máy giặt chuyển từ quá trình này sang quá trình kia. VD 1 lần giặt ghi 5 lần, số lần ghi tối thiểu là 100000 lần => hoạt động được gần 54 năm :D . Lúc này chắc máy giặt hư mất tiêu hoặc bạn đổi máy mới từ lâu rồi.

Nếu điện mất ngay lúc bạn ghi thì sao? Rõ ràng giải pháp này vẫn chưa an toàn tuyệt đối, với máy giặt thì ko sao, nhưng với ứng dụng đòi hỏi sự tin cậy thì cần phải tìm cách đảm bảo hơn.

Theo mình để nâng cao độ tin cậy có thể dùng pin backup và IC chuyển mạch (tìm thấy con ICL7673 của Intersil). Khi phát hiện mất nguồn chính, PIC lưu công việc vào EEPROM sau đó chuyển sang chế độ SLEEP để giảm tối đa điện năng tiêu thụ, khi có nguồn ngắt ngoài sẽ wake-up PIC trở lại chế độ bình thường.

sandro_bk
27-12-2007, 02:00 AM
em thấy làm như bác bien_van_khat rất hay,khi nào có sự có mới làm thì vẫn hay hơn nhắm mắt nhắm mũi làm, ko biết con ICL7673 có bán ở Nhật Tảo ko nhỉ? giá cả chắc ko mắc nhỉ?

bien_van_khat
27-12-2007, 08:46 AM
Hờ hờ, ko cần ra hỏi, nhưng dám chắc tới 99% là ko có.

Nếu làm chơi, bạn thử down datasheet, trong đó có sơ đồ nguyên lý, dựa trên sơ đồ đó ta làm lại = BJT.
Nếu làm thiệt, cần số lượng lớn thì trên forum thiếu gì nhà cung cấp, như vieltek đây.

0903579509
28-08-2008, 09:29 PM
Theo tôi nên làm thế này: nguồn cấp điện cho pic ta dùng tụ có điện dung tương đối lớn một chút để khi mất điện pic có thể hoạt động được khoảng 1 giây là đủ để lưu dữ liệu. Khi thiết kế mạch bạn dùng một pin nào đó của pic để dò tìm việc mất điện lưới( tốt nhất nên dùng ngắt ngoài - Tôi nghĩ vậy), khi dò thấy mất điện lưới thì 1 giây là đủ để nó lưu giữ liệu. Việc thiết kế mạch dò điện lưới thì quá đơn giản, Tôi đã làm cho các thiết bị trong y tế vì khi mất điện thì nó phải báo cho nhân viên y tế biết mà xữ trí.
Chúc vui!

nmhai
29-08-2008, 10:13 AM
Không cần phải phức tạp thế đâu. Trong vi điều khiển PIC có chức năng phát hiện mất điện, khi xảy ra mất điện vi điều khiển sẽ nhận ra và có thể lưu dữ liệu vào epprom.

vu son
26-05-2010, 07:39 PM
Mình cũng đang gặp vấn về số lần ghi xoá EEPROM,
Bác nmhai có thể nói rõ thêm về chức năng này của Pic cho mình với dc ko?
Cảm ơn bác nhiều !

HAI1817
27-05-2010, 11:32 AM
hay đấy nói nữa đi

misa2210
30-05-2010, 06:57 AM
chào mọi người,

theo datasheet, mình thấy PIC hỗ trợ nguồn ~ 2 - 5.5 V, điều này có đúng không ? (chưa xài nên không biết)

nếu như vậy: chỉ cần co 1 pin 3V làm backup là được rồi:
5V (Adapter) ---+---- PIC
3V (Pin) --|>|---|

như vậy mất điện thi PIC vẫn còn làm việc,
=> có thể lưu trạng thái + rồi sleep

chuyện nguồn back-up 3V đủ để ghi ROM, hay làm mấy việc khác hay không thì tùy,
=> nếu cần 5V thì cho thêm pin back-up số 2 (xài 2 cell LiPo - cho nó mắc - 160k :-D) rồi làm giống như UPS :
http://www.microchip.com/Microchip.webcontent.provider/Video.aspx?id=en548377

thân chào
misa

sit_alone76816
30-05-2010, 12:57 PM
Tớ thấy dùng pin Backup là tốt rồi. Nhưng vấn đề là mình muốn lưu data vào eeprom mà không muốn sử dụng eeprom ngoài, mà sử dụng chính ngay Rom bên trong của Pic luôn. Vậy có ai đã lưu được chưa, có thể share code cho mình tham khảo được không vậy.

Chân thành cảm ơn !!

silvadk2
02-07-2010, 04:25 PM
Nếu ghi quá số lần cho phép của eeprom thì điều gì sẽ xảy ra vậy ạ ?