Например TDA7294

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



Текущее время: Чт май 06, 2021 00:33:50

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


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



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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
[quote="drakon"]Oxford, проверил ваш кусок, все работает. выдает 0x200 = 512.
вся эта фат-информация лежит на моей флешке в секторе 32, посмотрел в WinFex. компилятор keil.

У меня код по умолчанию читает 0 сектор, так как по умолчанию 0 сектор, если это не загрузочный, тогда он пытается вытащить логический диск из MBR, если MBR не найдена или не смог определить логический диск тады возврат ошибки.

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вт авг 27, 2013 21:48:12 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
Это в С++ можно где-угодно объявлять переменные, а в Си можно только так:
Код:
char FAT_INI(void){
short BytePerSec;
SD_READ(0);
BytePerSec = *((short *)&BUFFER[11]);
lcd_int(BytePerSec, 4, 0);
return BytePerSec;
}


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

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

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

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

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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
drakon писал(а):
Это в С++ можно где-угодно объявлять переменные, а в Си можно только так:
Код:
char FAT_INI(void){
short BytePerSec;
SD_READ(0);
BytePerSec = *((short *)&BUFFER[11]);
lcd_int(BytePerSec, 4, 0);
return BytePerSec;
}


У меня везде работает в любом месте и глобально обьявлял и локально одинаково работает.

_________________
Инженер R@D

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


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

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

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

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
Цитата:
В языке Си все определения должны следовать перед операторами, составляющими тело функции. В языке Си++ это ограничение снято и определения могут находиться в любом месте программы.

если тип *.c поменять на *.cpp то объявлять можно где-угодно, когда-то проверял. попробуйте написать туда класс (в Си точно его нету), может, компилятор автоматически на C++ переходит.


Вернуться наверх
 
Обновленный ассортимент тактовых кнопок Omron!

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вт авг 27, 2013 23:07:14 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Рейтинг сообщений: 98
Зарегистрирован: Вс дек 02, 2012 03:13:48
Сообщений: 1425
Откуда: Калининград
Рейтинг сообщения: 0
drakon писал(а):
если тип *.c поменять на *.cpp то объявлять можно где-угодно, когда-то проверял.


Еще есть стандарт C99, там можно объявлять переменные где угодно.


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

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

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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
balmer писал(а):
drakon писал(а):
если тип *.c поменять на *.cpp то объявлять можно где-угодно, когда-то проверял.


Еще есть стандарт C99, там можно объявлять переменные где угодно.


Все верно
http://ru.wikipedia.org/wiki/C99

Новые возможности

В C99 было добавлено несколько новых возможностей, многие из которых уже были реализованы в качестве расширения в некоторых компиляторах:
встраиваемые функции (объявленные с ключевым словом inline)
Место, в котором возможно объявление переменных, больше не ограничено глобальной областью видимости и началом составного оператора (блока)
Несколько новых типов данных, включая long long int, дополнительные расширенные целые типы, явный логический тип данных, а также комплексный тип (complex) для представления комплексных чисел
Массивы переменной длины (variable-length arrays)
Поддержка однострочных комментариев, начинающихся с //, как в BCPL или C++
Новые библиотечные функции, как, например, snprintf
Новые заголовочные файлы, такие как stdbool.h и inttypes.h
Типовые математические функции (tgmath.h)
Улучшена поддержка стандарта IEEE 754-2008
Проектируемые инициализаторы
Составные константы
Поддержка вариативных макросов (макросов переменной арности)
Смягчение (restrict) ограничений для более агрессивной оптимизации кода

_________________
Инженер R@D

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


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


Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Пт авг 30, 2013 11:32:15 
Опытный кот
Аватар пользователя

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

_________________
Инженер R@D

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


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


Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Пт сен 06, 2013 20:48:06 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
Oxford, как успехи с fat?


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

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

_________________
Инженер R@D

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


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

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Oxford писал(а):
Занимаюсь еще. Реализовал сейчас длинные и короткие имена понимает. Сейчас маркую над навигацией. Работа с FAT будет немного иначе чем привыкли все.

А что вы подразумеваете под НАВИГАЦИЕЙ? сам интерфейс использования функций в библиотеке?


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

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

_________________
Инженер R@D

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


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

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
может, выложите пока без навигации?


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

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

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб май 16, 2015 01:30:42 
Родился

Зарегистрирован: Пн апр 13, 2015 00:52:00
Сообщений: 1
Рейтинг сообщения: 0
Изображение

Помогите запустить. Я вроде уже запускал ваш код, но теперь лыжи не едут.

Заголовочный файл MICROSD.h лежит в MICROSD.c
В главном main.c прописано

extern void SD_READ();


Если подключить заголовочный MICROSD.h в main.c то компилятор ругается на множественное обьявление BUFFER R1 R2 ... и т.д.


Что он от меня хочет(( я да, я еще нуб, помогите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Пн май 25, 2015 00:51:23 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 712
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2714
Откуда: приходит весна?
Рейтинг сообщения: 0
Galizin писал(а):
Цитата:
short BytePerSec = *((short *)&BUFFER[11]);

Попробуйте присвоить по 1 байту
Код:
short BytePerSec;
((char*)&BytePerSec)[0] = BUFFER[11];
((char*)&BytePerSec)[1] = BUFFER[12];

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


Вопрос к Oxford, а почему вы не используете вот эти замечательные типы данных:
Код:
int8_t   uint8_t
int16_t  uint16_t
int32_t  uint32_t
int64_t  uint64_t
Зачастую это и короче, и понятнее, и надёжнее. Против старой привычки три новых достоинства.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Ср янв 13, 2016 12:40:48 
Опытный кот
Аватар пользователя

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


Вопрос к Oxford, а почему вы не используете вот эти замечательные типы данных:
Код:
int8_t   uint8_t
int16_t  uint16_t
int32_t  uint32_t
int64_t  uint64_t
Зачастую это и короче, и понятнее, и надёжнее. Против старой привычки три новых достоинства.

Особой разницы нет. Использую тоже.

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вт мар 01, 2016 03:17:44 
Опытный кот
Аватар пользователя

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

_________________
Инженер R@D

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


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

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

P.S. Карта скорее всего не зависает, а засыпает. Процедуру пробуждения отлажу. Некоторые карты автоматически уходят в спячку.
Временный костыль, вызывать инициализацию при открытии файла.

_________________
Инженер R@D

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


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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
В общем разобрался с картой.
Суть следующая, карта( если в течении 5мс ничего не происходит) уходит в энергосберегающий режим, таймаут у карт разный. В этот момент команда CMD17 на чтение не доступна. В этом режиме доступны следующие команды CMD0, CMD1, CMD41 и CMD58

Поэтому перед чтением нужно разбудить карту и дальше в штатном режиме работать.

Fix следующий:


//ЧИТАЕТ СЕКТОР ДАННЫЕ В BUFFER: РЕЗУЛЬТАТ 1 - ОШИБКА 0 - НЕТ ОШИБОК
uint8_t SD_READ(uint32_t sector)
{

SPI_CMD(1, 0, 0); //Выход из спящего режима; доступные команды: CMD0, CMD1, CMD41 и CMD58

if (SD_VERSION != SPISD_VER2HC)
sector *= 512; //LBA

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вт дек 27, 2016 08:40:46 
Опытный кот
Аватар пользователя

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

_________________
Инженер R@D

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


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

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


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