Например TDA7294

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





Текущее время: Чт апр 18, 2024 10:55:50

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


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



Начать новую тему Ответить на тему  [ Сообщений: 114 ]    , , , 4, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб авг 24, 2013 07:21:06 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 14, 2013 16:28:36
Сообщений: 22
Рейтинг сообщения: 0
вот исходник софтового mp3 плеера с карточкой и http под stm32f207, проект в keil. тестил с картой на 1, 2, 8 гиг. чановская фатфс, драйвер SDIO от ST, чуток допиленный для стабильной работы. используется DMA. Успевает играть MP3 и работать по HTTP с картой. для полного счастья не хватает внешней памяти туда и кодека, лень было макетировать
ссылка: http://qclk.ru/kz/s3z1
Форум архив не принимает


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Да коду там много еще и RTOS приплели. Софтовый mp3 нафиг не нужен декодер. VS1053 получше будет для этих целей.

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб авг 24, 2013 16:26:35 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 14, 2013 16:28:36
Сообщений: 22
Рейтинг сообщения: 0
STM32F0 и F2 - разные весовые категории. Приведите ваши данные по скорости записи/чтения, потом сравним с "классической" реализацией с DMA и SDIO. ОС там затем, что у вас процессор во время работы с картой больше ничего и не делает, а здесь - наоборот, свободен для других задач, той же индикации или декодера.


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

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

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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
А при чем тут собственно F2? Конечно разные процессоры. как и F2 и F4 тоже разные. В чем фишка?

_________________
Инженер R@D

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


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Сб авг 24, 2013 17:38:48 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 14, 2013 16:28:36
Сообщений: 22
Рейтинг сообщения: 0
в наборе периферии. у F4 практически то же самое что и у F2 и совершенно отличное от STM32F0. А тут драйвер для STM32F0 на STM32F4 прикрутили - как на гоночный болид колеса от велосипеда.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Этот драйвер не для F0 конкретно.
Этот драйвер реализует обмен с картой по SPI интерфейсу.
Этот код будет работать на любых процессорах с аппаратным SPI и потребляет мало ресурсов, при отсутствии аппаратного можно заменить на программный ввод/вывод SPI, с изменением всего 1 функции.

А драйвер с SDIO требует SDIO интерфейс который не у всех процессоров он есть.

_________________
Инженер R@D

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


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

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

есть буфер
char BUFFER[512];

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

Код:
char FAT_INI(void)
{
   SD_READ(0); //0 сектор
   short BytePerSec = *((short *)&BUFFER[11]);
           lcd_int(BytePerSec, 3, 0);
}

08001512:   movs r0, #0
08001514:   bl 0x8000960 <SD_READ>
08001518:   ldr r2, [pc, #32]       ; (0x800153c <FAT_INI+48>)
0800151a:   adds r3, r7, #6
0800151c:   ldrh r2, [r2, #0]
0800151e:   strh r2, [r3, #0]
08001520:   adds r3, r7, #6
08001522:   movs r2, #0
08001524:   ldrsh r3, [r3, r2]
08001526:   adds r0, r3, #0
08001528:   movs r1, #3
0800152a:   movs r2, #0
0800152c:   bl 0x8001064 <lcd_int>

_________________
Инженер R@D

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


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

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
Oxford, проверил ваш кусок, все работает. выдает 0x200 = 512.
вся эта фат-информация лежит на моей флешке в секторе 32, посмотрел в WinFex. компилятор keil.
Код:
short BytePerSec;

void FAT_INI(void){
   
   SD_READ(32); //0 сектор
      
   BytePerSec = *((short *)&BUFFER[11]);
   
   sprintf(str, "BytePerSec_0x%x ", BytePerSec);
   LCD_PutStr8x12(5, 30, str, 0);
}


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Благодарю значит чето кокос загоняет. Если беру BUFFER[11] смещение улетает в DefaultHandler, если BUFFER[12] взять выводит со смещением 514 десятичное.
А на CooCox можете проверить скомпилить у меня одного или у вас так же будет глючить? Надо проверить факт. Если полностью структуру брать то она все поля берет исправно.

KEIL прошел проверку ок значит все.
На IAR проверю еще.

_________________
Инженер R@D

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


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

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
завтра, точнее уже сегодня установлю CooCox и попробую.
а вы пишете на C++? просто у меня в этой строке вылетает ошибка:
Код:
short BytePerSec = *((short *)&BUFFER[11]);

а в этой все ок:
Код:
BytePerSec = *((short *)&BUFFER[11]);


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
drakon писал(а):
завтра, точнее уже сегодня установлю CooCox и попробую.
а вы пишете на C++? просто у меня в этой строке вылетает ошибка:
Код:
short BytePerSec = *((short *)&BUFFER[11]);

а в этой все ок:
Код:
BytePerSec = *((short *)&BUFFER[11]);


в CooCox Си язык. А в чем разница строк чет не понял из-за переменной что ли? У меня в кокосе в обоих случаях ошибка хоть как делай.

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Пн авг 26, 2013 17:43:45 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 14, 2013 16:28:36
Сообщений: 22
Рейтинг сообщения: 0
Сам сталкивался с таким. Причина в том, что компилятор из-за оптимизации не выделяет память под переменную. Можно даже легко в HardFault попасть на таком присвоении.


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
murkot писал(а):
Сам сталкивался с таким. Причина в том, что компилятор из-за оптимизации не выделяет память под переменную. Можно даже легко в HardFault попасть на таком присвоении.


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

_________________
Инженер R@D

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


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

Карма: 2
Рейтинг сообщений: 27
Зарегистрирован: Вт авг 09, 2011 15:01:44
Сообщений: 271
Откуда: Харьков
Рейтинг сообщения: 0
поставил CoIDE, но проект так и не удалось скомпилировать, куча непонятных ошибок.
чего у вас возвращаемый параметр ф-и char, но вы ничего не возвращаете? а объявление переменной не в начале кода возможно только на C++. при исправлении этого в KEIL все работает.
Код:
short BytePerSec; //объявляем гл. переменную

void FAT_INI(void)
{   
   SD_READ(0); //0 сектор
      
   BytePerSec = *((short *)&BUFFER[11]);
        lcd_int(BytePerSec, 3, 0);
}


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Нет это все ни при чем. Не в этом дело.

_________________
Инженер R@D

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


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

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

_________________
Инженер R@D

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Драйвер для MICRO_SD карт
СообщениеДобавлено: Вт авг 27, 2013 16:17:58 
Мучитель микросхем

Карма: 11
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 475
Откуда: Воронеж
Рейтинг сообщения: 0
Цитата:
short BytePerSec = *((short *)&BUFFER[11]);

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

Должно заработать


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Респект :idea: Работает благодарю вас. Будем формировать побайтно для совместимости кода. :kill:
Посимвольно то буфер он выводит правильно, додуматься что-то я сам не смог до такого приема. )))

_________________
Инженер R@D

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


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
drakon писал(а):
поставил CoIDE, но проект так и не удалось скомпилировать, куча непонятных ошибок.
чего у вас возвращаемый параметр ф-и char, но вы ничего не возвращаете? а объявление переменной не в начале кода возможно только на C++. при исправлении этого в KEIL все работает.
Код:
short BytePerSec; //объявляем гл. переменную

void FAT_INI(void)
{   
   SD_READ(0); //0 сектор
      
   BytePerSec = *((short *)&BUFFER[11]);
        lcd_int(BytePerSec, 3, 0);
}


В IAR проверил все ок работает такая конструкция.

_________________
Инженер R@D

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


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

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Oxford писал(а):
drakon писал(а):
завтра, точнее уже сегодня установлю CooCox и попробую.
а вы пишете на C++? просто у меня в этой строке вылетает ошибка:
Код:
short BytePerSec = *((short *)&BUFFER[11]);


В IAR работает все делал так:

char FAT_INI(void)
{
SD_READ(0);
short BytePerSec = *((short *)&BUFFER[11]);
lcd_int(BytePerSec, 4, 0);
return BytePerSec;
}

_________________
Инженер R@D

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


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

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


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

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


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

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


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