Стальной

Скоростная запись на SD карту

10 сообщений в этой теме

Всем доброго времени суток.

Общая задача такова - надо снимать сигнал (осциллограмму) с полосой до 400 кГц и временем записи 5 минут. Результат должен быть куда-то сохранен, чтобы потом была возможность сбросить цифровые данные на комп. 

Нужен совет по одному (пока) вопросу. Я хочу писать бинарные данные напрямую на SD-карту. Минимальная частота дискретизации 800 кГц. Разрешение АЦП можно взять 8 бит. Как вы думаете, успеет ли флешка скушать данные? 

Шаблон кода создаю кубом с использованием HAL, тестирую на камне 407VET6. При записи планирую использовать буфер, куда загоняю массив данных, чтобы писать не по одной выборке, а сразу пачкой.

ЗЫ Есть еще вариант. Использовать в качестве промежуточной памяти вот такое https://static.chipdip.ru/lib/435/DOC001435109.pdf  , сохранить туда, а потом уже на внешнюю карту. По идее, есть возможность соединить по FSMC. Но для меня это крайний вариант, ибо до этого не пробовал такое.

Изменено пользователем Стальной

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    341
15 часов назад, Стальной сказал:

800 кГц 8 бит ... успеет ли флешка скушать данные?

Успеет. Для этого просто надо выбрать подходящую флешку. Скорость записи указазывается производителем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Lexter а контроллер сможет на большой скорости работать? Там вроде 24 МГц допустимо, но я пока не успел испытать. 

Тогда вопрос - а как программно определить класс карты? Или контроллер это аппаратно определяет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    341
1 час назад, Стальной сказал:

как программно определить класс карты?

То, что написано на карточке, и даже то, что считывается из её контроллера, не гарантирует её параметры и даже объём. Учитывая большое количество подделок и фальсификата SD-карт на рынке, лучше не возлагать проверку на устройство (это может занять много времени), а сначала хорошенько протестировать карточку вручную. Это можно сделать как средствами ОС, так и специальными программами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Lexter это понятно. Просто есть аппаратный механизм выбора скорости? Или работать по принципу возникла ошибка - сбросить скорость?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Oxford    38

SD спецификацию читайте. Вся нужная служебная информация о карте есть в соотвествующих регистрах.

 

Изменено пользователем Oxford

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    341
3 часа назад, Oxford сказал:

служебная информация о карте есть в соотвествующих регистрах.

Вряд ли @Стальной будет писать работу с SD-картой с нуля. А в драйверах или фреймворках это уже реализовано. Разве что стирание перед началом записи добавит, чтобы не было пауз при приёме потока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    883
12 часа назад, Стальной сказал:

а контроллер сможет на большой скорости работать?

У него есть SDIO для этого. Вот только о кубе придется забыть, если нужна высокая скорость работы. И обязательно надо реализовать равномерную запись по всей карте, а не каждый раз с одного и того же адреса. Иначе карта очень быстро умрет.

Изменено пользователем BARS_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В общем получилось писать, даже с кубом. Данные прерыванием пишутся в буфер 4096 байт длиной. Как только буфер наполняется, происходит его копирование в другой и запись уже последнего на карту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Evgeny_VG
      Добрый день,
       
      Подскажите, пожалуйста, есть ли известные алгоритмы для восстановления выпрямленного сигнала обратно в синусоидальный? (скрин во вложении).
      Сигнал дальше идет на цифровой фильтр для сглаживания, частота стандартная 50 Гц, амплитуда от 20 мВ до 3 В.
       
      Буду очень признателен за советы.

    • Автор: TheCoolKuid
      Здравствуйте.
      Решил развести для себя плату с STM32F030F4P6. Сделал все по инструкциям, официальному даташиту и Getting Started Guide STM32. Хотел бы узнать, есть ли какие то косяки или ошибки:
      Верхний слой:
      Нижний:
      Большой синий полигон (почти весь нижний слой) - земля, единственное, кварц наверху не поместился, поэтому сделал его на нижнем тоже. Серые фигуры - "переходные отверстия", большие, т.к. у меня нет достаточно тонкого сверла и навыка сверления точно по центру. 
      U1 - LM317LMX, R1 - 200 Om, R2;R4 - 330 Om, C1 - 10мкФ, C2-C6;C9 - 100нФ, С7;С8 - 22пФ, R3 - 1 КОм, U6 - смд кварц на 8МГц, U2 - соответственно STM32F030F4P6, LED1 - красный светодиод.
      Буду рад любой критике (Про резистор, которые налезает на кварц в курсе, не успел подвинуть. Желтых контуров на текстолите само собой не будет). 
      Спасибо.
    • Автор: Геннадий К.
      В электронный журнал требуются внештатные авторы статей - опытные разработчики электроники или преподаватели профильных дисциплин ВУЗов.
      Тема - практическое применение электронных компонентов. Выдаем ТЗ на статьи, при необходимости высылаем отладочные платы, по итогам публикации выплачиваем гонорар.
    • Автор: rmatveev
      Всем привет!
      Задумано следующее: на малинку ставится веб-сервер (именно веб, а не HTTP, т.к. подразумевается тонкий клиент, но возможно я с терминами немного путаю), который обеспечивает управление через тонкий клиент по Ethernet, по Modbus RTU поверх RS-485 малинка должна будет управлять объектом.
      Т.е. задача такая: на удаленном рабочем месте визуализация объекта и его управление по Modbus.
      Изначально я хотел под это дело использовать какой-нибудь NUCLEO на процессоре STM32. Но почитал немного о подробностях установки TCP-IP стека и веб-сервера на STM32 и понял, что эту задачу они выполняют, но как-то сложновато. Вроде как Raspberry Pi намного лучше с этим должна справиться. Да и комьюнити намного больше.
      Ваши мнения, господа?
    • Автор: michaelukolov
      Доброго времени суток.
      Сразу скажу: я не прошу писать за меня код, просто натолкните, как правильнее это реализовать.
      Имеется STM32F103C8T6, необходимо на ней построить одноканальный генератор сигнала, желательно разной формы (синус/меандр) с регулировкой частоты и скважности от переменного резистора. Регулировки частоты хватило бы в пределах 1Гц - 20кГц (отсюда еще вопрос, годится ли для этого F103C8T6?). Хотелось бы еще иметь разные уровни (5В/12В), но это и сам сообразить могу.
      Если использовать HAL таймер, то когда он уже будет запущен, можно будет менять частоту/скважность?
      Как реализовать переключение синус/меандр?