Rogerclark
Солнце 07 июня 2015 12:21
На случай, если это удобно,
Я нашел какой -то код, который мы можем получить порт на клен, чтобы сделать SD -карту SDIO
https: // bitbucket.org/antlabs_dev/fatfs ... 32F103/SRC
Но мне лучше проверить, что это работает первым.
Одна вещь, чтобы отметить, в серии F103C нет SDIO E.глин. Maple Mini, или синяя таблетка и т. Д. Не обладает этой способностью, и при этом Maple Rev 3 (который использует F103RB)
Минимальное оборудование - это кленовый ret6 или с точки зрения общих плат, F103RC - минимальное требование оборудования.
Меня интересует это, так как у меня есть платы F103V и F103Z, оба с SD -картами, которые, как я подозреваю, подключены через SDIO (но мне нужно проверить соединения)
Если у меня появится шанс, я посмотрю, смогу ли я получить код (см. Ссылку выше) для компиляции в EM: блоки или Coocox, просто чтобы посмотреть, действительно ли он работает
Пса. Я уверен, что есть другой код, который делает это.
Ппс. Я знаю, что он использует периферийную LIB STD, но периферийная либера.
Я нашел какой -то код, который мы можем получить порт на клен, чтобы сделать SD -карту SDIO
https: // bitbucket.org/antlabs_dev/fatfs ... 32F103/SRC
Но мне лучше проверить, что это работает первым.
Одна вещь, чтобы отметить, в серии F103C нет SDIO E.глин. Maple Mini, или синяя таблетка и т. Д. Не обладает этой способностью, и при этом Maple Rev 3 (который использует F103RB)
Минимальное оборудование - это кленовый ret6 или с точки зрения общих плат, F103RC - минимальное требование оборудования.
Меня интересует это, так как у меня есть платы F103V и F103Z, оба с SD -картами, которые, как я подозреваю, подключены через SDIO (но мне нужно проверить соединения)
Если у меня появится шанс, я посмотрю, смогу ли я получить код (см. Ссылку выше) для компиляции в EM: блоки или Coocox, просто чтобы посмотреть, действительно ли он работает
Пса. Я уверен, что есть другой код, который делает это.
Ппс. Я знаю, что он использует периферийную LIB STD, но периферийная либера.
Робка
Sun 27 декабря 2015 г. 11:55 утра
Был ли какой -либо тест на это?
Я только что узнал хорошую доску STM32F103VET6 и ее схема: http: // www.STM32duino.com/viewtopic.PHP?F = 28&t = 821 и хотел бы знать, смогу ли я использовать порт SDIO или лучше полагаться на SPI SD
РЕДАКТИРОВАТЬ: Нашел другую реализацию (для F4, но эта, кажется, более полная, поддерживает SPI и SDIO 1 и 4 бит и реализует полную функциональность) http: // stm32f4-discovery.com/2014/07/li ... X-Devices/
Я только что узнал хорошую доску STM32F103VET6 и ее схема: http: // www.STM32duino.com/viewtopic.PHP?F = 28&t = 821 и хотел бы знать, смогу ли я использовать порт SDIO или лучше полагаться на SPI SD
РЕДАКТИРОВАТЬ: Нашел другую реализацию (для F4, но эта, кажется, более полная, поддерживает SPI и SDIO 1 и 4 бит и реализует полную функциональность) http: // stm32f4-discovery.com/2014/07/li ... X-Devices/
ZMEMW16
Sun 27 декабря 2015 г. 15:31
Этот сайт стоит посетить его для получения информации на этой странице!
Библиотеки, перечисленные в списке GPLV3 для STM32F4, также выглядит довольно полезным для клея.
Стивен
Библиотеки, перечисленные в списке GPLV3 для STM32F4, также выглядит довольно полезным для клея.
Стивен
Sheepdoll
Солнце 27 декабря 2015 г. 18:35
Ах, хорошие надежные жирные жилы
Я много лет использую это в AVR, есть версия, которая работает на Tiny88! Я подозреваю, что есть много либеров Arduino, которые также включают Fatfs.
FATFS также является включенным наложением SDIO, которое CubeMX включает в себя, когда раздел файловой системы нажимается на. Все, что нужно сделать, это создать мост между аппаратным/программным SPI и остальной частью библиотеки. Когда я играл с примером Nucleo и Discovery, даже этот код моста был включен.
Все кусочки головоломки здесь, они просто должны быть собраны в правильном порядке.
Я много лет использую это в AVR, есть версия, которая работает на Tiny88! Я подозреваю, что есть много либеров Arduino, которые также включают Fatfs.
FATFS также является включенным наложением SDIO, которое CubeMX включает в себя, когда раздел файловой системы нажимается на. Все, что нужно сделать, это создать мост между аппаратным/программным SPI и остальной частью библиотеки. Когда я играл с примером Nucleo и Discovery, даже этот код моста был включен.
Все кусочки головоломки здесь, они просто должны быть собраны в правильном порядке.
Рагнарок
Ср 21 сентября 2016 12:12
Привет, ребята,
Когда вы говорите, что у F103C нет SDIO, D'Вы имеете в виду, что я вообще не могу использовать SD -карту? SDIO - это просто интерфейс для SD -карты, не так ли? Если это так, то разве я не смогу использовать серию F103C (чтобы быть конкретным, «синяя таблетка») для хранения значений, которые я получаю от ADC?
В настоящее время я получаю около 130 000 образцов в секунду, но у меня нет средств для их хранения.
Когда вы говорите, что у F103C нет SDIO, D'Вы имеете в виду, что я вообще не могу использовать SD -карту? SDIO - это просто интерфейс для SD -карты, не так ли? Если это так, то разве я не смогу использовать серию F103C (чтобы быть конкретным, «синяя таблетка») для хранения значений, которые я получаю от ADC?
В настоящее время я получаю около 130 000 образцов в секунду, но у меня нет средств для их хранения.
Zoomx
Ср 21 сентября 2016 12:33
Библиотека SD использует SPI, но я не уверен, очень бывает очень быстро для 130.000 образцов в секунду.
Ахулл
Ср 21 сентября 2016 г., 19:06
Теоретически вы должны иметь возможность подтолкнуть 130 000 образцов на внешнее вспышку с помощью SPI, особенно из вас, вы можете взломать DMA в микс, но я не настолько уверен, что вы так легко получите на SD -карту. Не потому, что теоретическая скорость карты является узкой личкой, больше потому, что я подозреваю, что накладные расходы на написание в Fatfs с процессором 72 МГц могут быть растяжкой. Все зависит от того, насколько хорошо оптимизирована Arduino Lib. Я думаю, что это задача, которую стоит принять, в интересах обучения невежества, такого как я, если по какой -то другой причине.
Zoomx
Чт 22 сентября 2016 12:51
Среди примеров SDFAT на Arduino есть один из быстрых данных Datalogger, LowlatencyLogger, но почитается, что он достигает всего 4000 образцов в секунду в секунду в секунду в секунду.
Я считаю, что лучше использовать Raspberrypi в одиночку или в качестве сборщика данных.
Я считаю, что лучше использовать Raspberrypi в одиночку или в качестве сборщика данных.
Пито
Пт 23 сентября 2016 г. 10:36
Речь идет не о необработанном узком месте SPI или SDIO Speed - Это все о задержке записи SDCARD.
Вы можете легко написать 3 мегабайта/сек через SPI (или SDIO), но, SDCARD Написать задержку wl Может попасть в любое время (каждые несколько MSEC и случайным образом), а сам WL может длиться до 250 мс.
WL - это время, когда ваш SDCARD не принимает никаких входящих данных, поскольку он делает свое внутреннее домашнее хозяйство.
Хиты WL очень часто, случайные по происхождению и случайные по продолжительности.
Таким образом, чтобы написать в SDCARD устойчивый поток данных, вы должны каким -то образом преодолеть WL.
Не ожидайте, что написание в SDCARD работает так же, как написание серийного SRAM.
Возможным решением является использование буфера FIFO, где вы записываете из источника в FIFO (когда FIFO не заполнено) с необходимой скоростью. Устойчивый поток записей данных. И, параллельно, вы читаете данные из FIFO, и когда FIFO не пусто, вы записываете данные в SDCARD.
Когда вы соблюдаете водяной знак FIFO, вы увидите, как написание в SDCARD довольно часто прерывается случайно грядущими всплесками (из -за WL).
Размер fifo = sample_record_size * sampling_rate * max_expected_wl
Пример:
Если вы хотите сохранить 1KB данных 500x в секунду (500 КБ/с), вам нужно 500 КБ/сек. * 250 мс. = 125 КБ большой буфер FIFO, чтобы компенсировать максимальный возможный WL (здесь Max ожидается, что WL установлен на 250 мс).
Вот как я записал задержки записи попадание/события со стандартной картой MicroSDHC 4 ГБ с Nilrtos во время написания данных в прошлом.
X - время сбора данных/записи данных в MSECS, Y - продолжительность удара WL в USECS. Вы можете увидеть количество ударов WL во время 32 секунд захвата данных огромно.
Скорость выборки данных составляет 1000 Гц (период выборки 1 мс).
Вы можете легко написать 3 мегабайта/сек через SPI (или SDIO), но, SDCARD Написать задержку wl Может попасть в любое время (каждые несколько MSEC и случайным образом), а сам WL может длиться до 250 мс.
WL - это время, когда ваш SDCARD не принимает никаких входящих данных, поскольку он делает свое внутреннее домашнее хозяйство.
Хиты WL очень часто, случайные по происхождению и случайные по продолжительности.
Таким образом, чтобы написать в SDCARD устойчивый поток данных, вы должны каким -то образом преодолеть WL.
Не ожидайте, что написание в SDCARD работает так же, как написание серийного SRAM.
Возможным решением является использование буфера FIFO, где вы записываете из источника в FIFO (когда FIFO не заполнено) с необходимой скоростью. Устойчивый поток записей данных. И, параллельно, вы читаете данные из FIFO, и когда FIFO не пусто, вы записываете данные в SDCARD.
Когда вы соблюдаете водяной знак FIFO, вы увидите, как написание в SDCARD довольно часто прерывается случайно грядущими всплесками (из -за WL).
Размер fifo = sample_record_size * sampling_rate * max_expected_wl
Пример:
Если вы хотите сохранить 1KB данных 500x в секунду (500 КБ/с), вам нужно 500 КБ/сек. * 250 мс. = 125 КБ большой буфер FIFO, чтобы компенсировать максимальный возможный WL (здесь Max ожидается, что WL установлен на 250 мс).
Вот как я записал задержки записи попадание/события со стандартной картой MicroSDHC 4 ГБ с Nilrtos во время написания данных в прошлом.
X - время сбора данных/записи данных в MSECS, Y - продолжительность удара WL в USECS. Вы можете увидеть количество ударов WL во время 32 секунд захвата данных огромно.
Скорость выборки данных составляет 1000 Гц (период выборки 1 мс).
- Написать задержку.JPG (83.31 киб) просмотрено 6449 раз
Рагнарок
Чт, 6 октября 2016 г., 14:02
Спасибо, Пито, который имеет такой смысл и очень полезен!
Вы сказали, что «параллельная» передача данных из буфера FIFO на SD -карту упростит ситуацию и увеличит скорость передачи. Как я могу это добиться? Разве STM не однопоточный?
Чтобы быть более конкретным, я могу записать данные из буфера на SD -карту после хранения ее в буфере, и в течение времени, необходимых для перемещения данных из буфера на SD -карту, я не могу получить новые значения ADC. Будет ли это не так, как написание непосредственно на SD -карту?
Вы сказали, что «параллельная» передача данных из буфера FIFO на SD -карту упростит ситуацию и увеличит скорость передачи. Как я могу это добиться? Разве STM не однопоточный?
Чтобы быть более конкретным, я могу записать данные из буфера на SD -карту после хранения ее в буфере, и в течение времени, необходимых для перемещения данных из буфера на SD -карту, я не могу получить новые значения ADC. Будет ли это не так, как написание непосредственно на SD -карту?
Пито
Чт, 6 октября 2016 г., 16:11
Параллельно означает, что вы используете RTO - выше было сделано с помощью Nilrtos, но это может быть любые RTO, которые вы получили под рукой.
(Вы можете использовать стандартное кодирование, но я никогда не делал этого таким образом.)
Задача 1 - Производитель - датчики образца и записи данных на FIFO при необходимой скорости отбора проб (т.е. 100bytes 500x в секунду = 50 кб/с)
Делайте это, пока FIFO не заполнено (если FIFO правильно размер, задача 2 будет опустошать его вовремя, несмотря на задержки записи, здесь худший размер корпуса FIFO будет 50 кб/с * 250 мс. = 12.5 КБ, 250msecs - это максимальная задержка записи в соответствии с спецификацией SDCARD от нескольких лет назад)
Задача 2 - Потребитель - В то время как FIFO не является пустым записями чтения данных от FIFO и записывает записи данных на SDCARD Полную скорость SDCARD (то есть 800KB/SEC).
Оба задания запускаются в «параллельном» и использование 2 семафоров для сигнала друг друга.
В Nilrtos Distro есть демонстрация, как использовать FIFO для написания в SDCARD. Nilrtos связан с Chibios или Arduino (нет порта с STM32duino еще планируется).
https: // github.com/greiman/nilrtos-ardu ... Регистратор.Ино
Когда позволит время, я создам простую демонстрацию в Freertos, так как это не совсем понятно среди людей еще
(Вы можете использовать стандартное кодирование, но я никогда не делал этого таким образом.)
Задача 1 - Производитель - датчики образца и записи данных на FIFO при необходимой скорости отбора проб (т.е. 100bytes 500x в секунду = 50 кб/с)
Делайте это, пока FIFO не заполнено (если FIFO правильно размер, задача 2 будет опустошать его вовремя, несмотря на задержки записи, здесь худший размер корпуса FIFO будет 50 кб/с * 250 мс. = 12.5 КБ, 250msecs - это максимальная задержка записи в соответствии с спецификацией SDCARD от нескольких лет назад)
Задача 2 - Потребитель - В то время как FIFO не является пустым записями чтения данных от FIFO и записывает записи данных на SDCARD Полную скорость SDCARD (то есть 800KB/SEC).
Оба задания запускаются в «параллельном» и использование 2 семафоров для сигнала друг друга.
В Nilrtos Distro есть демонстрация, как использовать FIFO для написания в SDCARD. Nilrtos связан с Chibios или Arduino (нет порта с STM32duino еще планируется).
https: // github.com/greiman/nilrtos-ardu ... Регистратор.Ино
Когда позволит время, я создам простую демонстрацию в Freertos, так как это не совсем понятно среди людей еще
Пито
Пт, 07 октября 2016 г., 18:08
Шериннкпотеин
Вт 11 апреля 2017 г. 11:02
Rogerclark написал:На случай, если это удобно,
Я нашел какой -то код, который мы можем получить порт на клен, чтобы сделать SD -карту SDIO
https: // bitbucket.org/antlabs_dev/fatfs ... 32F103/SRC
Но мне лучше проверить, что это работает первым.
Я нашел какой -то код, который мы можем получить порт на клен, чтобы сделать SD -карту SDIO
https: // bitbucket.org/antlabs_dev/fatfs ... 32F103/SRC
Но мне лучше проверить, что это работает первым.
астер
Пн июня 05, 2017, 8:50 вечера
Я совершенно уверен, что хорошо известный SDFAT уже реализовал SDIO
Стивестронг
Вт, 06 июня 2017 г. 8:22 утра
Уже есть рабочая версия для ядра STM322ERIER: ViewTopic.PHP?F = 51&t = 2036
Между тем, я также пытаюсь внедрить не HAL (Libmaple) версию SDIO Driver для SDFAT LIB, Похоже на Teensy Driver.
Мой прогресс задокументирован здесь, работа продолжается (Проблемы с отладкой с затмением). Приглашается любой вклад!
Между тем, я также пытаюсь внедрить не HAL (Libmaple) версию SDIO Driver для SDFAT LIB, Похоже на Teensy Driver.
Мой прогресс задокументирован здесь, работа продолжается (Проблемы с отладкой с затмением). Приглашается любой вклад!