реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> STM32 SDIO 4bit SD-card, Подскажите кто делал, в чем может быть проблема
ALXLight
сообщение Mar 26 2012, 08:46
Сообщение #16





Группа: Новичок
Сообщений: 5
Регистрация: 23-03-12
Пользователь №: 70 962



Polling выдаёт ошибку, а interrupt мне не подходит. Да и непонятно почему запись проходит в ДМА, а чтение - нет.
Go to the top of the page
 
+Quote Post
MBR
сообщение Apr 28 2012, 08:10
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 26-09-10
Пользователь №: 59 748



1. УМВР без подтяжки. Достаточно включить внутреннюю подтяжку.
2. Какая нафиг подтяжка на CLK?
3. При работе с ДМА нужно сразу взять за правило делать align 4 всех данных.
4. По возможности отказаться от использования индусских либ и вдумчиво читать реф. мануалы.
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 16 2013, 11:32
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



пытаюсь "поженить" scmRTOS на stm32f103 с SD картой fatfs через стмовский драйвер по SDIO интерфейсу.
процесс с обработчиком SD-карты имеет самый низкий приоритет.
проблема заключается в том, что при чтении с карты виснет время от времени после посылки команды на чтение.
что в режиме дма, что в режиме прерываний. выяснил, что если ОС прерывает процесс между посылкой команды и обработкой ответа на команду в процедуре CmdResp1Error, в которой сбрасываются флаги прерываний модуля sd, буфер фифо успевает заполниться и соответственно после сброса флагов прерывание не возникает.
вопрос состоит в том, как безболезненно заблокировать ОС на эти пару команд?
худо-бедно начинает работать при делителе тактового сигнала на 30 примерно 2 МГц.
без ОС все работает.

Сообщение отредактировал dezna - Feb 16 2013, 11:34
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 17 2013, 06:34
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(dezna @ Feb 16 2013, 14:32) *
пытаюсь "поженить" scmRTOS на stm32f103 с SD картой fatfs через стмовский драйвер по SDIO интерфейсу.
вопрос состоит в том, как безболезненно заблокировать ОС на эти пару команд?

TCritSect cs;
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 17 2013, 07:26
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(DmitryM @ Feb 17 2013, 10:34) *
TCritSect cs;

если не трудно объясните пожалуйста что это даст, и как этим воспользоваться?
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 18 2013, 06:14
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



что это такое разобрался, но в документации нет примера использования.
конструктор вызываю.
как вызвать деструктор? я в с++ пока не горазд. начал изучать только из-за ОС.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 18 2013, 06:18
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



деструктор вызовется компилятором при выходе из секции.
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 18 2013, 06:27
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(DmitryM @ Feb 18 2013, 10:18) *
деструктор вызовется компилятором при выходе из секции.

а нельзя ли принудительно его вызвать?
код просто написан так, что в теле одного блока нужно запретить/разрешить.
драйвер SD карты взят от STM. а там упаришься переделывать.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 18 2013, 06:56
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(dezna @ Feb 18 2013, 09:27) *
а нельзя ли принудительно его вызвать?
код просто написан так, что в теле одного блока нужно запретить/разрешить.
драйвер SD карты взят от STM. а там упаришься переделывать.

При выходе из блока автоматически будет вызван деструктор, который восстановит состояние,
предшествовавшее входу в критическую секцию. Т.е. при таком способе отсутствует возможность
«забыть» разрешить прерывания при выходе из критической секции.

P.S. для обсуждения scmRTOS есть отдельный форум scmRTOS
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 18 2013, 07:01
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(DmitryM @ Feb 18 2013, 10:56) *
P.S. для обсуждения scmRTOS есть отдельный форум scmRTOS

спасибо.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Feb 21 2013, 08:26
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Блин, столкнулся с тем, что SD-коннекторы бывают с нормльно замкунытым пином SD-Detect!
Теперь придется два варианта программы делать, смотря что на плату напаяют (там 2 футпринта совмещены).
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 21 2013, 11:50
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(Allregia @ Feb 21 2013, 12:26) *
Блин, столкнулся с тем, что SD-коннекторы бывают с нормльно замкунытым пином SD-Detect!
Теперь придется два варианта программы делать, смотря что на плату напаяют (там 2 футпринта совмещены).

зачем 2 варианта? если есть свободная нога контроллера, то в зависимости от держателя замыкать или нет на землю.
нога как вход с подтяжкой. замыкать - дорожка под обрезание, или перемычка на ПП под каплю припоя.
а программа при старте анализирует и соответственно реагирует. или например делать исключающее или ножек.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Feb 21 2013, 19:26
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



У меня и так стоят 4 джампера конфигурирования, но они для оперативного конфигурирования, кторое может меняться. в процессе эксплуатации. А смысл пина в коннекторе может меняться только при производстве, поэтому еще на это ножку тратить неохота.
Go to the top of the page
 
+Quote Post
A.Lex
сообщение Feb 10 2014, 16:17
Сообщение #29


Частый гость
**

Группа: Участник
Сообщений: 138
Регистрация: 27-12-11
Пользователь №: 69 107



Столкнулся с проблемой:

Делаю

Status = SD_Init();

ответ Status = SD_OK;

Status = SD_GetCardInfo(&SDCardInfo);

ответ Status = SD_OK;

Status = SD_SelectDeselect((uint32_t) (SDCardInfo.RCA << 16));

ответ Status = SD_CMD_RSP_TIMEOUT;


В чем причина? На низком уровне пишет/читает блок. Карточка microSD 1Gb.

Сообщение отредактировал A.Lex - Feb 10 2014, 16:31
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th July 2025 - 04:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01461 секунд с 7
ELECTRONIX ©2004-2016