Например TDA7294

Форум РадиоКот • Просмотр темы - Драйвер для MICRO_SD карт
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт май 18, 2021 05:31:44

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 114 ]  1, , , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 15:11:00 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 1
Написал маленький драйвер для MICROSD карточек, так как нормального драйвера не нашел.
Использует 5 переменных и буфер на 512 байт.
Код переносим достаточно две процедуры исправить это настройка SPI_SETUP и отправка/принятие байта SPI_SEND + дефайны для портов.
По умолчанию код написан в среде CooCox для процессора STM32F051RB, и настроен на SPI1.
Как демо пример можно использовать.
Драйвер читает и пишит посекторно, нужно указать только номер сектора.
На данный момент реализовал поддержку SD, SDSC, SDHC, MMC карт.
Какие у меня были читались и писались без проблем.
Драйвер будет поддерживаться и обновляться, так что если встретиться ошибка пишите.
Вобщем тестируем и пишим об ошибках. )
Пишите на каких картах тестировали, скорость обмена

Описание в MICROSD.h


Вложения:
DRIVER_MICROSD_STM32F051.zip [2.73 KiB]
Скачиваний: 3937

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Последний раз редактировалось Oxford Сб июн 29, 2013 19:43:41, всего редактировалось 3 раз(а).
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 17:00:56 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Как раз то что сейчас очень для меня актуально! Собственно назрел вопрос. А в чем разница между MICRO_SD и просто SD ? На сколько я понимаю разницы никакой!


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 19:09:22 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Ну впринципе разницы нет, размеры если только разные, просто так захотелось назвать ))

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 19:25:20 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Пытаюсь все это прикрутить к STM32F4.... пока безуспешно ))


Вернуться наверх
 
Барьерные силовые клеммы от Degson – расширение складского ассортимента Компэл

Обновленная линейка барьерных клеммных блоков Degson, поступивших на склад Компэл, содержит широкий ряд клемм, подходящих для соединения проводников различного сечения (от 22AWG до 10AWG). Барьерные клеммные колодки сочетают в себе удобство, простоту и надежность соединения. Это достигается за счет ответственного производства и использования высококачественных материалов. Винтовые клеммные блоки барьерного типа Degson предназначены в первую очередь для коммутации в сильноточных цепях, например, в распределительных и измерительных системах.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 19:38:51 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
SPI запустили сигнал есть?
В какой среде пишите?
Какой процессор?
Какой номер SPI используется?
CS на какой ноге?

Там на F4 функции имеют названия другие, так как я под ядро M0 писал, потому как в M0 SPI расширенный и имеет несколько функций у него фрейм от 4 до 16 Бит.

Для проверки SPI с функциями из драйвера:

1. Соединить MOSI + MISO ноги на плате в кольцо.

2. SPI_SETUP(SPI_BaudRatePrescaler_256); Настроить порты и SPI интерфейс.

3. READ = SPI_SEND(0xAA); // В цикле отправляем байт и смотрим осцилом или анализатаром ноги CLK, MOSI

READ должен содержать тот же байт что и отправили.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 19:52:28 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
На чтение мне постоянно нули выдает! В каком формате должна быть карта? Или формат тут не имеет значение?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 19:59:03 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Формат имеете ввиду файловую систему? То без разницы какая FAT.
Сектора аппаратные. FAT программная.
Начало логического диска может лежать в разных секторах, в 0 секторе MBR находится.
Логический диск может лежать где угодно. Начало у меня было в секторах 63 и 135.

SD_INI(): какое у вас число возвращает?

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 21:26:43 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Не могу вывести, драйвер TFT вешается почему то


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 21:47:52 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
На сколько я понимаю fsmc не нравится что я активирую SPI1
попробовал перекинуть на SPI3 вот так
Код:
   SPI_InitTypeDef   SPI_InitStructure;
   GPIO_InitTypeDef GPIO_InitStructure;


   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); 
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);   
   
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;     // INIT NSS
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
   GPIO_Init(GPIOA, &GPIO_InitStructure);





   GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_SPI3);  // INIT MISO/MOSI/SCK
   GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_SPI3);
   GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_SPI3);

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
   GPIO_Init(GPIOC, &GPIO_InitStructure);

   // Set SPI interface
   SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
   SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
   SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
   SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;
   SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
   SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
   SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_256; // lowest  speed  for init
   SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;

   SPI_Init(SPI3,&SPI_InitStructure);
   SPI_Cmd(SPI3,ENABLE);     //Enable  SPI3
   CS_DISABLE;


но все равно TFT не реагирует


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 22:04:02 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Полярность еще для карточки
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

А где включение тактирования PORTA?
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

NSS нога для MicroSD не нужна нога.
От SPI требуется три ноги SCK, MOSI, MISO.
CS выбор карты программно делается отдельной ногой.

Поэтому нужно
PC10 - SCK
PC11 - MISO
PC12 - MOSI
И CS можно тоже на какуйнить ногу повешать PORTC

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Последний раз редактировалось Oxford Сб июн 29, 2013 22:21:20, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 22:17:38 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
SPI3 находится у F4 на порте C


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 22:23:02 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
У вас
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // INIT NSS
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStructure);

NNS на порту A это для кого? Вы PA9 не включили тактирование, вы его для CS инициализируете?
для CS так:

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOA, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // CS chip select
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 22:38:17 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Так, добился того что TFT отвечает... и ответ от SD_INI получается 0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 22:45:21 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
SD_READ возвращает 1
SD_WRITE возвращает 0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб июн 29, 2013 23:48:55 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Так эээ... получается по кодам ответа все нормально :shock: НО каково было мое удивление когда вытащив карту я получил те же значения)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вс июн 30, 2013 01:04:59 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
SD_INI возвращает 0 значит инициализация не прошла, ошибка.
Читать и писать бессмысленно после этого.

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

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вс июн 30, 2013 01:42:59 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Я уже кручу кручу и ничего не получается...


Может дело в //SPI_RxFIFOThresholdConfig(SD_SPI, SPI_RxFIFOThreshold_QF); я не знаю чем его заменить в F4


Меня выкидывает вот здесь if (SPI_CMD(0, 0, 0x95, 0x01)) return SD_ERROR; //IDLE


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вс июн 30, 2013 02:49:36 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Получится!

SPI_RxFIFOThresholdConfig(SD_SPI, SPI_RxFIFOThreshold_QF);
Убрать это для M0 ядра только специфично.
SPI_CalculateCRC(SD_SPI, DISABLE);
тоже убрать здесь не надо это

Выкидывает все верно потому что карта не отвечает.
На все ноги подтяжку сделай те CS тоже подтянуть надо, я имею ввиду внутри камня. внешне не надо.

SPI еще исправьте полярность и фазу
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

MOSI MISO CLK CS контакты правильно подключили к флешке? Не перепутали?

Изображение

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вс июн 30, 2013 13:21:01 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Я подключаю вот этот модуль, а не саму карту.... из-за этого может быть проблема?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вс июн 30, 2013 18:13:56 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Может, там через буферы сделаны сигналы. Все возможно.

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

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 114 ]  1, , , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y