Hi tất cả các bác!
Hiện tại mình đang theo dự án "máy bán hàng tự động" đã gần 3 năm nay rồi.
Mình nói sơ qua về cái máy này nha:
Giải pháp:
- Máy luôn kết nối internet để đồng bộ dữ liệu với server qua LAN và GPRS
- Theo dõi tồn kho của máy từ xa qua web
- Cảnh báo lỗi qua SMS, email.
- Mua hàng bằng điện thoại di động hoặc dùng thẻ do cty cung cấp.
- Nạp tiền vào tài khoản thẻ hoặc điện thoại di động bằng máy nhận tiền(giấy +polime từ 1.000-500.000) qua giao thức MDB hoặc CCNET.
- Các giao dịch nạp tiền và thanh toán được gửi lên server để ghi nhận và kiểm soát.
Phần cứng:
- Được thiết kế chủ yếu trên AVR, một số ngoại vi được thiết kế trên PIC và ARM(NXP).
- Chương trình hiện tại cho CPU trung tâm (ATmega2560) khá lớn (khoảng 60.000 line và chếm bộ nhớ tầm 110Kbyte).
Vào chủ đề:
- Từ nảy nói hơi dài dòng để giới thiệu cái ưu điểm của máy, còn cái yếu điểm giờ nhờ các bác giúp đỡ tí.
- Cụ thể vấn đề là nhiều thông số máy mình lưu trong eeprom của AVR rất hay bị reset về 0xFF mà không hiểu nguyên nhân, mình cũng dùng bộ nhớ ngoài 24C512 và thẻ nhớ để lưu các thông số quan trọng khác và logfile nhưng không bị sao cả. Không biết bác nào bị giống mình và khắc phục được thì góp ý cho mình với (thanks !).
- Một vấn đề khác nữa là dùng bộ nhớ dư của ATmega2560 (256K bộ nhớ) để lưu như eeprom (giống như các dòng ARM hiện nay đang làm). Ý tưởng thì có nhưng chưa thực hiện được đó là:
+ Tận dụng bootloader của AVR để ghi bộ nhớ flash. Bootloader thì làm nhiều rồi như boot qua serial, thẻ nhớ, ethernet điều OK cả, nhưng giờ mình muốn trong chương trình chính sẽ có đoạn chương trình con mà nằm ở vùng nhớ bootloader để ghi bộ nhớ flash(tất nhiên là ghi theo trang). Mục đích để khi cần thay đổi hay lưu thông số nào vào bộ nhớ flash thì gọi hàm con này để ghi flash. Bác nào làm qua cái này rồi thì tư vấn cho mình với (thanks !).
Đặt gạch ngồi hóng các bác và cao nhân tư vấn, giúp đỡ.
Hiện tại mình đang theo dự án "máy bán hàng tự động" đã gần 3 năm nay rồi.
Mình nói sơ qua về cái máy này nha:
Giải pháp:
- Máy luôn kết nối internet để đồng bộ dữ liệu với server qua LAN và GPRS
- Theo dõi tồn kho của máy từ xa qua web
- Cảnh báo lỗi qua SMS, email.
- Mua hàng bằng điện thoại di động hoặc dùng thẻ do cty cung cấp.
- Nạp tiền vào tài khoản thẻ hoặc điện thoại di động bằng máy nhận tiền(giấy +polime từ 1.000-500.000) qua giao thức MDB hoặc CCNET.
- Các giao dịch nạp tiền và thanh toán được gửi lên server để ghi nhận và kiểm soát.
Phần cứng:
- Được thiết kế chủ yếu trên AVR, một số ngoại vi được thiết kế trên PIC và ARM(NXP).
- Chương trình hiện tại cho CPU trung tâm (ATmega2560) khá lớn (khoảng 60.000 line và chếm bộ nhớ tầm 110Kbyte).
Vào chủ đề:
- Từ nảy nói hơi dài dòng để giới thiệu cái ưu điểm của máy, còn cái yếu điểm giờ nhờ các bác giúp đỡ tí.
- Cụ thể vấn đề là nhiều thông số máy mình lưu trong eeprom của AVR rất hay bị reset về 0xFF mà không hiểu nguyên nhân, mình cũng dùng bộ nhớ ngoài 24C512 và thẻ nhớ để lưu các thông số quan trọng khác và logfile nhưng không bị sao cả. Không biết bác nào bị giống mình và khắc phục được thì góp ý cho mình với (thanks !).
- Một vấn đề khác nữa là dùng bộ nhớ dư của ATmega2560 (256K bộ nhớ) để lưu như eeprom (giống như các dòng ARM hiện nay đang làm). Ý tưởng thì có nhưng chưa thực hiện được đó là:
+ Tận dụng bootloader của AVR để ghi bộ nhớ flash. Bootloader thì làm nhiều rồi như boot qua serial, thẻ nhớ, ethernet điều OK cả, nhưng giờ mình muốn trong chương trình chính sẽ có đoạn chương trình con mà nằm ở vùng nhớ bootloader để ghi bộ nhớ flash(tất nhiên là ghi theo trang). Mục đích để khi cần thay đổi hay lưu thông số nào vào bộ nhớ flash thì gọi hàm con này để ghi flash. Bác nào làm qua cái này rồi thì tư vấn cho mình với (thanks !).
Đặt gạch ngồi hóng các bác và cao nhân tư vấn, giúp đỡ.
Comment