Страница 2 из 3

Re: Arduino + SD + FAT16

Добавлено: Вс июн 04, 2017 5:47 pm
Василий
BR95009 писал(а):
Вс июн 04, 2017 12:47 pm
А как воспроизвести одновременно эти 6 файлов? Вот вопрос.
Можно вопрос, вы только не обижайтесь :) :) :) - с какой целью и на каком уровне, так сказать, понимания вопроса интересуетесь? В том смысле, что вы знаете, хотя бы приблизительно, как это все работает внутри? Или на уровне пообщаться за кофейком?

Если на уровне кофейка, то ответ - несложно.

Если на уровне внутреннего устройства - все зависит от возможностей микроконтроллера. Как с точки зрения быстродействия, так и с точки зрения доступных ресурсов. Можно прикинуть - на ардуине мини, без каких либо изысков можно получить скорость чтения с SD - 1120 Kbps.. Для звука скажем в виде нежатого WAV 44100Hz, 8bit, 1 канал, скорость составляет 352.80 Kbps, хотя и это на мой взгляд очень хорошо для маленьких динамиков. То есть даже для мелкой и тупой ардуины вполне по силам читать 2 файла и микшировать их относительно сложным алгоритмом с вычислением уровней в пределах 512 байт файла.

Если взять равноценный по цене (100-150р за плату) МК на stm32 показатели вырастут если не на порядок, то в несколько раз точно. Ну а если МК будет подороже, ну примерно как STM32F103VET6, то в принципе реализуемы не только миксинг каких-то 6 файлов, но и преферанс с институтками.

Re: Arduino + SD + FAT16

Добавлено: Вс июн 04, 2017 6:45 pm
Василий
Так, пока с FAT-ом есть некоторые вопросы, в первом сообщении темы выкладываю код для инициализации и чтения блоков с SD карточки. С пояснениями и комментариями :)

Re: Arduino + SD + FAT16

Добавлено: Вс сен 24, 2017 11:09 pm
Василий
Что-то загнулась идея. Не получается сделать быстрее и меньше чем существующие библиотеки. Либо быстрее и больше, либо меньше и медленнее :)

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

Но это уже совсем другая история, которая будет освещена в другой теме.

Re: Arduino + SD + FAT16

Добавлено: Пн сен 25, 2017 6:49 pm
shalex
Василий, а в чем именно проблема?
Читал-читал, но не смог понять :(

Re: Arduino + SD + FAT16

Добавлено: Пн сен 25, 2017 8:54 pm
Василий
Проблема в мелкой ардуине. Памяти маловато.

Если конкретно, то для скорости нужно бы некоторые вещи хранить в памяти, например цепочки кластеров, а не читать каждый раз "по необходимости". Соответственно все это в память не лезет. А при чтении по необходимости, очень сильно падает производительность.

Re: Arduino + SD + FAT16

Добавлено: Пн сен 25, 2017 9:04 pm
shalex
Василий писал(а):
Пн сен 25, 2017 8:54 pm
Проблема в мелкой ардуине. Памяти маловато.

Если конкретно, то для скорости нужно бы некоторые вещи хранить в памяти, например цепочки кластеров, а не читать каждый раз "по необходимости". Соответственно все это в память не лезет. А при чтении по необходимости, очень сильно падает производительность.
А если рядом поставить тиньку, которая будет перекачивать с карты в какую нить быструю память? В свою же, например :)
p.s. Интересная задача для программера, на мой взгляд - сделать внешний буфер на МК. Вот только хватит ли скорости обмена между главным МК и МК-буфером?

Re: Arduino + SD + FAT16

Добавлено: Пн сен 25, 2017 10:40 pm
Василий
Да все можно запилить. Вон тут читал статейку как на 128-ю тиню - simm принайтовали :) Только зачем? Проверить чисто теоретическую возможность?

Re: Arduino + SD + FAT16

Добавлено: Пн сен 25, 2017 11:12 pm
shalex
Василий писал(а):
Пн сен 25, 2017 10:40 pm
Да все можно запилить. Вон тут читал статейку как на 128-ю тиню - simm принайтовали :) Только зачем? Проверить чисто теоретическую возможность?
Ну, если будет хорошее качество воспроизведения, то не и не жалко две Нано поставить, по стоимости нормальный звуковой одноголосый шилд (на VS1053B) ощутимо дороже стоит.

Re: Arduino + SD + FAT16

Добавлено: Вт сен 26, 2017 8:25 am
Василий
shalex писал(а):
Пн сен 25, 2017 11:12 pm
Ну, если будет хорошее качество воспроизведения, то не и не жалко две Нано поставить, по стоимости нормальный звуковой одноголосый шилд (на VS1053B) ощутимо дороже стоит.
Так я под эту микруху VS1053 и пилю :) Только я сами чипы россыпью купил. По цене сопоставимо с наной :)

Re: Arduino + SD + FAT16

Добавлено: Вт сен 26, 2017 11:34 am
Engineer_Keen
Я так понимаю, цель использования SD-карточки в том, что в отличии от отдельной микросхемы флеш-памяти, карточку проще достать, и файлы на нее можно залить быстро с компа, да и объемы у них поприличнее? Тогда есть еще вариант:
1) отдельной прогой (которую конечно придется написать) для компа собираем все нужные файлы в один, в заголовке которого будет необходимая информация ("упрощенная FAT")- адреса (смещение) отдельных файлов, их ID или какую-либо еще инфу;
2) карточку форматируем;
3) копируем этот большой файл на флешку - должно получится без фрагментирования;
4) контроллером при старте читаем FAT флешки, проверяем что нет фрагментирования,
находим заголовок большого файла и читаем в память нужные данные ("упрощенную FAT").
Так для каждого файла нужно будет всего 5-6 байт оперативки (4 на адрес, и сколько угодно для любой информации).
Хотя конечно карточка все равно сильно уступает отдельной микросхеме (той же AT45) в простоте и скорости доступа...