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

 
 
> FatFs. LPC2388. MCI. Не работает, На какие грабли наступил?
EXeGLuMATOR
сообщение Jul 24 2009, 16:40
Сообщение #1


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Взял последнюю версию 0.07с FatFs. Соответственно и пример применения на данную серию процов. Собственно к библиотеке FatFs вопросов нет.
Но есть чудный модуль MCI.c. Вроде перенес все нормально, да собственно и переносить там особо нечего. Регистры совпадают, только ножки переделать. Но не тут-то было. Инициализация карточки проходит без вопросов - вроде правильно все читается.
Show disk status...
Drive size: 59776 sectors
Sector size: 512
Erase block size: 32 sectors
MMC/SDC type: 2
CSD:
00000000 00 26 00 32 1F 59 81 D2 FE F9 CF FF 92 40 00 4A .&.2.Y.......@.J
CID:
00000000 03 53 44 53 44 30 33 32 57 00 3E 26 E3 00 55 62 .SDSD032W.>&..Ub
OCR:
00000000 80 FF 80 00 ....
SD Status:
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

Но вот SD Status - похоже не тот.

Не проходит функция disk_read. А именно отваливается по условию в строчке 605.
Даже не знаю где копать - вроде все правильно по коду...
Частота контроллера урезана по самое нехочу.
карточка компом нормально видится, читается, пишется. Другая карточка - аналогичный эффект..

Кто что может посоветовать?
Или может кому не жалко работающего такого файлика? rolleyes.gif
Прикрепленные файлы
Прикрепленный файл  mci.zip ( 7.17 килобайт ) Кол-во скачиваний: 220
 
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 44)
klen
сообщение Jul 24 2009, 18:26
Сообщение #2


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



тоже морочился с FatFs

тока у меня stm32 c SDIO контроллером.
ничем помоч не могу но если пройдете этот этап то обращаю внимание на другой возможный косяг, можете наступить на грабли с таймером таймаута. я день угробил пока понял.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 24 2009, 19:14
Сообщение #3


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Не.. таймер таймаута я прошел. smile.gif
Тоже впоролся - различные системы управления прерываниями в примерах и в моих проектах. Вроде работает...
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 24 2009, 20:29
Сообщение #4


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(EXeGLuMATOR @ Jul 24 2009, 23:14) *
Не.. таймер таймаута я прошел. smile.gif
Тоже впоролся - различные системы управления прерываниями в примерах и в моих проектах. Вроде работает...


тогда у меня вопрос.
чебы я не делал, какого либа размера буффер не передавал, fatfs спускает вниз кусками максимум по 8 блоков что замедляет максимальную скорость записи. косяг в коде fatfs. пытался отладчиком ... плюнул. непонятно откуда эта цифра берется.

хочется застиавить чтоб мильтиблочная запись была большим числом блоков. тогда до 6 мегабайт в сек можно записывать в SD карту.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 25 2009, 04:24
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



8 блоков - это же 4К? Размер кластера. После заполнения кластера приходится лезть в FAT, искать следующий свободный кластер, помечать его в двух копиях FAT как занятый, записывать номер следующего свободного кластера в FSINFO...
Так что непрерывно не получаетсяsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 25 2009, 06:12
Сообщение #6


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Это все здорово конечно. smile.gif Но тема изначально несколько о другом... wink.gif
Неужто никто на 2388 не портировал эту системку?
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Jul 25 2009, 06:22
Сообщение #7


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Неужто никто на 2388 не портировал эту системку?

Там же в примерах у Чена есть порт на LPC2378 с MCI. Можно сравнить.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 25 2009, 06:43
Сообщение #8


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Так в том-то и дело, код из этого примера и используется. Но видимо есть еще какие-то ньюанусы... sad.gif
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Jul 25 2009, 07:18
Сообщение #9


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Сразу скажу, что на LPC не запускал.
Бегло посмотрел код - там переменные XferStat и XferWp модифицируются в обработчике прерываний, а используется в фоне - возможно при выходе из while (604-я строка) по XferWp происходит модификация XferStat( хотя вероятность мала). И чему равно XferWp на 605-й строке?
Такое использование XferWp и XferStat, IMHO, небезопасно и я бы ввёл переменные для копий и читал бы в них в критической секции безотносительно данной задачи.
ЗЫ. В Isr_MCI модифицируются обе переменные, так что что там по логике получается, нужно разбираться


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 25 2009, 08:12
Сообщение #10


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Да вот-же. Хотелось побыстрее все запустить. Видимо не прокатит. Но пример-то рабочий... По крайней мере должен быть - он тянется еще с предыдущих версий FatFs. Да и как-то мутно все реализовано в этом файле. 07.gif Видимо придется все полностью переделывать. Что совсем не веселит...
Может таки у кого есть заведомо рабочий такой файлик?
Go to the top of the page
 
+Quote Post
KostyantynT
сообщение Jul 26 2009, 21:14
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 27-06-05
Из: Киев
Пользователь №: 6 345



Цитата(klen @ Jul 24 2009, 21:26) *
тоже морочился с FatFs

тока у меня stm32 c SDIO контроллером.
ничем помоч не могу но если пройдете этот этап то обращаю внимание на другой возможный косяг, можете наступить на грабли с таймером таймаута. я день угробил пока понял.

А что там за косяк с таймером таймаута?.


--------------------
Если в сердце дверь закрыта - надо в печень постучать..
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 27 2009, 06:03
Сообщение #12


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



rolleyes.gif
Цитата(КонстантинТ @ Jul 27 2009, 01:14) *
А что там за косяк с таймером таймаута?.

побольше значение ставить нада, иначе неработает
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 27 2009, 07:28
Сообщение #13


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Это к STM относится, я так понимаю?
А поближе к теме? biggrin.gif
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 27 2009, 09:25
Сообщение #14


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Попробуйте др. карточку. Я портировал на LPC2478 EFSL и ChanFS, обе работают.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 27 2009, 13:21
Сообщение #15


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Цитата(skripach @ Jul 27 2009, 13:25) *
Попробуйте др. карточку. Я портировал на LPC2478 EFSL и ChanFS, обе работают.


Да пробовал. В том-то и дело.
А файликом для MCI не поделитесь для FatFs? rolleyes.gif Где-то похоже сидит какая-то мелочь - найти не могу.
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 28 2009, 06:30
Сообщение #16


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
А файликом для MCI не поделитесь для FatFs?

А чегож не поделится, поделюсь.
Прикрепленные файлы
Прикрепленный файл  mci2.rar ( 15.29 килобайт ) Кол-во скачиваний: 138
 


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 29 2009, 05:08
Сообщение #17


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Спасибо. Шикарный файлик. smile.gif
Остается прикрутить его к FatFs. И не накосячить... smile.gif
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 29 2009, 06:27
Сообщение #18


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Пардон, не понял, FatFS и вот это не одно и то же?


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 29 2009, 06:35
Сообщение #19


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Да, это одно и то-же. Об этом и речь.
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 29 2009, 07:41
Сообщение #20


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Да, это одно и то-же. Об этом и речь.

Так в чем проблема, модуль MCI я выдрал из рабочего проекта где работает именно ФС по ссылке выше, всё должно работать.
По идее вам только файл переименовать с MCI2 на MCI.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 29 2009, 08:32
Сообщение #21


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Не совсем. sad.gif
эта файловая система работает по функциям определенным в diskio.h
А именно:
DSTATUS disk_initialize (BYTE);
DSTATUS disk_status (BYTE);
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
DRESULT disk_ioctl (BYTE, BYTE, void*);

Вот тут-то и приходится извращаться. Поскольку то, что в примере с этой системой работать отказывается.
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 29 2009, 09:00
Сообщение #22


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Ладно, углубимся...
Смотрим для примера функцию disk_initialize:
Вот эта функция в dickio.c
Код
/*-----------------------------------------------------------------------*/
/* Initialize a Drive                                                    */

DSTATUS disk_initialize (BYTE drv)        /* Physical drive nmuber (0..) */
{
    if ( drv != 0 ) return STA_NOINIT;

    if ( MCI_disk_initialize() ) {
        // error occured
        Stat |= STA_NOINIT;
        power_off();
    }
    else {
        Stat &= ~STA_NOINIT;
        // cardtype mci.h to chan cardtype - (maybe redundant)
        switch ( MCI_CardType ) {
        case SDHC_CARD :
      TERMf((tbuf,TXT("\r\nCardType-SDHC")));
            CardType = 4;
            break;
        case MMC_CARD :
      TERMf((tbuf,TXT("\r\nCardType-MMC")));
            CardType = 1;
            break;
        case SD_CARD :
      TERMf((tbuf,TXT("\r\nCardType-SD")));
            CardType = 2;
            break;
        default :
      TERMf((tbuf,TXT("\r\nCardType-0")));
            CardType = 0;
        }
    }
    
    return Stat;
}

Видим что из функции disk_initialize вызывается только одна функция MCI_disk_initialize которая и находится в пристёгнутом архиве выше.
Цитата
Поскольку то, что в примере с этой системой работать отказывается.

Разумеется что-то может и не заработать из примера, но есть же отладчик и терминал.
Ещё раз повторяю модуль MCI выдрал из РАБОЧЕГО проекта.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 29 2009, 10:05
Сообщение #23


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Да, все верно. Но... Дело в том, что в том архиве нету такой функции. В пристегнутом файле mci2.c такой функции нету. unsure.gif
Оно все похоже лежит в другом файлике.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 29 2009, 11:08
Сообщение #24


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



В общем все заработало.
Всем спасибо за помощь. smile.gif
Просто в комплекте от мистера Чана идут не совсем корректные, IMHO, примеры под LPC.
Взял пример от Мартина Томаса
вот здесь
малость переработал и собсно все заработало. Довести до ума осталось, но в целом вроде все работает. Будем посмотреть.
Надеюсь кому-нибудь пригодится это все.
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 29 2009, 11:21
Сообщение #25


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Дело в том, что в том архиве нету такой функции.

Каюсь, не искал её там, думал коль её у вас нету то должна быть там. Рад что у вас всё заработало.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Jul 29 2009, 13:22
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Цитата(EXeGLuMATOR @ Jul 29 2009, 16:08) *
В общем все заработало.
Всем спасибо за помощь. smile.gif
Просто в комплекте от мистера Чана идут не совсем корректные, IMHO, примеры под LPC.
Взял пример от Мартина Томаса
вот здесь
малость переработал и собсно все заработало. Довести до ума осталось, но в целом вроде все работает. Будем посмотреть.
Надеюсь кому-нибудь пригодится это все.


О! Спасибо за ссылку! Проект сделан под кейловский компилятор - но при компиляции выдает ошибку:

Код
drivers_mthomas\diskio.c(520): error:  #167: argument of type "volatile BYTE *" is incompatible with parameter of type "const void *restrict"


в функции DRESULT disk_read на строчку memcpy(buff, ReadBlock, 512);

как исправить?

Сообщение отредактировал Ivan Kuznetzov - Jul 29 2009, 13:23


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Jul 29 2009, 17:37
Сообщение #27


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Цитата(Ivan Kuznetzov @ Jul 29 2009, 17:22) *
О! Спасибо за ссылку! Проект сделан под кейловский компилятор - но при компиляции выдает ошибку:

Код
drivers_mthomas\diskio.c(520): error:  #167: argument of type "volatile BYTE *" is incompatible with parameter of type "const void *restrict"


в функции DRESULT disk_read на строчку memcpy(buff, ReadBlock, 512);

как исправить?


memcpy(buff, (BYTE*)ReadBlock, 512);
Аналогично и во втором месте, где выдаст такую ошибку.
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Jul 31 2009, 04:04
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Цитата
memcpy(buff, (BYTE*)ReadBlock, 512);
Аналогично и во втором месте, где выдаст такую ошибку.


Спасибо, подкорректировал, ошибка исчезла! Протестировал исходник на Olimex LPC2378 платке - с карточками до 1 Гб пашет отлично, инициализирует фс-ку и читает файлики с нее biggrin.gif

Но есть один непонятный момент - SDHC карточки инициализировать не хочет, хотя в diskio.c уже есть ветвление на SD/SDHC карты (сохраняет тип в переменную CardType)...

Включил дебаг в diskio.c - обнаружилось, что вываливается на MCI_Check_CID()
Код
MCI DMA enabled
Check_CID failed
Set_Address failed
Send_CSD failed
Select_Card failed
Set_BlockLen failed
Set_BlockLen o.k.
dump_status: Send_Status INVALID_RESPONSE

SELECT Select_Card failed - retry
SELECT timeout changeing to trans
dump_status: Send_Status INVALID_RESPONSE
wait_ready: Send_Status INVALID_RESPONSE
wait_ready: timeout stby or trans
DESELCT timeout waiting trans or stby


Сообщение отредактировал Ivan Kuznetzov - Jul 31 2009, 04:09


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
prgjz
сообщение Jul 31 2009, 13:01
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Адаптировал пример к платине Keil MCB2387 - всё работало отлично. В функции MCI_Init() возможно нужно ещё PINSELx для LPC2388 правильно изменить.
Прикрепленные файлы
Прикрепленный файл  lpc2387_chan_mci.zip ( 503.26 килобайт ) Кол-во скачиваний: 101
 
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Aug 1 2009, 18:34
Сообщение #30


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Ну, кому-то наверняка пригодится. smile.gif
Все не самим разбираться. wink.gif
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Aug 3 2009, 06:48
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Кто-нить пробывал эти исходники с картами больше 1Гб? У меня почему-то не работает...

Сообщение отредактировал Ivan Kuznetzov - Aug 3 2009, 06:48


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
prgjz
сообщение Aug 3 2009, 08:33
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Цитата(Ivan Kuznetzov @ Aug 3 2009, 09:48) *
Кто-нить пробывал эти исходники с картами больше 1Гб? У меня почему-то не работает...

Исходники пробовал с: SanDisk 256MB, ProMax 2GB, SanDisk 4GB SDHC
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Aug 4 2009, 06:58
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



усе заработало, после всовывания карточки, кнопочку RESET на отладочной платке жму - проходит, причем интересно, с SD картами можно такого не проделывать, только с SDHC... biggrin.gif

обновил ff.c и ff.h на последние (0.07с), добавил ccsbcs.c для поддержки LFN, включил поддержку LFN в ff.h, но при выводе списка файлов имена все равно в формате 8.3...

Сообщение отредактировал Ivan Kuznetzov - Aug 4 2009, 07:53


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Aug 4 2009, 08:18
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



переделал немного fat_mci_demo.c - теперь глинные имена кажет biggrin.gif
в архиве для LPC2368 (протестировано на LPC2378)

P.S.
Простите за оффтоп, но может у кого есть такой-же проектик для LPC2148 или LPC2138 на кейловском родном компиляторе?

Сообщение отредактировал Ivan Kuznetzov - Aug 4 2009, 08:30
Прикрепленные файлы
Прикрепленный файл  lpc23xx_chan_mci.rar ( 510.16 килобайт ) Кол-во скачиваний: 130
 


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
poq12
сообщение Aug 23 2009, 21:07
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 20-05-08
Из: Санкт-Петербург
Пользователь №: 37 681



smile3046.gif Народ, подскажите пожалуйста, как определить какой функции main() передается управление в данном проекте ? (имеется ввиду пост сразу перед моим вопросом)

там в файле Sturtup.s написано:

IMPORT __main
LDR R0, =__main
BX R0

Если воспользоваться "find in files", то вылезает три функции main()
в файлах - mcitest.c, rtctest.c, tmrtest.c, а ни один из этих файлов в проект не включен ... или все же включен ?
smile3046.gif

Вопрос снят. Управление передается функции int main (void) в первом файле fat_mci_demo.c laughing.gif (у меня она почему-то не находилась поиском, нашел при шагании симулятором)
(как удалить сообщение не знаю. laughing.gif )

Сообщение отредактировал poq12 - Aug 23 2009, 21:32
Go to the top of the page
 
+Quote Post
madnik
сообщение Oct 4 2010, 12:33
Сообщение #36





Группа: Новичок
Сообщений: 5
Регистрация: 30-11-09
Из: Смоленск
Пользователь №: 53 961



Доброго времени суток.
Помогите разобраться с инициализацией microSD карты. Пытаюсь запустить проект lpc23xx_chan на процессоре lpc2468.

Карта соединена с процессором следующим образом
P1[2] CLK
P1[3] CMD
P1[5] питание через полевик на PWR
P1[6] DAT0
P1[7] DAT1
P1[11] DAT2
P1[12] DAT3

исправил в проекте инициализацию в соответствии с подключением карты

Код
PINSEL2 &= ~((3 << 4) | (3 << 6) | (3 << 10) | (3 << 12) | (3 << 14) | (3 << 22) | (3 << 24));
PINSEL2 |= (1 << 5) | (1 << 7) | (1 << 11) | (1 << 13) | (1 << 15) | (1 << 23) | (1 << 25);


при попытке инициализации выводится
Цитата
MCI_INIT ok
timout CMD8 -> SD-Card<Version 2.0 or MMC
MCI_Send_ACMD failed -> MMC, invalid power-range or no card
MCI_POWER 0x00000000
rc=1


при выполнении функции MCI_GetCmdResp в регистре MCI_STATUS установлен бит CMD_TIMEOUT
пробовал на картах micro sd kingston 4GB sdhc и apacer 1GB
Питание и тактирование появляется на карте при попытке инициализации.
Подскажите в какую сторону копать.
Go to the top of the page
 
+Quote Post
skripach
сообщение Oct 4 2010, 13:08
Сообщение #37


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Что-то там было с питанием карты. Без биполярного транзистора перед полевым не хотело работать. Попробуйте "принудительно" включить питание.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
madnik
сообщение Oct 5 2010, 10:57
Сообщение #38





Группа: Новичок
Сообщений: 5
Регистрация: 30-11-09
Из: Смоленск
Пользователь №: 53 961



С питанием все нормально.
Случайно обнаружилась следующая странность. Подключаю щуп осциллографа к линии CLK, и древняя 16 МБ карта инициализируется нормально. Работает с fat нормально. Отключаю щуп, симптомы как в предыдущем посте. Пробовал резистор 10к повесить на подтяжку на CLK и остальные линии повесить, не помогает. Работает только с подключенным щупом. Не конденсатор же вещать на CLK cranky.gif
Go to the top of the page
 
+Quote Post
карабас
сообщение Oct 6 2010, 15:51
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 8-12-09
Пользователь №: 54 123



вы работаете в spi моде, а если полярность clk перевернуть?
Go to the top of the page
 
+Quote Post
madnik
сообщение Oct 6 2010, 16:35
Сообщение #40





Группа: Новичок
Сообщений: 5
Регистрация: 30-11-09
Из: Смоленск
Пользователь №: 53 961



Я работаю в sd mode. Пробовал ставить подтяжку, резисторы 33 Ом на линии ставить. Не помогает.
Go to the top of the page
 
+Quote Post
skripach
сообщение Oct 6 2010, 17:04
Сообщение #41


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
С питанием все нормально.

Тоже так казалось.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
madnik
сообщение Oct 7 2010, 10:56
Сообщение #42





Группа: Новичок
Сообщений: 5
Регистрация: 30-11-09
Из: Смоленск
Пользователь №: 53 961



Поставил 100 pF конденсатор на CLK. В разрыв линий включены резисторы 30 Ом. Инициализируется со второго, третьего раза. После инициализации работает вроде нормально. Голову уже сломал.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Oct 7 2010, 11:23
Сообщение #43


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(madnik @ Oct 7 2010, 14:56) *
Поставил 100 pF конденсатор на CLK. В разрыв линий включены резисторы 30 Ом. Инициализируется со второго, третьего раза. После инициализации работает вроде нормально. Голову уже сломал.

А как физически выполнен монтаж карты памяти, какой длины дорожки/провода, и нет ли рядом других быстрых сигналов с крутыми фронтами?
Не наводки ли?
Go to the top of the page
 
+Quote Post
madnik
сообщение Oct 7 2010, 11:35
Сообщение #44





Группа: Новичок
Сообщений: 5
Регистрация: 30-11-09
Из: Смоленск
Пользователь №: 53 961



Физически карта сидит в слоте припаяном на шлейф около 20 мм длиной. На плате зеркально площадки под слот развел, пока другая плата придет, повесил навеснымsad.gif До площадок на слоте дорожки длиной около 30 мм. Рядом с дорожками только земляной полигон.

Только что попробовал карту на 1 GB. Инициализируется с первого раза.

Сообщение отредактировал madnik - Oct 7 2010, 11:36
Go to the top of the page
 
+Quote Post
Mbcali4
сообщение Jan 13 2011, 12:24
Сообщение #45





Группа: Новичок
Сообщений: 1
Регистрация: 26-10-09
Из: Россия. г. Ульяновск
Пользователь №: 53 218



Доброго времени суток. Подскажите пожалуйста как подключить FATFS(или что-то наподобие для работы с micro-SD) к TNKERNEL v2.5. Две недели уже бьюсь над этим вопросом. Не могу понять почему контроллер зависает при открытии файла.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:48
Рейтинг@Mail.ru


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