alexan300 0 5 августа, 2020 Опубликовано 5 августа, 2020 · Жалоба Отчаянно разыскиваю пунктуального и ответственного программиста МК на Си. В текущий проект необходимо добавить библиотеку обеспечивающую быструю запись на карту памяти , с файловой системой FAT32 (лучше-больше). Сейчас трудится библиотека "esp32-micro-sdcard-master". Контроллер ESP 32 на отладочной плате DEVKIT1. IDE ПРЕСЛОВУТОЕ АРДУИНО. Что значит Быстрая? Библиотека должна успевать дописывать данные на карту памяти за 3 мсек. Размер пакетов 20 байт. Хорошо если будет реализован режим записи не SPI а Sd. Далее потребуется оптимизация всего кода- функции типа Serial.port Digital.Read (write), Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 августа, 2020 Опубликовано 5 августа, 2020 · Жалоба 1 hour ago, alexan300 said: Библиотека должна успевать дописывать данные на карту памяти за 3 мсек. Осталось убедить в этом карту :) За 3мс гарантированно можно в кэш положить, но не физически записать на карту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 5 августа, 2020 Опубликовано 5 августа, 2020 · Жалоба 28 minutes ago, aaarrr said: Осталось убедить в этом карту :) За 3мс гарантированно можно в кэш положить, но не физически записать на карту. В принципе можно за 3 мс записать, но труда будет стоить. Боюсь у ТС столько денег не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 233 5 августа, 2020 Опубликовано 5 августа, 2020 · Жалоба "Огромная" получается скорость: 6.66 кБ/с...10 класс при правильном кеше и линейном доступе с предвыделением файла на карте справится легко. Только что, AlexandrY сказал: В принципе можно за 3 мс записать, но труда будет стоить. Боюсь у ТС столько денег не будет. Где Вы видите проблемы со скоростью? Это кБ/с, а не МБ/с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 5 августа, 2020 Опубликовано 5 августа, 2020 · Жалоба 3 minutes ago, makc said: "Огромная" получается скорость: 6.66 кБ/с...10 класс при правильном кеше и линейном доступе с предвыделением файла на карте справится легко. Где Вы видите проблемы со скоростью? Это кБ/с, а не МБ/с. Думаю TC просто еще не назвал все сопутствующие обстоятельства. Пока вангую - он видит спорадические задержки от десятков до сотен милисекунд и чем дальше тем больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 5 августа, 2020 Опубликовано 5 августа, 2020 · Жалоба Александер.. не стоит рассуждать о чужих бюджетах. ок? хватит или не хватит, дело лишь меня и кандидата. В буфер я и сам их класть горазд. а вот при переносе с буфера, процесс записи тормозит основную работу. чтение с ацп. Вообщем кто возьмется, все покажу через тим вывер, все таиминги в анализаторе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба День прошел.. 250 просмотра. 5 ответов не по существу) попробую обозначить гонорар в 9 тр. и облегчить задачу, таким намеком; esp32 двухядерный.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба Будет интересно посмотреть на этого монстра который сумеет гарантированно поместится в 3мс для обычной карты, при том что карта может в любой момент уткнуться в свой пупок на сотни мс. А за 9к это уровень Девида Блейна не меньше. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба Видимо мне нужно более обширно описать задачу. есть ацп с SPI ШИНОЙ которая в режиме реального времени выдает значения. CS при работе ацп, в HIGHT находиться 3 милисек. И эта задержка не вносит видимых искажений в сигнал.если его я транслирую в сериал порт (250000 бот сек). Как только я подключаю режим записи на карту памяти, то CS увеличивается до 50-100 милисек., (в разных режимах работы SPI, разные задержки). Соответственно записанный сигнал у меня с пропуском, заметным не вооруженным глазом. Я варьировал величины буфера. но получал либо много мелких задержек, либо мало, но крупных. Сейчас пришел к такому решению. подключил под работу с SD ядро 0. и очень все прилично выглядит на логическом анализаторе. идут параллельно два процесса, и чтение и запись. но возникают конфликты собак. (wdt). и как следствие постоянные ребуты. В принципе vTaskDelay (10); и #define CONFIG_INT_WDT_TIMEOUT_MS 3000 как то помогают. но ведь это костыли. Ну и из за моих скромных познаний в программировании. пока не получается передавать значения между void Task1code( void * pvParameters ) и void Task2code( void * pvParameters ), переменных, структуированно. и да. карты памяти использую 10 U3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 27 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба 4 hours ago, alexan300 said: День прошел.. 250 просмотра. 5 ответов не по существу) Перепишите ТЗ т.к.: 1 вы не понимаете как работает SD 2 вы не озвучили в чём у вас проблема, а уже нашли решение её в виде ускорения алгоритма обращения к SD используя 2 ядра МК. On 8/5/2020 at 7:49 PM, alexan300 said: Библиотека должна успевать дописывать данные на карту памяти за 3 мсек. Размер пакетов 20 байт. SD не умеет писать по 20 или 5 байт. SD воспринимает блоки по 512 байт. И имеет право писать один блок 250мС. Это происходит на границе "страниц", у меня, например страницы - 64Мб. Это означает, что если вы хотите каждые 3мС надёжно писать писать 20 байт (6667 байт в сек): 1 или иметь 2 буфера ОЗУ по 2Кбайта 2 или 1 кольцевой на 2.5Кбайта On 8/5/2020 at 7:49 PM, alexan300 said: Хорошо если будет реализован режим записи не SPI а Sd Зачем? В этом режиме, как и в переходе на 50МГц или DDR - ничего не меняется со временем записи страницы. Вы можете выиграть только на потреблении, если ваш МК будет засыпать между посылками по 512б. On 8/5/2020 at 7:49 PM, alexan300 said: с файловой системой FAT32 (лучше-больше) Зачем? Но если хочется - это потребует держать в памяти один-два сектора (если диск не дефрагментирован) с таблицей зянятости, и смена этого сектора - это ещё 250мС, а значит +5кБ к ОЗУ. 4 hours ago, alexan300 said: гонорар в 9 тр. Это $120. Т.е. если человек оценивает себя за $10 - он должен решить вашу задачу за 12 часов, с гарантированным пониманием: результат достигнут - вот деньги. А что у нас критерий достижения результата? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба Проблема в том, что я на карте памяти, получаю записанный сигнал с искажениями, вызванными тем, что два SPI устройства мешают друг другу. Вообще я уверен, что есть типовое решение вопроса, ибо зачем тогда столько SPI шин контроллеру? писать раз в секунду значения температур? но не чаще.?. Не фрагментированные карты памяти рассматриваю в последнюю очередь. у меня уже есть под них библиотеки. но не удобное использование в дальнейшем предвижу. критерий и оценки прост и понятен. открываем записанный сигнал и смотрим в графопостроители (поверграф например). есть пропуски- плохо. нет, отлично. Дабы не мудрить с источником внешнего сигнала. можно например создать синус и в цикле его крутить. Конкретные параметры тестового синуса, выясним. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 27 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба 41 minutes ago, alexan300 said: Проблема в том, что я на карте памяти, получаю записанный сигнал с искажениями, вызванными тем, что два SPI устройства мешают друг другу. Почему вы уверены, что причина в источнике (2 SPI), а не в приёмнике (SD) ? 44 minutes ago, alexan300 said: можно например создать синус и в цикле его крутить. А что будет, если сейчас крутить 2 тестовых синуса? Кто неуспевает: 1 генераторы 2 библиотека записи 3 карта ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба 38 minutes ago, _4afc_ said: Почему вы уверены, что причина в источнике (2 SPI), а не в приёмнике (SD) ? Я и пишу о проблеме в приемнике в карте. С чего вы решили что я грешу на ацп? А что будет, если сейчас крутить 2 тестовых синуса? Кто неуспевает: 1 генераторы 2 библиотека записи 3 карта ? откуда я знаю? стал бы я сюда обращаться имея все ответы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rkit 4 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба В esp32 несколько SPI. Нет нужды вешать ацп и карту на одну шину. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 6 августа, 2020 Опубликовано 6 августа, 2020 · Жалоба 1 minute ago, rkit said: В esp32 несколько SPI. Нет нужды вешать ацп и карту на одну шину. гениально ! ) я и повесил их на разные. но крутяться они у меня в одном лупе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться