Пропозиції щодо пам'яті для MSP430


9

Я розробляю програму вимірювання за допомогою TI MSP430, і я хотів би почути кілька пропозицій щодо того, який тип пам'яті я можу використовувати.

Ідея полягає в тому, щоб використовувати його для ведення журналу протягом певного часу, а потім завантажувати дані на ПК, коли пристрій підключено через USB. Оцінка - це вміст даних до 5 Мб даних, кожен зразок - близько 25 байт даних.

Зробив би простий чіп EEPROM чи щось там краще?


1
Схоже, ви будете мати пристрій, що працює більшу частину часу, коли у вас є дійсні дані. Хіба SRAM з резервною копією батареї не є більш підходящим, ніж EEPROM (або, краще, Flash)?
Федеріко Руссо

Відповіді:


7

Я використовував серії AT45D серійних флеш-мікросхем. У них є внутрішній буфер SRAM для налаштування сторінки для стирання / програмування. SPI-інтерфейс для зчитування даних в і виходу.


5

5MByte - це багато даних для зберігання. Читання його через USB означає, що ви використовуєте одну з нових частин із вбудованим інтерфейсом USB-пристрою. Якщо ні, то ви будете використовувати USB-послідовний перетворювач (FTDI або подібний) і обмежуватиметься послідовністю асинхронізації. швидкість передачі даних для зчитування даних.

Чи розглядали ви підключення картки пам'яті SD до MSP, зберігання в ній даних, а потім переміщення карти на ПК для зчитування збережених даних. Я не написав інтерфейс для цього пристрою, але є багато.


Так, я буду використовувати одну з частин із вбудованим USB. Ідеальним було б використовувати протокол MSC, але це додає моєму проекту багато складності. Можливо, я погоджуюся зі швидкістю передачі даних HID. Я подумав про SD-карти, але це додає додаткових складностей на корпусі, оскільки це повинно бути захищено від бризок води.
Padu Merloti

2
Я б запропонував цей маршрут, оскільки SD-карти дадуть вам найбільше місця для зберігання. Ви кажете 5 Мб зараз, але якщо ви хочете більше пізніше, ви натискаєте межі послідовного спалаху (і ви набагато вище меж EEPROM). Якщо проблема з гідроізоляцією (і у вас є відповідна опція USB, що, мабуть, так), ви можете прочитати SD-карту через USB і назавжди поставити її всередину корпусу. Я бачив деякі конструкції, які припаяли SD-карту до плати (Примітка: Це спрацювало, але я не рекомендую це).
Кевін Вермер

Зрозумів, має сенс. Я розгляну цей варіант. Спасибі
Padu Merloti

Чи є спеціалізований чіп, який піклується про інтерфейс SD та реалізує файлову систему або мені все ж доведеться реалізувати файлову систему та клас MSC за допомогою MSP430?
Padu Merloti

@Padu - Я вважав, що для цього потрібно трохи більше місця та форматування, ніж коментар, тому я додав свою відповідь як відповідь.
Кевін Вермер

3

У цій програмі послідовний спалах перевершує EEPROM. Атмель робить чудовий склад . Ваш вибір залежатиме в значній мірі від двох речей: (1) Ваша потреба редагувати / секціонувати ваші журнали на мікро та (2) Ваша доступність оперативної пам’яті на MSP430.

Flash, на відміну від EEPROM, може записуватися лише від 1 до 0. Для зміни даних з 0 на 1 потрібно стерти розділ частини, який, як правило, доступний лише для сторінок або блоків даних. Вам потрібно буде розмістити цю сторінку в оперативній пам’яті, стерти її, внести зміни в оперативну пам’ять, а потім записати її назад, якщо ви хочете щось змінити.

Як вже було зазначено, серія AT45D пропонує ряд деталей, які мають мікросхеми буферів оперативної пам'яті для полегшення цього процесу без використання оперативної пам'яті на мікроконтролері.

Зрештою, вся серія є сумісною із шпильками, тому просто покладіть слід 8-SOIC (150mil), а потім зможете поміняти деталі, якщо пізніше вам потрібні різні варіанти.


Я погоджуюся з тим, що ви говорите, але ви можете просто скопіювати дані з флеш-сторінки джерела на флеш-сторінку, при цьому змінюючи байти, які ви хочете змінити до видалення джерела.
mjh2007

@mjh - Що робити, якщо джерело та місце призначення однакові, та / або у вас немає вільної сторінки? Крім того, це повільно: надіслати команду читання, надіслати адресу, прочитати байт, змінити, якщо потрібно, стерти, надіслати команду запис, надіслати адресу, написати байт, повторити x256, x512 або x4k. Ваш інший варіант - надіслати команду читання, надіслати адресу зчитування, годинник для N циклів, змінити байти, які ви хочете змінити, стерти, надіслати команду запис, надіслати адресу запису, годинник для N циклів. Це займає приблизно 1/3 часу, який займає буфер ОЗУ.
Кевін Вермер

Чому реєстратору даних коли-небудь потрібно редагувати журнали на мікро?
davidcary

@davidcary - Якщо ваш реєстратор даних не робить нічого, крім запису одного довгого потоку байтів, ви праві - вам ніколи не потрібно буде вносити зміни. Якщо в ньому є кілька конфігурацій або файлів журналів, які можуть порушуватися через межі сторінки / блоку, або якщо ви хочете внести зміни в заголовок файлу в кінці, вам потрібно буде відредагувати пам'ять, не витираючи наявні дані.
Кевін Вермер

На даний момент мені просто потрібно створити кілька файлів журналу, не потрібно їх змінювати, за винятком випадків, коли користувач підключає пристрій до USB та завантажує його, тоді мені потрібно стерти (або зробити цей простір доступним знову) старий журнал.
Padu Merloti

2

Я б запропонував серію AT25D, оскільки вона виявляється трохи простішою у використанні, ніж AT45D. Хоча це трохи повільніше і не пропонує стільки варіантів передачі даних або буферів SRAM. Це має перевагу в тому, що вона дешевша, і вона все ще досить швидка для більшості програм, таких як реєстрація даних.

Якщо вам потрібно 5 Мб даних, малоймовірно, що EEPROM буде працювати, оскільки вони зазвичай надходять у пакети <1 Мбіт. Flash мікросхеми від Atmel підтримують до 64 Мбіт або 8 МБ.


1
Я не погоджуюсь. Найменший стирається розділ на AT25D - це сторінка 4 КБ, і небагато мікросхем має стільки запасної оперативної пам’яті. Я використовував мікросхеми серії AT25FS, які мають невелике (256 байт) стирання сторінки, але вони менше 5 МБ. Якщо ви працюєте з буферизованою системою, це означає, що вам не доведеться турбуватися про управління оперативною пам’яттю. Звичайно, якщо вам не потрібно редагувати свої журнали, то серія AT25 буде добре працювати.
Кевін Вермер

Так, великі сторінки стирання дратують, коли програмі потрібно написати якийсь байт, а потім пізніше змінити цей байт. Але чому для цього потрібен реєстратор даних? Мені здається, що для додатків для реєстрації даних не має жодної різниці, якщо найменший розділ, що стирається, становить 256 байт або 1 Мегабайт.
davidcary

1

[Це у відповідь на коментарі після відповіді Іана].
SD-карта є лише пристроєм SPI, тому немає необхідності в чипі / інтерфейсі. Інші протоколи включають 2-провідний інтерфейс (як I2C) та 4-провідний інтерфейс (зі складним CRC), але SPI є найбільш часто використовуваним.

Існує додаток SD карта примітка доступна для MSP430 від TI тут . Це короткий, але включає зразок коду. Він обробляє читання та запис у різні сектори на SD-картці, що може бути все, що вам потрібно, якщо ви не збираєтесь підключати її до ПК. Також подивіться на ці реалізації від Foust (рекомендовано) або Evans з MSU.

Після того, як у вас є основні функції для читання і запису сектору, ви можете або абстрагувати просту, власну файлову систему через USB, або використовувати наявну бібліотеку файлової системи. FatFS , EFSL або DOSF - це всі варіанти для останнього. Якщо реалізація всіх необхідних функцій здається занадто важкою, пам’ятайте, що всі, окрім кількох, можуть бути заглушками.

Однак файлова система буде абстрагована через ваш USB-інтерфейс до певної міри. Це буде простіше, якщо у вас справжня бібліотека файлових систем, і ваша карта знаходиться в читаній файловій системі, але це потребує роботи. Якщо ви хочете написати власну "Filesystem" і зберегти роботу / час / пам'ять для реалізації USB, ви можете зробити її визначення таким же простим і негнучким, оскільки журнал 1 починається з 0x0, журнал 2 починається з 0x10 0000, журнал 3 починається з 0x20 0000 , і журнал 4 на 0x30 0000. Потім ви можете надіслати ці дані через USB.

Інтерфейс USB може бути настільки складним, наскільки ви хочете - від послідовного інтерфейсу до пристрою масового зберігання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.