Gợi ý bộ nhớ cho MSP430


9

Tôi đang phát triển một ứng dụng đo lường với TI MSP430 và tôi muốn nghe một số gợi ý về loại bộ nhớ tôi có thể sử dụng.

Ý tưởng là sử dụng nó để đăng nhập trong một thời gian nhất định và sau đó tải dữ liệu xuống PC khi thiết bị được kết nối qua USB. Ước tính là chứa tới 5 MB dữ liệu, mỗi mẫu có khoảng 25 byte dữ liệu.

Một con chip EEPROM đơn giản sẽ làm gì hoặc có cái gì tốt hơn ngoài đó không?


1
Có vẻ như bạn sẽ có thiết bị được cấp nguồn trong hầu hết thời gian mà bạn có dữ liệu hợp lệ. Không phải là một SRAM dự phòng pin phù hợp hơn EEPROM (hoặc tốt hơn, Flash)?
Federico Russo

Câu trả lời:


7

Tôi đã sử dụng loạt chip flash nối tiếp AT45D . Họ có bộ đệm SRAM nội bộ để thiết lập một trang để xóa / lập trình. Giao diện SPI để đọc dữ liệu vào và ra.


5

5MByte là rất nhiều dữ liệu để lưu trữ. Đọc qua USB ngụ ý rằng bạn đang sử dụng một trong những bộ phận mới có giao diện thiết bị USB được tích hợp. Nếu không thì bạn sẽ sử dụng bộ chuyển đổi USB sang nối tiếp (FTDI hoặc tương tự) và sẽ bị giới hạn ở nối tiếp async tốc độ dữ liệu để đọc dữ liệu ra.

Bạn đã xem xét việc kết nối thẻ nhớ SD với MSP, lưu trữ dữ liệu trong đó và sau đó di chuyển thẻ vào máy tính để đọc dữ liệu được lưu trữ. Tôi chưa viết giao diện cho thiết bị này nhưng có rất nhiều thứ có.


Có, tôi sẽ sử dụng một trong các bộ phận có USB nhúng. Lý tưởng sẽ là sử dụng giao thức MSC, nhưng điều đó làm tăng thêm sự phức tạp cho dự án của tôi. Có lẽ tôi sẽ giải quyết với tốc độ truyền dữ liệu HID. Tôi đã nghĩ về thẻ SD nhưng điều đó làm tăng thêm sự phức tạp trên vỏ bọc vì nó phải là bằng chứng té nước.
Padu Merloti

2
Tôi muốn đề xuất tuyến đường này, vì thẻ SD sẽ cung cấp cho bạn nhiều không gian lưu trữ nhất. Bạn nói 5MB ngay bây giờ, nhưng nếu bạn muốn nhiều hơn sau này, bạn đang đẩy các giới hạn của flash nối tiếp (Và bạn cũng vượt quá giới hạn của EEPROM). Nếu chống thấm là một vấn đề (và bạn có một tùy chọn USB thích hợp, có vẻ như là trường hợp đó), bạn có thể đọc thẻ SD của mình qua USB và đặt nó bên trong vỏ bọc vĩnh viễn. Tôi đã thấy một số thiết kế đã hàn thẻ SD vào bảng (Lưu ý: Điều này đã hoạt động, nhưng tôi không khuyên dùng nó).
Kevin Vermeer

Có nó, có ý nghĩa. Tôi sẽ xem xét lựa chọn đó. Cảm ơn
Padu Merloti

Có một con chip chuyên dụng chăm sóc giao diện SD và thực hiện hệ thống tệp hay tôi vẫn sẽ phải thực hiện một hệ thống tệp và lớp MSC sử dụng MSP430?
Padu Merloti

@Padu - Tôi cảm thấy điều này cần nhiều phòng và định dạng hơn một bình luận, vì vậy tôi đã thêm câu trả lời của mình dưới dạng câu trả lời.
Kevin Vermeer

3

Flash nối tiếp vượt trội hơn EEPROM trong ứng dụng này. Atmel tạo ra một đội hình tuyệt vời . Sự lựa chọn của bạn sẽ phụ thuộc phần lớn vào hai điều: (1) Nhu cầu chỉnh sửa / ghi nhật ký của bạn trên micro và (2) Tính khả dụng RAM của bạn trên MSP430.

Flash, không giống như EEPROM, chỉ có thể được viết từ 1 thành 0. Thay đổi dữ liệu từ 0 thành 1 yêu cầu xóa một phần của phần, thường chỉ có sẵn cho các trang hoặc khối dữ liệu. Bạn sẽ cần phải đệm trang này vào RAM, xóa trang, chỉnh sửa RAM và sau đó viết lại nếu bạn muốn thay đổi điều gì đó.

Sê-ri AT45D, như đã được chỉ ra, cung cấp một số bộ phận có bộ đệm RAM trên chip để tạo thuận lợi cho quá trình này mà không cần sử dụng RAM trên vi điều khiển.

Cuối cùng, toàn bộ sê-ri tương thích với pin, vì vậy chỉ cần đặt dấu chân 8-SOIC (150 triệu), sau đó bạn có thể trao đổi các bộ phận nếu bạn cần các tùy chọn khác nhau sau này.


Tôi đồng ý với những gì bạn đang nói, nhưng bạn chỉ có thể sao chép dữ liệu từ trang flash nguồn sang trang flash đích trong khi sửa đổi các byte bạn muốn thay đổi trước khi xóa nguồn.
mjh2007

@mjh - Điều gì xảy ra nếu nguồn và đích của bạn giống nhau và / hoặc bạn không có trang miễn phí? Ngoài ra, điều này rất chậm: gửi lệnh đọc, gửi địa chỉ, đọc byte, thay đổi nếu cần, xóa, gửi lệnh ghi, gửi địa chỉ, viết byte, lặp lại x256, x512 hoặc x4k. Tùy chọn khác của bạn là gửi lệnh đọc, gửi địa chỉ đọc, đồng hồ cho N chu kỳ, sửa đổi các byte bạn muốn thay đổi, xóa, gửi lệnh ghi, gửi địa chỉ ghi, đồng hồ cho N chu kỳ. Điều này mất khoảng 1/3 thời gian mà bộ đệm RAM mất.
Kevin Vermeer

Tại sao một logger dữ liệu sẽ cần phải chỉnh sửa các bản ghi trên micro?
davidcary

@davidcary - Nếu bộ ghi dữ liệu của bạn không làm gì ngoài việc ghi một luồng byte dài, bạn đã đúng - bạn sẽ không bao giờ cần phải thay đổi. Nếu nó có một vài cấu hình hoặc tệp nhật ký có thể vượt qua ranh giới trang / khối hoặc nếu bạn muốn thay đổi tiêu đề trên tệp ở cuối, bạn cần chỉnh sửa bộ nhớ mà không xóa sạch dữ liệu hiện có.
Kevin Vermeer

Tại thời điểm này, tôi chỉ cần tạo một số tệp nhật ký, không cần sửa đổi chúng, ngoại trừ khi người dùng cắm thiết bị vào USB và tải xuống, sau đó tôi cần xóa (hoặc làm cho không gian đó có sẵn một lần nữa) nhật ký cũ.
Padu Merloti

2

Tôi muốn đề xuất loạt AT25D vì nó xuất hiện dễ sử dụng hơn một chút so với AT45D. Mặc dù chậm hơn một chút và không cung cấp nhiều tùy chọn truyền dữ liệu hoặc bộ đệm SRAM. Nó có ưu điểm là ít tốn kém hơn và nó vẫn đủ nhanh cho hầu hết các ứng dụng như ghi dữ liệu.

Nếu bạn cần 5 MB dữ liệu, EEPROM sẽ không hoạt động vì chúng thường có các gói <1Mbit. Các chip flash từ Atmel hỗ trợ lên tới 64 mbit hoặc 8MB.


1
Tôi không đồng ý. Phần có thể xóa nhỏ nhất trên AT25D là trang 4kB và rất ít micros có sẵn nhiều RAM dự phòng. Tôi đã sử dụng loạt chip AT25FS, có một trang nhỏ (256 byte), nhưng chúng có dung lượng dưới 5 MB. Sử dụng hệ thống đệm có nghĩa là bạn không phải lo lắng nhiều về quản lý RAM. Tất nhiên, nếu bạn không có nhu cầu chỉnh sửa nhật ký của mình, thì dòng AT25 sẽ hoạt động tốt.
Kevin Vermeer

Có, các trang xóa lớn gây khó chịu khi một ứng dụng cần ghi một số byte và sau đó thay đổi byte đó. Nhưng tại sao một logger dữ liệu sẽ cần phải làm điều đó? Dường như với tôi, đối với ứng dụng ghi nhật ký dữ liệu, sẽ không có gì khác biệt nếu phần có thể xóa nhỏ nhất là 256 byte hoặc 1 Megabyte.
davidcary

1

[Điều này là để đáp lại những bình luận sau câu trả lời của Ian].
Thẻ SD chỉ là một thiết bị SPI, vì vậy không cần chip / giao diện. Các giao thức khác bao gồm giao diện 2 dây (như I2C) và giao diện 4 dây (với CRC phức tạp), nhưng SPI được sử dụng phổ biến nhất.

Có một ghi chú ứng dụng thẻ SD có sẵn cho MSP430 từ TI tại đây . Nó ngắn gọn, nhưng nó bao gồm mã mẫu. Nó xử lý đọc và ghi vào các lĩnh vực khác nhau trên thẻ SD, đó có thể là tất cả những gì bạn muốn nếu bạn không cắm nó vào PC. Cũng xem xét các triển khai này của Foust (được khuyến nghị) hoặc Evans từ MSU.

Khi bạn có các chức năng cơ bản để đọc và viết một sector, bạn có thể trừu tượng hóa một hệ thống tệp tùy chỉnh đơn giản qua USB hoặc sử dụng thư viện hệ thống tệp hiện có. FatFS , EFSL hoặc DOSF là tất cả các tùy chọn cho cái sau. Nếu việc thực hiện tất cả các chức năng cần thiết có vẻ quá khó, hãy nhớ rằng tất cả trừ một vài có thể / sẽ còn sơ khai.

Tuy nhiên, hệ thống tệp sẽ được trừu tượng hóa thông qua giao diện USB của bạn ở một mức độ. Điều này sẽ dễ dàng hơn nếu bạn có một thư viện hệ thống tập tin thực sự và thẻ của bạn nằm trong một hệ thống tập tin có thể đọc được, nhưng sẽ rất hiệu quả. Nếu bạn muốn viết "Hệ thống tập tin" của riêng mình và lưu công việc / thời gian / bộ nhớ cho việc triển khai USB, bạn có thể thực hiện định nghĩa đơn giản và không linh hoạt khi nhật ký 1 bắt đầu từ 0x0, nhật ký 2 bắt đầu từ 0x10 0000, đăng nhập 3 tại 0x20 0000 và đăng nhập 4 vào 0x30 0000. Sau đó, bạn có thể gửi dữ liệu này qua USB.

Giao diện USB có thể phức tạp như bạn muốn - từ giao diện nối tiếp đến thiết bị lưu trữ dung lượng lớn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.