Mmc/sd диктофон на pic16f877a

MMC/SD диктофон на PIC16F877A

mmc/sd диктофон на pic16f877a

Это мой первый цифровой диктофон с использованием PIC с ОЗУ всего 256 байт. Обычно люди скажут, что нельзя получить доступ к MMC / SD карте памяти с помощью микроконтроллера с объемом ОЗУ менее 512 байт. Но я смог это сделать, но возможно есть некоторые ограничения.

Здесь я использовал PIC16F877A для доступа к MMC карте памяти. MMC связана с PIC16F877A по интерфейсу SPI. Я не использовал никакой файловой системы. МК записывает 8 битный цифровой сигнал с АЦП на MMC  с помощью нескольких команд записи блока.

Один блок состоит из 512 байт и также называется сектором. Точно так же он читает 8 битные цифровые данные. После прочтения каждого байта, он отправляется в регистр ШИМ для генерации ШИМ-сигнала, соответствующего аудиозаписи.

Затем сигнал проходит через ФНЧ, усиливается и выводится на динамик.

Качество звука было выше моих ожиданий. Это связано с высокой скоростью передачи данных.

MMC связана с PIC16F877A через встроенный в него 8 битный последовательный интерфейс SPI. Для этого используется три вывода: • Последовательный выход данных (SDO) – RC5/SDO • Последовательный вход данных (SDI) – RC4/SDI/SDA

• Serial Clock (SCK) – RC3/SCK/SCL

MMC работает от 3.6В, а PIC16F877A от 5В. Нам необходим преобразователь уровня напряжения для сопряжения PIC и MMC. Для этого используются резисторы подключенные к CS, CLK и SCK. Теперь, когда 4.3В с PIC появляются на любом из этих трех выводов, то напряжение на соответствующих выводах MMC будет 2.48В.

Работа с MMC

Чтобы начать операцию с MMC, мы должны отправить команду длиной 6 байт(см. рисунок), которая разная для каждой операции.

Вот, как это будет выглядеть в коде:

void command(char command, unsigned long int fourbyte_arg, char CRCbits )
   
{
   spi_write(0xff);
   spi_write(
0b01000000|command);
   spi_write((
unsigned char)(fourbyte_arg >> 24));
   spi_write((
unsigned char)(fourbyte_arg >> 16));
   spi_write((
unsigned char)(fourbyte_arg >> 8));
   spi_write((
unsigned char)fourbyte_arg);    spi_write(CRCbits);    spi_read();}

Приведенные выше команды это функция  управления.  Они отправляют 6 байтную команду MMC.
В MMC командах наиболее значимым байтом является командный байт. В командном байте 2 “MSB” бита всегда 01. Остальные 6 бит это фактическая команда. Соответственно 6 бит CMD0 будут 000000 и 2 бита MSB будут 01. Т.е.  0b01000000 (двоичная.

сист) или 0x40(шестнадцатеричная) или 64(десятичная). Потом идет 4 байта которые несут определенную информацию для передачи в MMC, т.е. информацию, такую ​​как адрес сектора, размер блока и т.д. Это зависит от команды, требует ли она 4 байта аргумента или нет. Если нет, то неиспользуемые необходимо заполнить нулями.

Потом идет байт CRC, который не используется в режиме SPI и его мы тоже заполняем нулями.

Команда 0 (CMD0) выглядит так:

   command(0,0,0×95);

Существуют различные типы команд ответов. В некоторых случаях мы должны постоянно проверять ответы, ожидая правильный. Есть команды для чтения, записи и т.д. Каждая команда состоит из 512 байт данных(1 сектор). Мы не можем прекратить операцию чтения или записи в середине блока.

Инициализация MMC

Когда питание MMC подключено, нам нужно инициализировать MMC и перевести её в SPI режим. Это требует ряда команд, а также мы должны проверить ответ.

На самом деле инициализации была главной проблемой, с которой я столкнулся в самом начале. Прошло 3 дня, прежде чем я успешно инициализировал MMC карту.

Передача данных

Чтение одного блока

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

Чтение нескольких блоков

Команда чтения нескольких блоков читает последовательно несколько блоков по указанному адресу. Если номера блоков небыли указаны перед этой командой, то буду читаться блоки до  CMD12. Байт полученный сразу после CMD12 необходимо уничтожить до получения ответа от CMD12.

Запись одного блока

Когда команда записи принята, то хост-контроллер посылает пакет данных на карту после байта пространства. Формат пакета такое же, как и при чтении. Значение CRC может быть любым.

После записи данных карта памяти подает сигнал об успешной записи. Большинство карт не может изменить размер блока, по умолчанию он равен 512 байтам.

В режиме SPI сигнал CS должен быть отправлен во время операции.

Запись нескольких блоков

Команда чтения нескольких блоков читает последовательно несколько блоков по указанному адресу. Если номера необходимых блоков не указаны, то будут записываться все блоки по порядку. Во время чтения сигнал занятости появится на линии DO.

Воспроизведение аудио

Для этого я использовал встроенный в  PIC ШИМ модуль в качестве ЦАП. ШИМ это хорошее и дешевое решения для ЦАП. Если я ставлю 8 бит данных в реестре CCPR2L, он будет генерировать ШИМ сигнал, соответствующий этим данным. Этот сигнал может быть усилен и отправлен на динамик.

АЦП

АЦП используется для преобразования аналогового звукового сигнала с предусилителя. PIC16F877A имеют встроенный 10-битный АЦП. Я использовал только 8 бит для удобства хранения данных на MMC.

Оригинал статьи

Прикрепленные файлы:

  • voice_recorder.rar (4 Кб)

Источник: http://cxem.net/mc/mc105.php

Музыкальный звонок на микроконтроллере

Окончательный вариант звонка был создан в несколько этапов, причем изначально я не намеревался всерьез делать данное устройство, просто иногда возникали мысли типа: а неплохо было бы разработать свой вариант проигрывателя музыкальных файлов с использованием карты памяти…

Все началось с изучения основных команд для работы с картой памяти MMC, это команды сброса, инициализации, чтения и т.д., причем все эти команды поддерживаются и SD картами. Для практической тренировки я решил собрать устройство для вывода картинок с карты памяти на дисплей Nokia 1110i.

В качестве микроконтроллера был выбран PIC16F628A. Сначала я работал без файловой системы FAT, то есть записывал байты картинок в определенную область карты памяти, а точнее в область данных файловой системы. Картинка имела фиксированный адрес, по которому микроконтроллер считывал ее.

Кстати записать данные на карту памяти по любому адресу можно с помощью программы WinHex.

Далее я начал изучать файловую систему FAT16, и написал новый код для микроконтроллера.

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

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

К микроконтроллеру для удобства подключил дисплей от Nokia, для вывода имен файлов имеющихся на карте памяти, а также отображения различных ошибок. Музыкальными файлами являлись самые простые WAV файлы, которые использовались в других подобных устройствах найденных в сети. Итак, я написал новый код и прилепил к нему предыдущие наработки по работе с файловой системой.

В качестве цифро-аналогового преобразователя для вывода звука в первое время использовал R-2R матрицу, составленную из резисторов, так как количество линий микроконтроллера позволяло использование такой матрицы. В дальнейшем под это дело начал использовать ШИМ модуль. Первоначально на дисплей выводились короткие имена файлов в формате 8.

3, немалыми усилиями был расшифрован алгоритм записи длинных имен в системе FAT, после чего я подправил код микроконтроллера и теперь можно было лицезреть полные имена файлов на дисплее.

По прошествии еще некоторого количества времени, у меня появилась мысль: а не получится ли запихнуть этот код, убрав все лишнее в тот самый PIC16F628A? Естественно от дисплея пришлось отказаться, и вместе с ним сократился объем кода, путем выпиливания больших таблиц знакогенератора. И наконец, мне удалось перенести устройство на другой микроконтроллер.

В предлагаемом звонке для хранения мелодий используются карты памяти SD или MMC, отформатированные под файловую систему FAT16 (c 2018 года есть версия с поддержкой файловой системы FAT32 и карт памяти SDHC, подробней в конце статьи). В качестве мелодий используются звуковые файлы формата WAV.

Устройство может воспроизводить большое количество мелодий, а также его можно использовать в качестве простого проигрывателя WAV файлов. Устройство собрано на широко распространенном микроконтроллере PIC16F628A, и имеет два режима работы, которые устанавливаются с помощью переключателя SA1.

Верхнему положению переключателя соответствует режим “Проигрыватель”, а нижнему режим “Звонок”. Микроконтроллер проверяет состояние переключателя только один раз, после подачи питания.

Для смены режима необходимо отключить питание, установить переключатель в требуемое положение, и снова подать питание на устройство.

На транзисторе VT1 собран управляемый стабилизатор напряжения на 3,3В, для питания карты памяти. Управление стабилизатором осуществляется по линии порта RA3, при низком логическом уровне на этой линии транзистор VT1 закрыт, напряжение на его эммитере равно нулю. При высоком логическом уровне на линии, транзистор открывается, тем самым подавая питание на карту памяти. Напряжение на базе транзистора стабилизируется стабилитроном VD1.

В режиме “Звонок” после подачи питания, микроконтроллер производит настройку внутренних регистров, после чего переходит в спящий режим.

При нажатии кнопки SB1 (“Звонок/Воспроизведение”), микроконтроллер “просыпается”, о чем свидетельствует включение светодиода HL1, включает питание карты памяти, сбрасывает и инициализирует ее, далее ищет на ней звуковой файл. Поиск мелодий осуществляется по расширению WAV.

Найдя нужный файл, микроконтроллер воспроизводит его, отключает питание карты памяти, после чего снова “засыпает”, а светодиод HL1 гаснет. При следующем нажатии на кнопку SB1 все повторится, но будет воспроизведен следующий звуковой файл.

На карту памяти можно записать до 512-ти мелодий, это максимальное количество записей в корневом каталоге для файловой системы FAT16. После воспроизведения всех мелодий, начнется их повторное проигрывание. Кнопки SB2, SB3, SB4 в этом режиме не задействованы.

В режиме “Проигрыватель” после подачи питания микроконтроллер также выполняет настройку внутренних регистров, включает питание карты памяти, производит процедуру ее сброса и инициализации, в случае успешного выполнения процедуры вспыхивает светодиод HL1.

Далее выполняется поиск WAV файла, как только файл будет найден, микроконтроллер перейдет к опросу состояния кнопок.
При нажатии кнопки SB1 начнется непрерывное воспроизведение всех звуковых файлов имеющихся на карте памяти.

Кнопкой SB2 (“Стоп”) можно остановить проигрывание на текущей мелодии, кнопками SB3 (“Следующий”) и SB4 (“Предыдущий”) переключаются между мелодиями, переключение возможно при проигрывании, а также после остановки.

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

В этом случае необходимо проверить надежность соединения с картой памяти, или попробовать заменить ее. В режиме “Звонок”, при ошибке сброса и инициализации, также прозвучат два коротких сигнала низкого тона, после чего, как и прежде микроконтроллер отключит питание карты и перейдет в спящий режим.

Если карта памяти перестанет отвечать на команды или просто “зависнет”, то в режиме “Проигрыватель”, микроконтроллер отключит и включит питание карты, затем заново сбросит и проинициализирует ее. В режиме “Звонок”, после “зависания” карты, микроконтроллер просто отключает питание карты и “засыпает”.

При отсутствии WAV файлов на карте памяти, прозвучат три коротких сигнала низкого тона, после чего “Проигрыватель” перейдет к опросу кнопок, при нажатии которых будет звучать тот же предупреждающий сигнал, а в режиме “Звонок”, после сигнала об отсутствии файлов, микроконтроллер отключит питание карты памяти и “заснет”.

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

Для согласования логических уровней микроконтроллера и карты памяти, установлены делители напряжения на резисторах R6-R11.

Звук выводится с помощью востренного в микроконтроллер модуля ШИМ, частота которого в данном устройстве равна 78,12кГц. Звуковой сигнал сглаживается фильтром R14C9, далее поступает на усилитель мощности, построенный на микросхеме DA1 TDA2003. Переменным резистором R18 регулируют громкость звука. Элементы R15, C11 необходимо установить при самовозбуждении усилителя.

Устройство поддерживает звуковые файлы формата WAV (PCM, 16кГц, 8 бит, моно, несжатый), файлы с другими параметрами проигрываться не будут, поэтому, если необходимо, выбранные звуковые файлы преобразуют с помощью программ-конвертеров. При записи на карту памяти, WAV файлы могут иметь любые имена.

Файловая система FAT16 не поддерживает носители информации имеющие объем больше 2 Гб, поэтому это максимальный объем для карты памяти, которую можно использовать в устройстве.

Были протестированы 4 карты формата microSD, разных фирм и объемов, это Kingston 1GB, Kingmax 512MB, Silicon Power 2GB, Transcend 1GB.

MMC карты также должны работать, я не смог это проверить, из-за отсутствия такой карты.

В устройстве применены постоянные резисторы МЛТ. Переключатель SA1 – ПД 9-2. Кнопки SB1-SB4 тактовые TS-A3PS-130. Стабилитрон КС139А можно заменить на импортный, с напряжением стабилизации 3,9В.

Динамическую головку BA1 можно использовать любую, мощностью 2 — 4 Вт с сопротивлением катушки 4 или 8 Ом. Вместо транзистора КТ503В можно установить КТ3102АМ.

Микросхема TDA2003 заменима на TDA2002, TDA2008, К174УН14, ее необходимо установить на теплоотвод площадью не менее 60 см2.

Все детали размещены на печатной плате из односторонне фольгированного стеклотекстолита. На печатной плате предусмотрены отверстия для подключения внешней кнопки “Звонок”, которая дублирует кнопку SB1. Разъем для карты памяти самодельный.

В качестве источника питания можно использовать нестабилизированный сетевой блок питания с выходным напряжением 9–12В и током не менее 0,5А. Программа для микроконтроллера написана на ассемблере в среде MPLAB.

Я заметил, что у некоторых людей возникают проблемы при повторении устройства, а именно звучит сигнал низкого тона длительностью в одну секунду, указывая на неправильные параметры WAV файла. Поэтому скажу немного о структуре WAV файла.

У каждого WAV файла в заголовке есть идентификатор в виде слова WAVE, а также идентификатор в виде слова data, а также есть такие параметры как: частота дискретизации, разрядность, параметр — сжатый/несжатый, параметр — моно/стерео. У файла должны быть правильные параметры указанные выше в статье.

Если параметры не будут совпадать или микроконтроллер не найдет идентификаторы WAVE и data, появится сигнал об ошибке. Некоторые программы – конвертеры, возможно, записывают неправильные параметры. Поэтому если появляется ошибка, надо попробовать другую программу, я например, использовал Sound Forge.

Также ниже можно скачать тестовые музыкальные файлы.

Источник: http://radiolaba.ru/microcotrollers/muzyikalnyiy-zvonok-na-mikrokontrollere.html

:: ПРОСТОЙ САМОДЕЛЬНЫЙ ДИКТОФОН ::

   В этой статье мы рассмотрим схему простейшего диктофона. Иногда возникает необходимость записи сигналов или фрагментов речи с небольшой длительностью. Данное устройство предназначено для записи звука в течении не длительного времени.

Микрофон использован электретный, его можно найти повсюду, например в китайском магнитофоне, также можно использовать микрофон от гарнитуры мобильных телефонов. Желательно подобрать микрофоны с большой чувствительностью для наилучшей записи звука.

К сожалению время записи очень короткое, составляет всего 16 секунд, но для своих размеров это очень хорошо. Схему простого диктофона смотрим ниже: 

   Питанием нашего диктофона может служить литий – ионный аккумулятор от мобильного телефона или блютуф гарнитуры, также возможно использование двух последовательно соединенных литиевых таблеток с напряжением 3 вольт. Также в качестве источника питания можно использовать три пальчиковые батарейки, в общем выбор источников питания достаточно велик, главное иметь рабочее напряжение от 3,5 до 6 вольт. 

   Диктофон собран на интегральной микросхеме ISD1416. Микросхема в себе содержит высококачественный микрофонный предусилитель с АРУ, АЦП (частота дискретизации 8 кГц) и 128К памятью, каждая ячейка которой способна запоминать 256 уровней (а не два, как в простой бинарной). 

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

   Запись включается кнопкой S1, а воспроизведение – S2. В режиме воспроизведения звука на полной громкости, диктофон потребляет ничтожный ток – всего 30 ма, а в режиме хранения – всего 90 мкА. Такие параметры позволяют использовать данное устройство в широких масштабах.

Например устройство может быть использовано как автоответчик, или например сигнализация с голосом хозяина, в общем можете записывать все, что угодно с длительностью не более 16 секунд. Микросхема встречается также в SMD корпусе.

Кнопки самые обыкновенные, например от панели магнитофонов или от плееров, распиновка микросхемы прикреплена к статье.

Поделитесь полезными схемами

   Недавно у меня из строя вышел паяльник который был приобретен несколько дней назад. Китайские производители завоевали рынок своими не слишком качественными изделиями, уделяя особое внимание на внешний вид устройства, так что если решите себе новый паяльник купить, крайне не советую покупать тот, который на фотографиях, больше недели работать не будет – это десятый подобный паяльник который ломается!
   Недавно был разработан способ для зарядки мобильного телефона без проводов! Представьте себе: вы держите сотовый телефон в руках и беседуйте с другом, и в этот момент ваш телефон заряжается, а что самое главное – от него не торчат провода зарядного устройства. Предлагаю два способа реализации этой идеи, вернее способ один – метод индукции тока без проводов, а вариантов конструкции такого беспроводного зарядного устройства целых два.  
Читайте также:  Простой бп своими руками
    Принципиальная схема простого ваттметра для приблизительного контроля потребляемой мощности. 
   Автомагнитола Alpine всем своим видом чётко показывает солидность и стиль, присущие линейке продукции фирмы Alpine. Характерные большие кнопки, размещённые на левой стороне панели, радуют глаз цветом подсветки. Эти кнопки регулируют выбор треков и папок, включение и выбор источника, переключение банков памяти. Символьный дисплей, расположенный чуть правее, выглядит довольно крупным на общем фоне. 

Источник: http://samodelnie.ru/publ/samodelnye_pribory/prostoj_samodelnyj_diktofon/5-1-0-58

Работа с SD/MMC картой

   В данной статье рассмотрим один из способов  применение в своих устройствах SD (Secure Digital Memory Card) далее SDC и MMC карт (Multi Media Card),  которые на сегодняшний день являются самыми популярными картами памяти для различных устройств как в промышленности, так и в быту.

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

 С SD/MMC картой можно работать обращаясь к данным непосредственно по адресу сектора без применения файловой системы, что в некоторых случаях упрощает разработку устройства. Именно этот способ мы и рассмотрим далее…

                                                Подключение к микроконтроллеру.

    В качестве примера возьмем карту SD/MMC максимальной емкостью до 2 ГБ,  у меня под рукой оказалась  microSD ( отличается от старшего брата  в основном только меньшими размерами ) на нее и будем ориентироваться.   Карты    могут работать в двух режимах обмена данными – это MMC протокол и SPI.

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

Кроме этого практически все микроконтроллеры имеют на своем борту аппаратный модуль SPI и задача сопряжения устройства с картой  легко реализуется.

Подключение к МК SD, microSD карт.

Подключение к МK MMC карты.

   .

  Работоспособность карты сохраняется при питании  от 2 до 3,6 вольт, соответственно удобно применить микроконтроллер (далее МК)  с таким же питанием или  по крайней мере в этом диапазоне, к примеру 3,3 вольта (PIC18F25k20). Если МК применен с 5 вольтовым питанием необходимо согласовать уровни  сигналов.

  Все MMC/SDC имеет в своем составе встроенный микроконтроллер управляющий   flash-памятью (чтения, записи и др.)  при помощи специальных команд. Ниже в таблице показан набор основных команд при работе с картой. Желтым цветом выделены команды при работе с SDC картами.

Набор основных команд.

  Кадр команды имеет фиксированную длину 6 байт. Байты передаются последовательно, начиная с  номера индекса команды CMD(0-64), потом  4 байт аргумента  и 1 байта контрольной суммы (CRC).

  Проверка CRC в режиме SPI не является обязательной, но само поле  должно быть заполнено для целостности кадра. Исключение составляет команда CMD0, где CRC должно иметь правильное значение, т.к. режим SPI до получение этой команды еще не активирован. На рисунке № 1 показан формат передачи команды и получения ответа от карты.

 Более подробно по командам можно прочитать в спецификации от MMCA и SDCA.

Рис.№1 

   Как видно из рисунка после передачи кадра команды необходимо продолжать чтение байтов (Ncr) от microSD  до получения ответа (R1), при этом уровень CS должен быть активным “0”.

   В зависимости от индекса команды ответ может быть не только R1 (см. набор основных команд ) на CMD58 ответ R3 (R1 и завершающее 32-битное значение OCR), а некоторым командам нужно больше времени NCR и они ответ будет R1b.

Это ответ R1, за которым идет флаг занятости (сигнал на линии “DO” удерживается картой в низком уровне, пока продолжается внутренний процесс). Контроллер хоста должен ждать окончания процесса, пока “DO” не перейдет в состояние высокого уровня (т.е. дождаться  0xFF).

А так же R2 при запросе состояния регистра STATUS.

Ответ R1 содержит 1 байт, его структуру можно посмотреть в таблице ниже.  Ответ R2 состоит из двух байт, первый байт R1 и второй R2 (см. таблицу  структуры R2). А ответ R3 соответственно из 5 байт.

    Ответ R1 при значении  0х00  означает успешное завершение команды, иначе будет установлен соответствующий флаг.

Структура ответа R1.

Структура  ответа R2.

Инициализации  в  режиме SPI.

   После сброса и подачи питания карта по умалчиванию устанавливается в режим работы по протоколу MMC (Serial Peripheral Interface), для перевода в режим SPI необходимо сделать следующее:

  1. После достижения питания  2.2 В, подождать не менее миллисекунды,  установить на линиях DI и CS высокий уровень и выдать около  80 импульсов на вывод  CLK. После такой процедуры   карта будет готова  принять родную команду.
  2. Послать команду CMD0 (программный сброс). Карта должна ответить (R1) с установленным битом ожидания (0x01).
  3. Послать команду CMD1 (для начала инициализации карты). Ждать ответа 0х00 для подтверждения завершения процесса инициализации.

   Напомню, что команда CMD0 должна содержать корректное  поле CRC.  Рассчитывать нет смысла, так как  аргументов в этой команде нет, по этому оно постоянно и имеет значение 0х95. Когда карта войдет в режим SPI, функция CRC будет отключена  и  не будет проверяться. Опция CRC может быть снова включена командой CMD59.

  В результате команда CMD0 будет выглядеть так: 0х40,0х00,0х00,0х00,0х00,0х95.

  • индекс команды – 0х40.
  • аргумент- 0х00,0х00,0х00,0х00.
  • CRC-0х95.

  Что касается 80 импульсов, то их можно сформировать передавая  по SPI  значение 0хFF 10 раз подряд  при установленных высоких уровнях на линиях DI и CS.

  После простоя  более 5 мс карта памяти  переходит в энергосберегающий режим, и способна принимать только команды CMD0, CMD1 и CMD58.   По этому процесс инициализации  (CMD1) необходимо практически каждый раз повторять при чтении/записи блока данных или делать проверку состояния карты.

   Для SDC-карт  в случае отклонения команды CMD1  рекомендуется использовать команду ACMD41.

  Сам процесс инициализации может занять относительно длительное время (в зависимости от объема карты) и может достигать  сотен миллисекунд.

Чтение и запись блока данных.

   По умолчанию в режиме SPI   обмен между микроконтроллером и картой ведется блоками по 512 байт, по этому для записи даже одного байта придется сначала прочитать весь блок и изменив байт перезаписать обратно. Размер блока может быть изменен в регистре CSD карты памяти.

   Воизбежания   ошибки адресации  при выполнении команд чтения/записи необходимо что бы адрес указывался  четко  начала сектора. Для этого можно сбрасывать бит “0”  3 байта адреса сектора, т.е. делать его четным, а младший всегда должен иметь значение 0х00.

Чтение  блока данных.

   Алгоритм чтения блока данных следующий:

  • Если простой карты был   более 5 мс передаем команду CMD1 (ответ R1).
  • После подтверждения инициализации  передаем команду CMD17 (ответ R1), с адресом необходимого сектора.
  • Передаем 0xFF до получения стартового байта 0xFE .
  • Принимаем блок данных (по умалчиванию 512 байт)  и 2 байта CRC.

  Блок  данных может быть меньше 512 байт при изменении длины блока командой CMD16.

  Значение CRC не обязательно, но  процедура принятия (передача 0хFF от МК) необходима.

Чтение блока.

  Запись  блока данных.

Алгоритм записи блока данных следующий:

  • Если простой карты был   более 5 мс передаем команду CMD1 (ответ R1).
  • После подтверждения инициализации  передаем команду CMD24 (ответ R1), с адресом необходимого сектора.
  • Передаем  стартовый байт 0xFE .
  • Передаем блок данных (по умалчиванию 512 байт)  и 2 байта CRC.
  • Получаем байт подтверждения записи.
  • Ждем окончания записи (изменения байта 0х00).

  Блок  данных может быть меньше 512 байт при изменении длины блока командой CMD16.

  Значение CRC не обязательно, но  процедура передачи любыми значениями  необходима.

  Оценку  простоя можно программно и не делать, а сразу  давать команду инициализации. При программной  реализации столкнулся с некорректной записью, почему то все байты были записаны в сектор со сдвигом влево.  Проблему удалось решить, только передавая стартовый бит  (0xFЕ) два раза.

Запись блока.

Байт подтверждения при записи блока данных.

Запись/чтение нескольких блоков подряд.

При помощи команд  CMD18, CMD25  можно прочитать/записать несколько блоков подряд или так называемое многоблочное чтение/запись. Если не было задано количество блоков, то процесс чтения/записи можно остановить командами CMD12 при чтении , а так же  передачей маркера “Stop Tran”  при записи соответственно.

Практическое применение.

    Практическое применение  карт памяти довольно широко.  В последней своей конструкции  задействовал microSD для записи  показаний  с различных датчиков (температуры, сигнализации) в течении дня каждый час. Данные сохраняются следующим образом:

  • Год берется последние две цифры – это соответствует первому (главному) байту адреса сектора карты памяти.
  • Месяц,  две цифры – это соответствует второму, старшему байту адреса сектора карты памяти.
  • День, две цифры умножаются на 2 (во избежание наезда вне границы сектора) – это третий, средний байт адреса сектора карты памяти.
  • Младший, четвертый  байт соответственно всегда “0”.

В результате упрощается поиск данных по дате, достаточно просто перевести запрос в адрес сектора  и выполнить чтение с карты. При таком методе данные можно хранить в течении нескольких лет. Правда есть и недостатки, остается достаточно много неиспользованного места. Хотя при желании можно использовать для других задач.

Кому надо   скину  фрагмент кода на ассемблере для 18 пиков.

Вопросы можно задать на форуме…..

Источник: https://chipmk.ru/index.php/razdely/61-programmnye-resheniya/32-rabota-s-sd-mmc-kartoj

Схема цифрового диктофона

Схема цифрового диктофона

   Усовершенствованный цифровой диктофон с функцией записи на карту памяти. Представляю вашему вниманию цифровой диктофон с накопителем на карту памяти.

Этот диктофон может долго записать речь в формате wave, имеет маленькие размеры, очень малый ток потребления в рабочем режиме, но ее конструкция достаточно сложна и если вы не мастер, то крайне не советую повторить конструкцию диктофона (но можно испытать свое счастье).

   Диктофон собран на логичном эленменте и в связи с этим нужно под рукой иметь паяльник для пайки микро деталей. Максимальное время записи равна емкости карты. Емкость карт от 512 мегабайт до 4 гегабайт. На карте максимальное допустимое число файлов 510.

При покупке карт емкостью 4 Гб следует пристально обратить внимание на то, чтобы приобретаемая карта была строго microSD, а не microSDHC. Формат microSDHC хоть и является производным от microSD, имеет существенные отличия от него.

С картами microSDHC диктофон работать не будет.

   Рекомендуемые модели microSD карт (512 Мб – 4 Гб).

Особенности программного алгоритма устройства допускают определение карты как переполненной, при реально оставшемся свободном месте не более 1,8 Мб/3,9 Мб/7,7 Мб/15,4 Мб для карт соответственно объемами 512 Мб/1 Гб/2 Гб/4 Гб.

Это не превосходит 0,5% от емкости карт, поэтому вряд ли может считаться существенным. Аккумулятор можно применить от мобильного телефона, но в моем случае применен литий – ионный аккумулятор от блютуф гарнитуры, ее емкость 250 миллиампер/час. 

   При глубоком разряде батарей устройство может продолжать процесс записи файла (с картой QUMO, продолжало писать при 2,2…2,3 В), но велик риск искажения информации при записи секторов на карту, в следствии чего в моменты автосохранения файла в соответствующий сектор корневого каталога файловой системы, может записываться искаженная, некорректная информация с данными (“шапками”) как записываемого файла, так и соседних по этому сектору корневого каталога других файлов. 

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

В данной модели диктофона эта проблема полностью решена применением Li-Pol аккумулятора с автоотключением при разряде до 3 В. microSD карта емкостью 512 Мб – 4 Гб, отформатированная в файловой системе FAT16 (просто FAT), вставляется в держатель, после чего устройство находится в режиме ожидания с минимальным потреблением тока.

 

   Для записи файла необходимо нажать на кнопку записи 1 раз, светодиод будет мигать. Устройство способно записывать звук на разныx частотныx режимаx: 8 кгц, 16 кгц, 32 кгц и 48 кгц.

Эту частоту задают следующим образом: при 48 кгц кнопку нажимают всего один раз, при 32кгц 2 раза и так далее , но если допустим устанавливаем 32 килогерц нужно нажать один раз затем посчитать 4 секунды и нажать во второй раз, соответственно для 16 килогерц нужно нажать три раза и делать паузы в 4 секунды перед нажатиями кнопки.

   Диктофон можно поместить в корпус маркера и дополнить юсб выxодом для удобства.

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

Допустимы произвольные операции с файлами: удаление, копирование, переименование, помещение в папки т.д. Микрофон благодаря дополнительному усилителю имеет повышенную чувствительность – до 10 метров. Микрофон применен от гарнитуры мобильного телефона.

Похожие схемы

Источник: http://aes2.ru/publ/skhema_cifrovogo_diktofona/1-1-0-23

Home » Download Area » pic16f877a-based-mmc-card-voice-recorder

Pic16f877a Based Mmc Card Voice Recorder

Full Download Pic16f877a Based Mmc Card Voice Recorder Games With Gameplay Walkthrough Full Guide And Tutorial Video HD. Download Pic16f877a Based Mmc Card Voice Recorder Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Pic16f877a Based Mmc Card Voice Recorder Cheat Files And Full List Command if Needed

[Download] PIC16F877A Based MMC Card Voice Recorder

Full Download PIC16F877A Based MMC Card Voice Recorder VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC16F877A Based MMC Card Voice Recorder Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC16F877A Based MMC Wav Player VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC16F877A Based MMC Wav Player Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC16F877A AUDIO WAV MMC SD Card VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC16F877A AUDIO WAV MMC SD Card Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC16F877A MMC WAV Player VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC16F877A MMC WAV Player Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download 16F877A COR REPEATER W MMC Card VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download 16F877A COR REPEATER W MMC Card Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Voice In1 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Voice In1 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Voice Recording And Playback ISD1790 PIC16F877A VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Voice Recording And Playback ISD1790 PIC16F877A Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download WAV Player Using PIC16F877A And SD Card VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download WAV Player Using PIC16F877A And SD Card Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Pic Sd Card VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Pic Sd Card Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Читайте также:  Программируемый цифровой коммутирующий таймер

Full Download 2D Hand Gesture Sign Language To Voice In Pic Micro Controller Embedded Projects VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download 2D Hand Gesture Sign Language To Voice In Pic Micro Controller Embedded Projects Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Based Audio Player 2 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Based Audio Player 2 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Music VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Music Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Simple Spectrum Analyser Using An ADC On A PIC16F877A VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Simple Spectrum Analyser Using An ADC On A PIC16F877A Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Voice In VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Voice In Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Speech Audio On PIC 18F Using PBP VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Speech Audio On PIC 18F Using PBP Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Sample Wave Player With Pic 16f877a And Sd 2gig VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Sample Wave Player With Pic 16f877a And Sd 2gig Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC16F877A MP3 Player VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC16F877A MP3 Player Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC18 SD BMP Reader VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC18 SD BMP Reader Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Microcontroller Sound Playback From EEPROM VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Microcontroller Sound Playback From EEPROM Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC GPS Voice Project VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC GPS Voice Project Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Using An SD MMC Card In Your Electronics Projects VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Using An SD MMC Card In Your Electronics Projects Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Wave Audio Player Using PIC18F4550 Microcontroller And SD Card VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Wave Audio Player Using PIC18F4550 Microcontroller And SD Card Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Pic 18f4550 SD Card Inicializaci N VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Pic 18f4550 SD Card Inicializaci N Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Sound Generator 2 Mp4 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Sound Generator 2 Mp4 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Electronic Circuit APR33A3 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Electronic Circuit APR33A3 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Interface SD Card With Pic Micro Controller 2 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Interface SD Card With Pic Micro Controller 2 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Voice Record And Playback From SD Card Using GR Sakura VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Voice Record And Playback From SD Card Using GR Sakura Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Speaker Interfacing With Pic Microcontroller To Genrate Sound VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Speaker Interfacing With Pic Microcontroller To Genrate Sound Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download VOICE RECORD PLAY BACK MODULE WITH MICRO CONTROLLER BASED LOOPING VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download VOICE RECORD PLAY BACK MODULE WITH MICRO CONTROLLER BASED LOOPING Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download 9 Smart Tech Voice Command Using PIC 16f877A VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download 9 Smart Tech Voice Command Using PIC 16f877A Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC Based Audio Player VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC Based Audio Player Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Tocando Arquivos De Udio Com PIC 18F452 E Um Cart O SD De 1Gbyte VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Tocando Arquivos De Udio Com PIC 18F452 E Um Cart O SD De 1Gbyte Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download My Voice On A Chip VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download My Voice On A Chip Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Audio PIC VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Audio PIC Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC PLAYER TROLOLOLOLO VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC PLAYER TROLOLOLOLO Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download General Purpose Input Output GPIO In PIC Microcontroller VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download General Purpose Input Output GPIO In PIC Microcontroller Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download DIY MMC Card Reader For The BBC Micro Pt4 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download DIY MMC Card Reader For The BBC Micro Pt4 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download PIC 18F25K20 AMICUS SOUND EFFECT VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download PIC 18F25K20 AMICUS SOUND EFFECT Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download 9p Speaker And 90p 16F1825 Pic VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download 9p Speaker And 90p 16F1825 Pic Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download LED DOT MATRIX SNAKE GAME VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download LED DOT MATRIX SNAKE GAME Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Digital Voice Recorder Player Using Secure Digital Card SD Card As The Storage Media VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Digital Voice Recorder Player Using Secure Digital Card SD Card As The Storage Media Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Pong Game On 10×8 LED Dot Matrix Display Using PIC16F877A VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Pong Game On 10×8 LED Dot Matrix Display Using PIC16F877A Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download 8×10 Led Dotmatrix Display VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download 8×10 Led Dotmatrix Display Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Pic Sound VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Pic Sound Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Spy Voice Recorder Speed Control Mod Attempt VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Spy Voice Recorder Speed Control Mod Attempt Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Full Download Interactive Audio Modulator Using PIC16F877 VIDEO and Games With Gameplay Walkthrough And Tutorial Video HD. Download Interactive Audio Modulator Using PIC16F877 Fo PC Wii U PS4 PS3 Xbox One Xbox 360 With Full List Command And Cheat Files if Needed AND DOWNLOAD THIS VIDEO

DOWNLOAD NOW

Источник: http://www.downloads-game.net/downloadgames/pic16f877a-based-mmc-card-voice-recorder

Подключение SD/MMC карт памяти к PIC-микроконтроллеру

MMC (MultiMedia Card) и SD (Secure Digital Memory Card) карты на настоящий момент являются самым недорогим устройством большой емкости. Эти устройства  идеально подходят для встраиваемых систем где необходимо сбор большого количества данных, а также для простой возможности непосредственного переноса данных на ПК.

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

Хороший сайт по информации о работе картами памяти (и не только) http://elm-chan.org/ рекомендую для ознакомления и получения дополнительной информации.

Габаритные размеры<\p>

Назначение выводом Микро SD для подключения по интерфейсу SPI.

Номер Обозначение Описание
1 Подключить к подтягивающему резистору
2 CS Выбор карты
3 DI Данные для записи в карту
4 Vdd Напряжение питания 2,7-3,3v
5 SCLK Синхроимпульсы шины SPI
6 Vss Общий
7 DO Данные чтения из карты
8 Подключить к подтягивающему резистору

Назначение выводом мини и SD карт для подключения по интерфейсу SPI.

Номер Обозначение Описание
1 CS Выбор карты
2 DI Данные для записи в карту
3 Vss Общий
4 Vdd Напряжение питания 2,7-3,3v
5 SCLK Синхроимпульсы шины SPI
6 Vss Общий
7 DO Данные чтения из карты
8 Подключить к подтягивающему резистору
9 Подключить к подтягивающему резистору
10
11

Вариант подключения для микро SD.  

Схема для тестового проекта.<\p>

Проект предназначен ка обучающий для понимания работы с файловой системой, основан на FatFs – Generic FAT File System Module от ChaN.

В программе присутствуют некоторые изменения для использования с PIC-контроллерами.

Используется подключение через USB (эмуляция COM-порта) и HeperTerminal как управляющую панель, можно протестировать работу самой библиотеки и PIC-контроллеров по работе с DS/MMC картами памяти. Пример настроен на кодировку 866.

Управляющие последовательности.

Низкоуровневые последовательности для работы с диском:

di  – инициализация логического устройства

[spoiler title=”Пример, выполнения инициализации” open=”0″ style=”2″]> diThe disc initialization. 0-ok,1-no.rc=0

>[/spoiler]

dd [ ] – чтение выбранного сектора с диска, просмотр на терминале (с загрузкой в буфер)

[spoiler title=”Пример, чтение сектора 0″ open=”0″ style=”2″]

>dd 0Read sector:000000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

Читайте также:  Идентификатор типа и выводов биполярных транзисторов на pic

00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 …………….000001C0: 0C 00 06 38 F8 B8 89 00 00 00 77 9F 3A 00 00 00 …8……w.:…000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA …………..U.

>[/spoiler]

ds – Просмотр состояния диска, устройства

[spoiler title=”Пример, выполнения команды” open=”0″ style=”2″]

>dsDrive size: 3842048 sectorsErase block: 8192 sectorsMMC/SDC type: 4CSD:00000000: 00 2E 00 32 5B 5A 83 A9 FF FF FF 80 16 80 00 91 …2[Z……….CID:00000000: 02 54 4D 53 42 30 32 47 00 08 30 17 D1 00 CA 45 .TMSB02G..0….EOCR:00000000: 80 FF 80 00 ….

SD Status:00000000: 00 00 00 00 00 00 00 28 02 02 90 02 00 32 00 00 …….(…..2..00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

>[/spoiler]

bd  – Просмотр буфера с указанного байта

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>bd 0Viewing Buffer R/W:00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

>[/spoiler]

be  [] … – Редактирование буфера

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>be 5 0x33 0x45 0x67
Editor buffer data R/W:

>bd 0Viewing Buffer R/W:00000000: 00 00 00 00 00 33 45 67 00 00 00 00 00 00 00 00 …..3Eg……..00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

>[/spoiler]

br   – Чтение сектора или секторов

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>br 0 1Reading data from the disk into the buffer: 0rc=0

>[/spoiler]

bw  – Запись буфера в сектор на диске  или запись буфера в несколько секторов на диске

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>bw 0 1Writing data into the buffer: 0rc=0

>[/spoiler]

bf  – заполнение буфера данными

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>bf 0x35The buffer is filled with the number of: 0>bd 0Viewing Buffer R/W:00000000: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000010: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000020: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000030: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000040: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000050: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000060: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000070: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000080: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000090: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000000A0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000000B0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000000C0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000000D0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000000E0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000000F0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000100: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000110: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000120: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000130: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000140: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000150: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000160: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000170: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000180: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 555555555555555500000190: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000001A0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000001B0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000001C0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000001D0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000001E0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555000001F0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555

>[/spoiler]

Последовательности для работы с файловой системой

fi – быстрая инициализация устройства

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>firc=0 FR_OK

>[/spoiler]

fs [] – Показать состояния логического диска (каталога)

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>fsFAT type = FAT16Bytes/Cluster = 32768Number of FATs = 2Root DIR entries = 512Sectors/FAT = 235Number of clusters = 60021Volume start (lba) = 137FAT start (lba) = 139DIR start (lba,clustor) = 609

Data start (lba) = 641

13 files, 24096 bytes.3 folders.1920672 KB total disk space.1919488 KB available.

>[/spoiler]

fl [] – Просмотр каталога. Без пути – текущего каталога

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>flD—- 2013/06/16 15:37 0 123D—- 2013/06/16 15:37 0 234D—- 2013/06/16 15:37 0 456—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt—-A 2013/06/01 10:03 3011 footer.txt—-A 2013/06/16 18:34 220 789.txt—-A 2013/06/16 18:55 2391 4523.txt4 File(s), 6908 bytes total

3 Dir(s), 1965555712 bytes free>

>fl 123D—- 2013/06/16 15:37 0 .D—- 2013/06/16 15:37 0 ..—-A 2013/06/01 10:03 3011 123.txt—-A 2013/06/01 10:20 1286 333.txt—-A 2013/06/01 10:03 3011 4523.txt3 File(s), 7308 bytes total2 Dir(s), 1965555712 bytes free

>[/spoiler]

fo  – открыть файл, режим: 0x01 – на чтение, 0x00 – , 0x80 – , 0x02 – на запись, 0x04 – создать новый файл, 0x08 – , 0x10 – , 0x20 – , 0x40 – .

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>fo 4 nini.txt
rc=0 FR_OK

>fc
rc=0 FR_OK

>fl
—-A 2061/01/23 00:48 0 nini.txtD—- 2013/06/16 15:37 0 123D—- 2013/06/16 15:37 0 234D—- 2013/06/16 15:37 0 456—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt—-A 2013/06/01 10:03 3011 footer.txt—-A 2013/06/16 18:34 220 789.txt—-A 2013/06/16 18:55 2391 4523.txt5 File(s), 6908 bytes total3 Dir(s), 1965555712 bytes free

>[/spoiler]

fc – Закрыть открытый файл

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>fcrc=0 FR_OK

>[/spoiler]

fe  – Переместить указатель в указанный адрес (внутри открытого файла, если файл на запись или внутри буфера если файл отрыт на чтение)

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>fo 2 footer.txt  // открываем файл на записьrc=0 FR_OK

>fe 0x12                 // перемещаем указатель

rc=0 FR_OKfptr = 18(0x12)

>[/spoiler]

fr  – читать файл (данные загружаются в буфер)

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>fr 200200 bytes read with 0 kB/sec.

>[/spoiler]

fd  – чтение буфера, вывод на экран информации

[spoiler title=”Пример, выполнения” open=”0″ style=”2″]

>fd 20000000000: EF BB BF 3C 3F 70 68 70 0D 0A 2F 2A 2A 0D 0A 20 …

Источник: http://open.e-voron.dp.ua/podklyuchenie-sd-mmc-kart-pamyati-k-pic-mikrokontrolleru/

Ссылка на основную публикацию
Adblock
detector