Рекомендации по памяти для 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-картах, но это добавляет дополнительные сложности на корпусе, поскольку он должен быть водонепроницаемым.
— Паду Мерлоти

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

Понял, имеет смысл. Я рассмотрю этот вариант. Спасибо
— Паду Мерлоти

Существует ли специализированный чип, который заботится об интерфейсе SD и реализует файловую систему, или мне все равно придется реализовать файловую систему и класс MSC с использованием MSP430?
— Паду Мерлоти

@Padu - я чувствовал, что для этого нужно немного больше места и форматирования, чем для комментария, поэтому я добавил свой ответ в качестве ответа.
— Кевин Вермеер

3

Последовательная вспышка превосходит EEPROM в этом приложении. Atmel делает отличный состав . Ваш выбор будет зависеть в основном от двух вещей: (1) вашей необходимости редактировать / разбивать журналы на микро и (2) доступность вашей оперативной памяти на MSP430.

Flash, в отличие от EEPROM, может быть записан только от 1 до 0. Изменение данных от 0 до 1 требует удаления части, которая обычно доступна только для страниц или блоков данных. Вам нужно будет сохранить эту страницу в ОЗУ, стереть страницу, внести изменения в ОЗУ, а затем записать ее обратно, если вы хотите что-то изменить.

Серия AT45D, как уже указывалось, предлагает ряд компонентов с буферами ОЗУ на чипе для облегчения этого процесса без использования ОЗУ на микроконтроллере.

В конце концов, вся серия совместима по выводам, поэтому просто отложите 8-SOIC (150мил), и затем вы сможете поменять детали, если позже вам понадобятся другие варианты.


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

@mjh - Что если ваш источник и пункт назначения совпадают, и / или у вас нет свободной страницы? Кроме того, это происходит медленно: отправьте команду чтения, отправьте адрес, прочитайте байт, измените при необходимости, удалите, отправьте команду записи, отправьте адрес, запишите байт, повторите x256, x512 или x4k. Другой вариант - отправить команду чтения, отправить адрес чтения, часы для N циклов, изменить байты, которые вы хотите изменить, стереть, отправить команду записи, отправить адрес записи, часы для N циклов. Это занимает около 1/3 времени, которое занимает буфер ОЗУ.
— Кевин Вермеер

Зачем регистратору данных когда-либо нужно редактировать журналы на микро?
— Дэвидкари

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

На данный момент мне просто нужно создать несколько файлов журнала, не нужно их изменять, за исключением случаев, когда пользователь подключает устройство к USB и загружает его, затем мне нужно стереть (или снова сделать это место доступным) старый журнал.
— Паду Мерлоти

2

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

Если вам нужно 5 МБ данных, маловероятно, что EEPROM будет работать, поскольку они обычно входят в пакеты <1 Мбит. Флеш-чипы от Atmel поддерживают до 64 Мбит или 8 МБ.


1
Я не согласен. Самый маленький стираемый раздел на AT25D - это страница размером 4 КБ, и лишь немногие микросхемы имеют столько свободного ОЗУ. Я использовал чипы серии AT25FS, которые имеют небольшое (256 байт) стирание страниц, но они меньше 5 МБ. Использование буферизованной системы означает, что вам не нужно слишком беспокоиться об управлении ОЗУ. Конечно, если вам не нужно редактировать ваши журналы, то серия AT25 будет работать нормально.
— Кевин Вермеер

Да, большие страницы стирания раздражают, когда приложению необходимо записать некоторый байт, а затем изменить его. Но зачем регистратору данных это делать? Мне кажется, что для приложения-приложения регистрации данных не имеет значения, является ли наименьший стираемый раздел размером 256 байт или 1 мегабайт.
— Дэвидкари

1

[Это в ответ на комментарии после ответа Яна].
SD-карта - это просто SPI-устройство, поэтому нет необходимости в чипе / интерфейсе. Другие протоколы включают в себя 2-проводный интерфейс (например, I2C) и 4-проводный интерфейс (со сложным CRC), но SPI является наиболее часто используемым.

Существует приложение SD карта примечание доступна для MSP430 от TI здесь . Это коротко, но включает в себя пример кода. Он поддерживает чтение и запись в различные сектора на SD-карте, что может быть всем, что вам нужно, если вы не собираетесь подключать его к ПК. Также посмотрите на эти реализации Фустом (рекомендуется) или Эвансом из МГУ.

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

Тем не менее, файловая система будет в некоторой степени абстрагирована от вашего интерфейса USB. Это будет проще, если у вас есть настоящая библиотека файловой системы, а ваша карта находится в читаемой файловой системе, но это требует работы. Если вы хотите написать свою собственную «Файловую систему» ​​и сохранить работу / время / память для реализации 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.