Jump to content

    
Sign in to follow this  
gora_electric

Звук в карту памяти ?

Recommended Posts

У кого есть инфа как проще сделать оцифровку звука на mega8 например и записать это на карту SD или какую другую ? Если мона то схему и алгоритм для проца

Share this post


Link to post
Share on other sites
У кого есть инфа как проще сделать оцифровку звука на mega8 например и записать это на карту SD или какую другую ? Если мона то схему и алгоритм для проца

Если исходить из спецификации SD/MMC - то этого сделать нельзя. Потому как задержка при записи сектора может быть существенно больше, чем объем оперативной памяти у mega8, необходимый для буферизации оцифровки на время этой задержки. Кроме того, реализация файловой системы - штука достаточно сложная (хотя, конечно, можно тупо писать сектор за сектором - но и воспроизводить или считывать придется нестандартным же способом), или сделать что-то типа преформатирования, выделив определенную цельную область под файл и работать строго в этой области. И для любительской поделки можно рискнуть и положиться на предположительно малую задержку при записи сектора. Иначе - прямой путь к каким-нибудь ARMам, у которых и с быстродействием лучше, и спамятью...

Что до вообще оцифровки и записи на твердотельный носитель применительно к микроконтроллерам AVR - на атмеловском сайте есть аппликуха цифрового диктофона с использованием ихнего же serial dataflash...

Share this post


Link to post
Share on other sites

Записать то конечно можно, но вот только оцифровкой и собственно сжатием всего этого потока данных должен заниматься не AVR , а скажем специализированая для мп3 плееров ИМС :1111493779: (к примеру VS1001) (заодно она поддерживает и сжатие => потребуется меньше места для хранения записи, чем если её не сжимать). Задачей же Меги будет управление этой VS и работа с файловой системой.

Только вот сдесь могут попасться грабли связанные с особенностью файловой системы, а именно то, что минимальный блок считаных данны будет 512 байт, таким образом на всё остальное у нас остаётся ещё 512 байт ОЗУ, а уж хватит ли этих оставшихся байт на всё остальное это можно узнать только когда окончательно напишем программу.

Вообще я порекомендовал бы посетить этот сайт на котором представлен проект мп3 плеера, и есть краткое руководство, что такое FAT и карта памяти.

 

Хотя конечно если не нужно эти данные передавать на комп. или када ещё, а просто записать их на карту и потом на этойже меге их воспроизвести, то можно обойтись и без файловой системы, а просто писать тупо байт за байтом на карту как уже сказал rx3apf

Share this post


Link to post
Share on other sites

Разнообразные цифровые диктофоны представлены на сайте Телесистем.

http://www.telesys.ru/products/recorders/index.php

http://www.telesys.ru/products/avr/avr.php

http://www.telesys.ru/electronics/index.php?do=schemme

Share this post


Link to post
Share on other sites

Ну что Вы такое говорите, я делал 20 кГц, запись на ММС в файлы WAV (правда на ПИКе 16 Ф 876 т.частота 20МГц), прослушивание с ЦАПом на выходе -звук идеальный.

Share this post


Link to post
Share on other sites

реально.

есть рабочий вариант.

мега8, 14,7456, SDcard, часы реального времени и 16*2 LCD

все работает и пишется в FAT16 в WAV формате 8000ГЦ моно.

единственный нюанс, пока флешку форматирую на самой меге, и пишу сектор за сектором, потом формирую фат таблицу.

но все на компе считывается, все нормально копируется и открывается.

но можно и сразу писать по фат таблице, все успеет.

 

да.

сжатия нет, то что с АЦП то и пишем на флешку.

ресурсов меги хватило в притык.

Share this post


Link to post
Share on other sites
Ну что Вы такое говорите, я делал 20 кГц, запись на ММС в файлы WAV (правда на ПИКе 16 Ф 876 т.частота 20МГц), прослушивание с ЦАПом на выходе -звук идеальный.

Согласно спецификации - нельзя. Т.е. если нужно гарантировать, что данные не пропадут - нужна буферная память. То, что реально современные карточки имеют куда меньшую латентность - это, конечно, хорошо. Но _гарантий_ никто не даст...

Share this post


Link to post
Share on other sites
Согласно спецификации - нельзя. Т.е. если нужно гарантировать, что данные не пропадут - нужна буферная память. То, что реально современные карточки имеют куда меньшую латентность - это, конечно, хорошо. Но _гарантий_ никто не даст...

 

Я не понял что нельзя, то оцифровывать f-22050 Hz и записывать блочно по 512 байт в ММС-ку, а потом прописать FAT and Root-можно, а то что потеряется инфа от этого никто не застрахован (у меня были случаи).

Share this post


Link to post
Share on other sites
Я не понял что нельзя, то оцифровывать f-22050 Hz и записывать блочно по 512 байт в ММС-ку, а потом прописать FAT and Root-можно, а то что потеряется инфа от этого никто не застрахован (у меня были случаи).

Создать элементы структуры "потом" можно, и это даже правильнее. Но нет никакой гарантии, что удастся записать сектор за время заполнения буфера. Кстати, а где столько оперативной памяти вообще взять - пишем из буфера 512 байтов, и еще такой же надо бы - а у mega8 всего 1K. Можно, конечно, три по 256, два пишем, один заполняется - но тем более гарантии, что успеем освободить - нет. В спецификации указаны весьма солидные возможные задержки (как я понимаю, это на тот случай, когда обнаружен сбойный сектор при записи и собственный контроллер карточки выполняет замену).

Edited by rx3apf

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this