andron_h 0 30 октября, 2022 Опубликовано 30 октября, 2022 · Жалоба Доброго дня! Стоит задача логировать данные с кан шины 500кбс устройство должно быть автономным без своего источника питания, запитка только от самого опрашиваемого устройства. т.е. отслеживать момент отключения не особо можем. Записи могут быть недолгими, буквально 10 пакетов, а могут быть на десятки миллионов. В большинстве своем короткие, длинных ожидается штук 5-6. Сессий записи будет около 200 000. Пока ожидается, что должно хватить 256 мегабайт. Появилось питание, пишем все подряд до выключения питания. Из очевидных реализаций это запись на SD карту, но тут вопрос в том чтоб организовать достаточный буфер, так как у SD карт бывают затыки от 250 до 500 миллисекунд при записи блока. Можно поставить несколько логеров (или несколько карт)для исключения пропуска записи пакетов, но как потом это всё синхронизировать. Еще смущает как будет работать файловая система если не успевать закрывать файл и отмонтировать флешу? Флешки типа winbond 25q.. смущает размер, боюсь не влезем. Какие мысли, советы будут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 30 октября, 2022 Опубликовано 30 октября, 2022 · Жалоба 36 minutes ago, andron_h said: Какие мысли, советы будут? Использовать SD-карту как "флешку 25q". Взять SiP с SDRAM на борту для буферизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 31 октября, 2022 Опубликовано 31 октября, 2022 · Жалоба 11 часов назад, andron_h сказал: Какие мысли, советы будут? 1) Никто не заставляет на SD-карту писать в файловую систему. Тогда и закрывать ничего не придётся. 2) Даже если писать на SD нужно именно в ФС, то никто не заставляет создавать/наращивать файлы; можно писать внутрь одного существующего файла, поверх. 3) "Флешки типа winbond 25q" - не единственные в мире. Тыкаем первого попавшегося производителя и видим целый табун чипов ёмкостью 256МБ: https://www.infineon.com/cms/en/product/memories/nor-flash А если ещё и по другим вендорам побродить, то может и более ёмкие найдутся. Например мы у себя уже много лет как используем S70FL01GS на 128МБ. У этих флешек 2 чипселекта на чип, а значит и конский буфер (для компенсации задержек стирания) не нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 31 октября, 2022 Опубликовано 31 октября, 2022 · Жалоба Ну, мысли будут озаботиться в первую очередь механизмом безопасной работы с ФС при внезапном отключении питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aaron 1 8 ноября, 2022 Опубликовано 8 ноября, 2022 · Жалоба 1) рассчитать/померить токи потребления системы при записи. 2) оценить необходимое количество энергии для полноценной записи одного кадра и безопасного завершения работы системы. 3) добавить в схему ионисторы из рассчёта п.2 и контроль пропажи первичного электропитания. 4) при пропадании первички уходим в экстренную запись последнего кадра с блокировкой и завершением остальных процессов. С таким подходом можно реализовывать хоть в baremetal, хоть в Linux+FS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 8 ноября, 2022 Опубликовано 8 ноября, 2022 · Жалоба 8 часов назад, Aaron сказал: 1) рассчитать/померить токи потребления системы при записи. 2) оценить необходимое количество энергии для полноценной записи одного кадра и безопасного завершения работы системы. 1) + 2) исключают применение sd карты. Оно может непредсказуемо задумываться до 500мс при этом кушает как не в себя. Запись в предварительно стертую spi nor - единицы миллисекунд, в эту сторону и копайте. Предварительно стертая nand тоже быстро пишется только надо ecc дописывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andron_h 0 8 ноября, 2022 Опубликовано 8 ноября, 2022 (изменено) · Жалоба Изнасиловал сд карту вдоль и поперек, нехватает внтуренней памяти контроллера под кольцевой буфер при полной загрузке кан шины. пару десятков записей проходят успешно, а потом начинаются пропуски в виду тормозов сд. хоть и не 500 мс, но за 250 которые она тормозит буфер переполняется. Был соблазн подключить нанд по fsmc, так как нандов в донорах валяется много и с нормальным не бга подключением (да даже из сд карт больших можно дернуть, но пугает контроль ecc. Боюсь с ecc не выгребу. Nor флешей в закормах не обнаружил. Заказывать с Китая долго. Может из каких телефонов, планшетов или других устройств можно дернуть? Знакомых много в сервисах в городе, знать бы точно в чем есть. Наверное это самый быстрый способ будет, работать со стертой NOR по FSMC. А по окончании всей записи скинуть на комп по уарту или опять же на sd. Единственный момент это держать где-то данные между включениями о последнем адресе, чтоб не перебирать всю флеш ища адрес с которого будем писать. Изменено 8 ноября, 2022 пользователем andron_h Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 8 ноября, 2022 Опубликовано 8 ноября, 2022 · Жалоба Пишите большими блоками в SD. Я помню блок в 16 кБ уже не занимал много времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 8 ноября, 2022 Опубликовано 8 ноября, 2022 · Жалоба 17 минут назад, andron_h сказал: пару десятков записей проходят успешно, а потом начинаются пропуски в виду тормозов сд. хоть и не 500 мс, но за 250 которые она тормозит буфер переполняется. Зачем было "насиловать" если это и заранее было известно? Вам поэтому сразу говорили, что "для работы с SD нужен будет большой буфер". 17 минут назад, andron_h сказал: Наверное это самый быстрый способ будет, работать со стертой NOR по FSMC. Зачем FSMC? Вы же не программу из неё исполнять собираетесь. У нас в устройстве работает S70FL01GS по dual-SPI. Она имеет 2 CS. Соответственно можно организовать область хранения так, чтобы чередовать записи по этим CS: пока по одному CS идёт стирание сектора; по другому - запись данных; затем они меняются местами. PS: Советую всё же почитать даташит на неё. 7 минут назад, Arlleex сказал: Пишите большими блоками в SD. Я помню блок в 16 кБ уже не занимал много времени. Если у карты в CSD заявлено "250мс на стирание блока", то рано или поздно она на эти 250мс затупит. При очередном стирании. Какими бы блоками вы не писали. PS: И вообще - количество чипов SPI-флешь можно поставить >1. И размазать задержку стирания по всем чипам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 8 ноября, 2022 Опубликовано 8 ноября, 2022 · Жалоба 56 минут назад, andron_h сказал: Был соблазн подключить нанд по fsmc, так как нандов в донорах валяется много и с нормальным не бга подключением (да даже из сд карт больших можно дернуть, но пугает контроль ecc. Боюсь с ecc не выгребу. ECC неприятно но решаемо. Выдирается из исходников u-boot / linux или другой ОС. У некоторых производителей были аппноуты с реализацией ECC. Сложнее делать автодетект памяти и автоматическую работу с разными размерами ECC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andron_h 0 9 ноября, 2022 Опубликовано 9 ноября, 2022 · Жалоба Заказал пару S25FL512SAGMFI011 S70FL01GS это какраз сдвоенный S25FL512. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andron_h 0 19 января, 2023 Опубликовано 19 января, 2023 · Жалоба Отчитываюсь, прибор пошел на полугодовую вахту. На столе все работает. Запас по скорости на 30 мгц флеши почти четырехразовый. Можно смело рекомендовать. Немного напрягают костыли во флеше для обратной совместимости со старыми устройствами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 20 января, 2023 Опубликовано 20 января, 2023 · Жалоба В 19.01.2023 в 15:37, andron_h сказал: Немного напрягают костыли во флеше для обратной совместимости со старыми устройствами. Это Вы о чём? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться