Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SD-MMC + MCS-51
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Angelborn
Ребята, кто-то когда-то занимался этим? В сети много описано для AVR-контроллеров, но написано для С, а я в нём не разбираюсь. Только ассемблер. Если кто-то находил подробный алгоритм работы этих карточек, буду очень признателен за ссылку. Другие типы карт не предлагать.
SALOME
Цитата(Angelborn @ Jun 28 2007, 04:01) *
Ребята, кто-то когда-то занимался этим? В сети много описано для AVR-контроллеров, но написано для С, а я в нём не разбираюсь. Только ассемблер. Если кто-то находил подробный алгоритм работы этих карточек, буду очень признателен за ссылку. Другие типы карт не предлагать.

попробуйте начать с этого. надеюсь, что прикрепилось. Удачи.

А лучше так...Нажмите для просмотра прикрепленного файла
Angelborn
Спасибо, я уже читал эту страничку. Довольно доступная информация. Странно, что никто не вешает карты памяти к x51 - контроллерам. А ведь протокол не такой уж и сложный.
Я хотел сделать связку AT89C2051 + SD(MMC)+DAC 16bit = wav-плейер. Памяти должно хватить (2кб). Не использую си из принципа - память кушает будь-здоров!

Оговорился насчёт x51-контроллеров. Используют. Николайчук предлагал исходники к Сигналам (C8051Fxxx) с использованием карты памяти, но там тоже си.
SALOME
Цитата(Angelborn @ Jun 28 2007, 13:43) *
Спасибо, я уже читал эту страничку. Довольно доступная информация. Странно, что никто не вешает карты памяти к x51 - контроллерам. А ведь протокол не такой уж и сложный.

Дык тогда и пишете, что нужна схема и текст проги на ассемблере, т.к. у самого не получается. А то, только время потеряла...
Angelborn
Цитата(SALOME @ Jun 28 2007, 09:48) *
Дык тогда и пишете, что нужна схема и текст проги на ассемблере, т.к. у самого не получается. А то, только время потеряла...


Ну простите за потерянное время. Схема мне не нужна, да и готовый протокол на асме я сам могу написать, просто не хотел наступить на грабли, которые могут встретиться в этом деле.
migray
Цитата(Angelborn @ Jun 28 2007, 10:43) *
Я хотел сделать связку AT89C2051 + SD(MMC)+DAC 16bit = wav-плейер. Памяти должно хватить (2кб). Не использую си из принципа - память кушает будь-здоров!

Возьми IAR и включи максимальную оптимизацию. Увидишь, что Си не так уж прожорлив.

Хочешь писать на АСМе, возьми Си-шную библиотеку, впихни в проект, войди в режим отладки и в окне дизасеблера увидишь соответствие кода на Си его варианту на АСМе.

Если что не понравится, подправишь, но основной код у тебя уже будет.
Angelborn
С IARом я как-то не разобрался, как его правильно настроить и т.п., хотя не спорю - это рай для разработчиков. Конечно, я уже попробовал и в коде да Винчи smile.gif , и в баскоме компилить проект (нашёл библиотеки для работы с MMC, а где-то они и были), чтобы глянуть, что там в асме. Мой вывод после этого - проще быстренько выучить си wink.gif, так как мусора очень много после компиляции.
Уже много информации нашёл, дело тронулось с мёртвой точки.
migray
Цитата(Angelborn @ Jun 28 2007, 11:25) *
С IARом я как-то не разобрался, как его правильно настроить и т.п., хотя не спорю - это рай для разработчиков.

Не помню проблем с его настройкой, правда давно я его осваивал.
Если есть оценочной комплект на проц, все совсем просто, там инструкция есть и IAR бесплатный.

А насколько ты сильно привязан к AT89C2051, может тебе взять более другой проц?
Тогда я все примеры из оценочника могу выслать, и файл описания по запуску и настройке оценочника и IAR.
Работы с ММС там правда нет, но Си код легко перенести из одной библиотеки в другую. В этом тоже преимущество Си по сравнению с АСМ.
Angelborn
Спасибо за помощь. Если с 2051 ничего не получится возьму AVR. Хотя думаю, что даже 2051 это под силу, единственное что может подкачать - быстродействие (звук будет "выталкиваться" с частотой 22 кГц). А вобще у меня направление деятельности - выжать все соки из 2051 smile.gif
Уже есть несколько проектов, скоро выложу на своём сайте на всеобщее обозрение.
Микруха самая дешёвая и доступная, и с неё я начал свой путь освоения МК.
migray
Я тоже начинал МК с 51-го семейства, но было это в 1994 году. Но жизнь не стоит на месте. Правда в 2003 опять пришлось 51 вспомнить, ADuC814, ADuC812. Но и их уже не использую.

Сейчас вместо 2051 логичнее применять более быстрые процы, при той-же, если не ниже, цене.

А если взять проц за 2,7$, то в добавок к скоости ядра, получаешь встроенный аппаратный SPI, который без проблем с этими карточками будет работать.

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

Если музыка будет храниться в своем собственном формате, то ресурсов на ее извлечение потребуется меньше, но придется делать еще одну приблуду для закачки музыки на карточку.
Angelborn
С файловой системой пока не разобрался. Логичнее и проще конечно форматнуть в винде карту под FAT16 и процесс доступа к ФС организовать в МК. Формат wav-файла оч. простой. Коротко - каждый байт, начиная с определённой позиции - это напряжение на выходе ЦАПа.
Ты совершенно прав и насчёт другого варианта - беспорядочного хранения wav-файлов без ФС, с известными заранее адресами начала и конца. Но для закачки на карту можно написать утилитку, расставляющую композиции по нужному порядку. Придерживаюсь варианта с ФС.
Вобщем пока разбираюсь с протоколом.
Насчёт 51-х контроллеров, параллельно осваиваю сИгналы, но там без си точно не обойтись, а то на асме писать гигантские проги смешно. Приобрёл 320-й, чтобы применить аппаратное usb.
migray
ВАВ действительно простой формат, применение его вполне обосновано.

FAT под МК у меня так руки и не дошли сделать, просто не было надо, хотя с ней будет намного удобнее.

MMC/SD карточки поддеоживают режим SPI, так что при небольших скоростях можно им воспользоваться. Програмной реализацией его наверно лучше не заниматься, проще взять проц с аппаратной реализацией, таких море.

На 2051 это устройство я реализовать не рискну, в свое время хотел сделать на ADuC музыкальный звонок, но остановило отсутствие хорошего и привычного Си компилятора для 51 семейства. На АСМе писать работу с ФАТ не очень приятно.
IAR для 51 тогда был не сильно оптимизирован. Сейчас вроде-бы получше.

На счет процов сильно советую обратить внимание на NEC

У него 6 разных ядер, под разные задачи.

78K0S -Простейшее 8-битное, маленькое количество выводов, вместо 2051 идеально будет
78K0 - Навороченное 8-битное, с вкраплениями 16-битных команд. В больших есть аппаратный 16-битный умножитель/делитель. В отличии от 78K0S в это и следующие добавили CSI (аналог SPI)
78K0R - Полноценное 16-битное ядро, по функциональности и потреблению сравнимо с популярным MSP430, а по цене гораздо ниже. И надежность у японцев выше.
V850ES - 32-разрядное ядро, в целом даже получше ARM7 будет
V850E1 и V850E2 - навороченные 32-битные ядра, в последнем производительность до 400 MIPS

Практически вся периферия, порты, таймеры, АЦП, ЦАП имеют одинаковые наборы управляющих регистров и одинаково названа, ВНЕ ЗАВИСИМОСТИ от ядра. Очень часто 2,3, и 4 ядра из списка имеют модели с одинаковыми корпусами и при грамотном планировании проекта можно будет потом поменять ядро не меняя разводки платы. Программу ес-но придется перекомпилить, но перелопачивать практически ничего не придется. Это конечно, если на Си писал, если АСМ использовал, то просто так не получится, ядра всетаки разные.

Т.е. заложил 78К0, поработал, потом что-то добавил, потом еще, и еще капельку, производительности / объема не хватило, поставил V850.
Angelborn
У меня пока нет желания переходить на другие процессоры, кроме 51-х и АВР. А эти своё ещё не изжили!
К тому же ассемблер 51-го знаю как свои 5 пальцев.
Перелопатил много страничек нета и понял - никто ещё не повесил карту памяти на атмеловские 51-ые процы... Или я не прав?
А мне казалось, что карточки уже давно стали доступны кроме цены ещё и по алгоритму работы для широких масс.
migray
Карточки доступны, алгоритм, если не требовать высоких скоростей, тоже.
Всего на всего SPI, програмная реализация его уже встречалась, возможно даже на этом форуме.

Но програмная реализация требует ресурсов, да и скорость крайне низкая получается.
Большинство для этого берут проц с аппаратным SPI и выигрывают в простоте программы и скорости работы с карточкой.

Возможно поэтому тема "карта памяти на атмеловские 51-ые процы" малоинтересна широкому кругу любителей.
Angelborn
Тут вобщем-то важен сам процесс!
Мне нравятся подобные дискуссии, где какой-то тип создаёт ветку, с просьбой помочь в создании своего mp3-плейера, а ему пишет другой тип, мол не морочь голову и купи за 30 баксов готовый.
Понятное дело, что могу взять библиотеку на си для авр, скомпилить и получить то, что хотел.
НО! Меня интересует ресурс этого простого процессора (2051), в частности реализация программного SPI, возможно, что и ЦАП сделаю R-2R. Вобщем простая конструкция будет.
Напомню, что уже широко известный Igor Cesko взял AT90S2313 и просто сделал на нем программную реализацию USB с поддержкой RS-232 и LPT. Сейчас на базе этой разработки в сети уйма самоделок с индикаторами, лампочками, ИК-датчиками и просто конверторами интерфейсов.
А зашёл бы он на форум и что бы получил в ответ? "Эй чувак, не гони, купи FT232 и не парь мозги!" sad.gif
oran-be
Цитата
НО! Меня интересует ресурс этого простого процессора (2051), в частности реализация программного SPI, возможно, что и ЦАП сделаю R-2R. Вобщем простая конструкция будет.

Программный SPI - примерно 250 кбит при 24 Мгц тактовой. Делим на 8 - получаем примерно 30кБайт в сек. Для речевого качества может и хватит. А попытка реализации FATа для 2051 законцится FATально, поскольку он с его 128 байтами памяти погибнет сразу во цвете лет при попытке обработки 512 байтных страниц флеш-карты. Но помечтать, конечно, можно...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.