Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
29.12.2010, 19:59
|
#1
|
Частый гость
Регистрация: 29.12.2010
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
SD + AVR
Доброго времени суток, есть проблема.
схема включает в себя at mega 16 , sd карту › 4 Гб, GPS и плеер подключенный через DAC.
Нужно по определенным сигналам с GPS (неважно каким) загружать из карты звуковой файл и кидать его в плеер.
Вроде все просто - организовать на SD FAT32 , а потом считать нужный файл по сигналу и отправить в плеер.
На самом деле слдожности вознимают уже тут. Чтобы знать какой файл где находится надо считывать директории и файлы куда нибудь и потом , выбрав нужный файл начать считывание его адреса и уже собственно начать перекачку в плеер. но дело в том что эта инфа займет около 64 кб (файлов ›2000) ,памяти катастрофически не хватит (SRAM) и ничего не получится. Возникла идея - поместить данные на карту в сыром формате одним куском , так чтобы считывая сектора SD карты один за другим мы бы двигались от 0001.wav до последнего. Здесь достаточно информации о длине файла и с пересчтетом на расположение данных в SD можно требуемый файл выцепить. Но вопрос в том как 1)Скомпоновать много аудио файлов в один файл друг за другом - требумый файл будет в районе 4 Гб и в винде понятное дело он читаться не будет, будут просто данные. 2) как залить его на SD без форматирования последней в FAT32 ? вот как то так, может кто нибудь знает или посоветует где искать и , возможно, что искать) заранее спасибо
|
|
|
|
29.12.2010, 20:24
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: SD + AVR
Сообщение от helio111
|
Чтобы знать какой файл где находится надо считывать директории и файлы куда нибудь и потом , выбрав нужный файл начать считывание его адреса и уже собственно начать перекачку в плеер. но дело в том что эта инфа займет около 64 кб (файлов ›2000) ,памяти катастрофически не хватит (SRAM) и ничего не получится.
|
Не надо. Почитайте спецификацию ФАТ, или создайте собственную таблицу на флешке, выделив для этого 64к ейной памяти. Тогда по событию быстро читаете эти 64к на флешке, выбираете адрес нужного файла и переходите по нему. В памяти контроллера ничего хранить не надо. Хотя лучше конечно делать все по ФАТ - будет проще загружать файлы (иначе после загрузки контроллером нужно будет производить индексацию)
|
|
|
|
29.12.2010, 20:34
|
#4
|
Частый гость
Регистрация: 29.12.2010
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD + AVR
секундочку, что т оя не понял. К примеру возьмем простую ситуацию -приходит с GPS имя файла который нужно открыть (очень умный GPS ). Соответственно на флешке надо найти файл с этим именем - а для этого надо считать все имена файлов пока мы не наткнемся на нужный,и уже после этого идти по его адресу для считывания и отправки на плеер.
и кстати не очень понял что значит создать свою таблицу в начале флешки - зачем?
|
|
|
|
29.12.2010, 20:35
|
#5
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: SD + AVR
Сообщение от helio111
|
Вроде все просто - организовать на SD FAT32 , а потом считать нужный файл по сигналу и отправить в плеер.
На самом деле слдожности вознимают уже тут. Чтобы знать какой файл где находится надо считывать директории и файлы куда нибудь и потом , выбрав нужный файл начать считывание его адреса и уже собственно начать перекачку в плеер. но дело в том что эта инфа займет около 64 кб (файлов ›2000) ,памяти катастрофически не хватит (SRAM) и ничего не получится.
|
А зачем так грубо?
Формируйте название файла динамически, а файлы 0001.wav, 0002.wav и т. д. разместите в корневом каталоге.
|
|
|
|
29.12.2010, 20:37
|
#6
|
Частый гость
Регистрация: 29.12.2010
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD + AVR
это я так понимаю относится к записи инфы на читую не формат флешку..?
если да, т оспасибо, почитаю, но вопрос остаётся еще по склейке тысяч файлов в один
p.s. это все актуально если с FAT не выйдет сделать на AVR, если там подскажут то в RAW формате уже и не надо будет
|
|
|
|
29.12.2010, 20:39
|
#7
|
Частый гость
Регистрация: 29.12.2010
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD + AVR
Сообщение от st_1
|
А зачем так грубо?
Формируйте название файла динамически, а файлы 0001.wav, 0002.wav и т. д. разместите в корневом каталоге.
|
можно поподробней если не сложно) пришло имя файла с GPS к примеру. его надо найти в этих лесах из секторов и блоков, а потом отправить - как это сделать..?)
|
|
|
|
29.12.2010, 20:44
|
#8
|
Частый гость
Регистрация: 29.12.2010
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD + AVR
Собственно почему я "за" RAW данные. ТАм ничего перебирать не надо - просто по имени файла прыгаем через остальные используя их длину , данные о которой можно залить в самое начало флешки. Получается, зная имя файла, можно прпактически одной командой скакнуть к его адресу на флехе - и всего делов. Тут момент оптимизации еще давлеет..( конечно сложности свои - склейка тысяч wav'ов в один , закачка как data в неформатированную флеш, но работать по идее будет быстрее. Если ваш метод основанный на флеш не сильно нагружает AVR ку , то само собой сделаю FAT. но пока не понял как
|
|
|
|
29.12.2010, 22:15
|
#9
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: SD + AVR
Все-таки почитайте ФАТ, тем более что его уже давно перевели. Если кратко - в самом начале флешки перечислены ВСЕ имена файлов и адреса к ним (это и есть таблица ФАТ). То есть читаете эти секторы, выискиваете там нужный файл и прыгаете к нему. Хотя для 2000 лучше создать свою таблицу на флешке - список адресов фиксированной длины (4 байта), чтобы найти допустим 324-й файл считаем в контроллере (стартовый адрес таблицы) + (324*4) = читаем 4 байта и переходим по ним. Но тогда нужна начальная индексация контроллером после заливки файлов
|
|
|
|
29.12.2010, 22:16
|
#10
|
Прохожий
Регистрация: 18.10.2006
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD + AVR
Сообщение от helio111
|
это я так понимаю относится к записи инфы на читую не формат флешку..?
|
Да. Эти функции вообще универсальные в windows. С помощью их можно и на диск писать и в файл и в COM порт и напрямую с драйвером общаться. Зависит от того что c помощью CreateFile открываешь. И много файлов можно с помощью этих же функций объединить. Если все в одной директории то помогут функции FindFirstFile, FindNextFile, FindClose.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:38.
|
|