Например TDA7294

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



Текущее время: Вт май 18, 2021 18:22:14

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


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



Начать новую тему Ответить на тему  [ Сообщений: 114 ]    , 2, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вс июн 30, 2013 19:09:30 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
И так добился ЧТО SD_INI возвращает 4, но SD_READ и SD_WRITE возвращает 1

При SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
SD_WRITE возвращает 255
SD_READ = 1


И еще маленький нюанс. Если выключить от USB контроллер и включить то SD_INI возвращает 0 и если потом нажать на reset то уже возвращает 4.

проблему с возвращением SD_INI 0 после отключения USB решил.
Переставил
Код:
GPIO_PinAFConfig(GPIOA,SD_SPI_SCK_SOURCE,GPIO_AF_SPI1);
  GPIO_PinAFConfig(GPIOA,SD_SPI_MISO_SOURCE,GPIO_AF_SPI1);
  GPIO_PinAFConfig(GPIOA,SD_SPI_MOSI_SOURCE,GPIO_AF_SPI1);


до

Код:
GPIO_Init(GPIOA, &GPIO_InitStructure);


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

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

Читает пишит?

У меня карты работают так
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
и так
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

в других режимах нет.


.....
SD_WRITE возвращает 255 - исправил в коде. Это должно было быть 1. Ошибку исправлю в коде.

_________________
Инженер R@D

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


Последний раз редактировалось Oxford Вс июн 30, 2013 21:17:19, всего редактировалось 1 раз.

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

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

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

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

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

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

Вот такая карта на 128 Mb

есть еще на 2G INI возвращает 2
и есть на 512Mb INI возвращает 1

Все не читаются и не пишутся


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

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

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

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

Попробуй те закоментировать строку
SPI_SETUP(SPI_BaudRatePrescaler_2);
в процедуре SD_INI может скорость превышается SPI. там что-то не выше 20-25 мгц должно

_________________
Инженер R@D

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


Последний раз редактировалось Oxford Вс июн 30, 2013 21:24:00, всего редактировалось 1 раз.

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

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

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

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


вот весь код


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

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

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

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

_________________
Инженер R@D

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


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

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

Код:
   int resultInit = SD_INI();

      
   
   myLCD.drawString(resultInit, 0, 30);
   //myLCD.drawString(SPI_SEND(0xAA), 0, 60);
   
   
      int resultRead = SD_READ(256);

      myLCD.drawString(resultRead, 0, 90);
   
      for(int i=0; i < 5; i++)
      {

          myLCD.drawString(BUFFER[i], 15*i, 120);

      };

      BUFFER[0] = 'S';
      BUFFER[1] = 'D';
      BUFFER[2] = 'F';

      int resultWrite = SD_WRITE(256);   
           myLCD.drawString(resultWrite, 0, 180);


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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Я так понял чтение 1 возвращает?
Попробуй те закоментировать строку
SPI_SETUP(SPI_BaudRatePrescaler_2);
в процедуре SD_INI может скорость превышается SPI. там что-то не выше 20-25 мгц должно
Возможно скорость бешенная так как у F4 42 Мбита, а на M0 16мбит скорее всего скорость превышена.
Вставьте в процедуру чтения вывод буквы, и проследите где возврат происходит.

_________________
Инженер R@D

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


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

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Oxford писал(а):
Я так понял чтение 1 возвращает?
Вы установку скорости закоментировали в конце SD_INI. Возможно скорость бешенная так как у F4 42 Мбита, а на M0 16мбит скорее всего скорость превышена.
Вставьте в процедуру чтения вывод буквы, и проследите где возврат происходит.




Вот здесь if (SPI_CMD(17, sector, 0x0, 0x00)) return 1;


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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
osievskiy писал(а):
Oxford писал(а):
Я так понял чтение 1 возвращает?
Вы установку скорости закоментировали в конце SD_INI. Возможно скорость бешенная так как у F4 42 Мбита, а на M0 16мбит скорее всего скорость превышена.
Вставьте в процедуру чтения вывод буквы, и проследите где возврат происходит.




Вот здесь if (SPI_CMD(17, sector, 0x0, 0x00)) return 1;


Ну правильно потому что контроллер карты не ответил правильно вот и выходит.
если связь с картой нормальная, он эту команду должен пролетать на всех парусах. )))

Связи нет с картой при чтении записи.

SPI1 can communicate at up to 42 Mbits/s, SPI2 and SPI3
can communicate at up to 21 Mbit/s. Вот из даташита на камень о скоростях.
Для карты надо не выше 25

_________________
Инженер R@D

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


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

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Закомментировал SPI_SETUP(SPI_BaudRatePrescaler_2);

Теперь чтение показывает 1
Запись показывает 255

Но чтение уже вот тут
Код:
while(SPI_SEND(0xFF) != 0xFE) //?????? ??????
  if(RSD1++ > 0xFFFE)
  {
     DECS();
     return 12;
  }


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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
osievskiy писал(а):
Закомментировал SPI_SETUP(SPI_BaudRatePrescaler_2);

Теперь чтение показывает 1
Запись показывает 255


Еще попробуй те читать и писать с закоменнтированной строкой
if (CADR_TYPE != SD_VER2HC) sector *= 512;

Еще в циклы чтения поставьте паузы небольшие.
while(SPI_SEND(0xFF) != 0xFE) //НАЧАЛО ДАННЫХ
{
_delay(1000);
if(R1++ > 0xFFFE)
{
DECS();
return 1;
}
}

Это на всех картах так?
Вы через шилд работаете?
Странное поведение какое то
......

Еще вот что сделай те:
В процедуре SPI_CMD
найдите кусок и вставьте вывод переменной RSD3
while((RSD3 = SPI_SEND(0xFF)) == 0xff)
{
_delay(20000);
if(RSD2++ > 0xFE) return 1;
}
LCD_OUT(RSD3) <<<<<< тут


Когда вызовите READ процедуру посмотрите какое значение она возвращает, после того как отработает команда if (SPI_CMD(17, sector, 0x0, 0x00)) return 1;

_________________
Инженер R@D

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


Последний раз редактировалось Oxford Вс июн 30, 2013 22:09:25, всего редактировалось 2 раз(а).

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

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
поставил задержку и убрал if (CADR_TYPE != SD_VER2HC) sector *= 512;


Та же картина!


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

Зарегистрирован: Вт июн 18, 2013 11:23:25
Сообщений: 79
Рейтинг сообщения: 0
Oxford писал(а):
osievskiy писал(а):
Это на всех картах так?
Вы через шилд работаете?
Странное поведение какое то


Вот только что додумался проверить.... не не на всех
на INI 1 и 2
Запись и чтение 0, но данных я не вижу


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

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

Оставьте та что 2 или 1
На них чтение и запись срабатывает.
Верните весь код как был и проверяй те сектора на компьютере после записи, допустим пишите в 0 сектор MBR
Только //SPI_SETUP(SPI_BaudRatePrescaler_2); так пусть закоментированная и будет это установка максимальной скорости SPI ее можно превысить и карта отвечать не будет потом отрегулируете. пока на низкой пусть будет.

_________________
Инженер R@D

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


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

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


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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Тестируй те проверяйте, код отлаживался на Micro SD картах 1 и 2 версии.
У меня работает все четко. Я проект пишу MP3 проигрывателя на VS1011E. Скоро FAT еще буду писать, на Delphi готовая лежит. перенести надо.
Скорость SPI не превышай те.

_________________
Инженер R@D

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


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

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Здравствуйте!Скажите, а как я могу работать с SD карточкой на уровне файлов, а не адресов памяти?
Допустим на карточке есть файлы, как я могу узнать, какие они, считывать их и записывать в карту свои файлы?
Заранее спасибо!


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

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

Сейчас кстати этим и занимаюсь!


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

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


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

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


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

Сейчас этот форум просматривают: vsky и гости: 4


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

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


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