Например TDA7294

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



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

Часовой пояс: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Да коду там много еще и RTOS приплели. Софтовый mp3 нафиг не нужен декодер. VS1053 получше будет для этих целей.

_________________
Инженер R@D

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


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

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

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

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

Не в сети
 Заголовок сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
А при чем тут собственно F2? Конечно разные процессоры. как и F2 и F4 тоже разные. В чем фишка?

_________________
Инженер R@D

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


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

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

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

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


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

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

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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Нет это все ни при чем. Не в этом дело.

_________________
Инженер R@D

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


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

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

_________________
Инженер R@D

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


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

Карма: 11
Рейтинг сообщений: 34
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 458
Откуда: Воронеж
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 0
Респект :idea: Работает благодарю вас. Будем формировать побайтно для совместимости кода. :kill:
Посимвольно то буфер он выводит правильно, додуматься что-то я сам не смог до такого приема. )))

_________________
Инженер R@D

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


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

Карма: 4
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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
Рейтинг сообщений: 25
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 832
Откуда: Киселевск
Рейтинг сообщения: 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 часа


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

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


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

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


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