|
SD Card - програмная реализация интерфейса, У кого нибудь есть примеры реализации взаимодействия с SD Card? |
|
|
|
 |
Ответов
|
Nov 3 2008, 08:39
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059

|
Подскажите, люди добрые, что я не так делаю. Прошерстил все источники, просмотрел все исходники, написал прожку.
Настройка портов: #define SPI_NPCS1_CONFIG (/*255<<24|0xFF<<16|*/AT91C_SPI_NCPHA|AT91C_SPI_BITS_8|(120<<8)) //400 kHz AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ; AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA25 | AT91C_PIO_PA23; // DispRS and DispReset AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA25 | AT91C_PIO_PA23; AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA25 | AT91C_PIO_PA23; // ======== Init SPI ================ AT91PS_SPI pSPI = AT91C_BASE_SPI ; AT91F_SPI_CfgPMC(); // Enables the SPI Clock AT91F_SPI_CfgPIO(); // Open PIO for SPI AT91F_SPI_Reset(pSPI);// Reset SPI AT91F_SPI_CfgMode(pSPI, SPI_MODE); // Configure SPI in Master Mode with No CS selected AT91F_SPI_CfgCs(pSPI, 0, SPI_NPCS0_CONFIG); // Configure SPI0 Display CX65
pSPI->SPI_CSR[1] = SPI_NPCS1_CONFIG; pSPI->SPI_IDR = 0xffffffff; //отключение прерываний AT91F_SPI_Enable(pSPI); // SPI_Enable AT91F_PIO_CfgInput(AT91C_BASE_PIOA, CARD_PROT|CARD_DET); AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA9; // CS1 for MMC/SDC AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA9; AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA9;
Передача/прием байта: void xmit_spi(char dat) { while (AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TDRE==0); AT91F_SPI_PutChar (AT91C_BASE_SPI, dat, 1); }
static BYTE rcvr_spi (char dat) { char res; while (AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TDRE==0); AT91F_SPI_PutChar (AT91C_BASE_SPI, dat, 1); while (AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RDRF==0); res = (BYTE)( AT91C_BASE_SPI->SPI_RDR ); return res; }
Работа с картой: do { __disable_interrupt(); DESELECT(); // поднять CS Delay_mks(100); for (n = 10; n; n--) xmit_spi(0xFF); /* 80 dummy clocks */ n=0; ty=0; SELECT(); // опустить CS Delay_mks(100); xmit_spi(0x40); Delay_mks(100); xmit_spi(0); Delay_mks(100); xmit_spi(0); Delay_mks(100); xmit_spi(0); Delay_mks(100); xmit_spi(0); Delay_mks(100);
cmd=rcvr_spi(0x95); // Delay_mks(100); n=255; while (cmd == 0xFF && n) { n--; cmd = rcvr_spi(0xFF); } } while (cmd == 0xFF);
DESELECT();
Сначала ваще ничего не получал в ответ (0xFF), потом поставил ожидание после каждой SPI посылки 100 мкс, начал получать 0x01 в ответ на CMD0 (для MMC карты, и 0x05 для SD). Если изменял время задержек мог получать всяку ерунду, типа сдвинутого ответа. Если убрать хоть одну задержку - ответ 0xFF, т.е. нет ответа. Пробовал ставить аппаратные задержки в SPI #define SPI_NPCS1_CONFIG (255<<24|0xFF<<16|AT91C_SPI_NCPHA|AT91C_SPI_BITS_8|(120<<8)) - нет ответа. MMC Canon 16MB microSD SanDisk 512MB SAM7S64
ЗЫ Дисплей от S65 на SPI0 - работает отлично.
Сообщение отредактировал John Silver - Nov 3 2008, 08:40
|
|
|
|
Сообщений в этой теме
Andrei.... SD Card - програмная реализация интерфейса Dec 28 2006, 15:13 aaarrr Желательно под EP93xx. Угадал? Dec 28 2006, 15:18 etoja Я делал полную реализацию работы с MMС карточками ... Dec 28 2006, 16:32 aaarrr Цитата(etoja @ Dec 28 2006, 16:32) Мои ус... Dec 28 2006, 16:50  Andrei.... Цитата(aaarrr @ Dec 28 2006, 16:50) А мои... Jan 9 2007, 13:49   aaarrr Цитата(Andrei.... @ Jan 9 2007, 13:49) во... Jan 9 2007, 13:59    Andrei.... Цитата(aaarrr @ Jan 9 2007, 13:59) Цитата... Jan 9 2007, 14:50     aaarrr Цитата(Andrei.... @ Jan 9 2007, 14:50) вс... Jan 9 2007, 14:58      Andrei.... Цитата(aaarrr @ Jan 9 2007, 14:58) Цитата... Jan 9 2007, 15:43       sff Цитата(Andrei.... @ Jan 9 2007, 15:43) во... Jan 9 2007, 16:08        Andrei.... Цитата(sff @ Jan 9 2007, 16:08) Цитата(An... Jan 9 2007, 16:21         aaarrr Цитата(Andrei.... @ Jan 9 2007, 16:21) Кс... Jan 9 2007, 16:28       aaarrr Цитата(Andrei.... @ Jan 9 2007, 15:43) да... Jan 9 2007, 16:16        Andrei.... Цитата(aaarrr @ Jan 9 2007, 16:16) Кроме ... Jan 9 2007, 16:35         sff Да немного запамятствовал я..
Цитата(Andrei.... ... Jan 9 2007, 17:18          Andrei.... Цитата(sff @ Jan 9 2007, 17:18) Да немног... Jan 9 2007, 17:30           Andrei.... To aaarrr:
У вас присутствуют такие строки в прим... Jan 9 2007, 17:43 Doka Цитата(etoja @ Dec 28 2006, 16:32) Мои ус... Dec 28 2006, 23:13  Pat Цитата(Doka @ Dec 28 2006, 22:13) вот еще... Dec 28 2006, 23:36  el34 Цитата(Doka @ Dec 28 2006, 23:13) Цитата(... Dec 28 2006, 23:43 КонстантинТ Посмотри
http://sourceforge.net/projects/efsl Dec 29 2006, 01:27 etoja В файле "sd_spi_ep93xx.rar ", присланном... Dec 29 2006, 07:43 Doka Цитата(etoja @ Dec 29 2006, 07:43) В файл... Dec 29 2006, 10:26 etoja Doka, подумай хотя бы на один ход вперёд. Dec 29 2006, 10:42 Doka Цитата(etoja @ Dec 29 2006, 10:42) Doka, ... Dec 29 2006, 11:04 dm_mur Флеш File System от PRLLC. Есть в местных закромах... Jan 9 2007, 09:50 aaarrr Цитата(Andrei.... @ Jan 9 2007, 16:35) СТ... Jan 9 2007, 18:16 Andrei.... Похоже всё заработало, запутка была в том что я ба... Jan 10 2007, 12:04  sff Цитата(Andrei.... @ Jan 10 2007, 12:04) О... Jan 10 2007, 12:17   Andrei.... почему то на команду ACMD41 приходит бит busy=0 и ... Jan 10 2007, 18:14 aaarrr Так надо дождаться, пока карта не будет готова, по... Jan 10 2007, 18:31 Andrei.... Цитата(aaarrr @ Jan 10 2007, 18:31) Так н... Jan 11 2007, 09:48  sff Цитата(Andrei.... @ Jan 11 2007, 09:48) т... Jan 11 2007, 10:57  aaarrr Цитата(Andrei.... @ Jan 11 2007, 09:48) .... Jan 11 2007, 11:20   Andrei.... Цитата(aaarrr @ Jan 11 2007, 11:20) Цитат... Jan 12 2007, 15:55    aaarrr Цитата(Andrei.... @ Jan 12 2007, 15:55) А... Jan 12 2007, 16:07     Andrei.... Цитата(aaarrr @ Jan 12 2007, 16:07) Цитат... Jan 12 2007, 16:54      aaarrr Цитата(Andrei.... @ Jan 12 2007, 16:54) О... Jan 12 2007, 17:06       Andrei.... Цитата(aaarrr @ Jan 12 2007, 17:06) Цитат... Jan 12 2007, 18:22        aaarrr Цитата(Andrei.... @ Jan 12 2007, 18:22) Д... Jan 12 2007, 18:32         Andrei.... Цитата(aaarrr @ Jan 12 2007, 18:32) Ответ... Jan 15 2007, 16:19          aaarrr Цитата(Andrei.... @ Jan 15 2007, 16:19) В... Jan 15 2007, 16:48           Andrei.... Цитата(aaarrr @ Jan 15 2007, 16:48) Цитат... Jan 15 2007, 18:05 aaarrr Да, только по данным. Jan 15 2007, 18:34 Andrei.... Цитата(aaarrr @ Jan 15 2007, 18:34) Да, т... Jan 16 2007, 16:21  Andrei.... Любопытный момент: есть две SD карты (Transcend 51... Jan 22 2007, 15:21 aaarrr 25Мбит/линию - это скорость интерфейса, и, скорее ... Jan 22 2007, 15:29 Andrei.... Почему при чтении блоков с адресов близких к макси... Jan 23 2007, 12:43  Fortune Цитата(Andrei.... @ Jan 23 2007, 13:43) П... Feb 1 2007, 13:54 Fortune Цитата(Andrei.... @ Dec 28 2006, 16:13) У... Feb 1 2007, 14:10 Andrei.... Цитата(Fortune @ Feb 1 2007, 14:10) Как и... Feb 1 2007, 15:19  Fortune Цитата(Andrei.... @ Feb 1 2007, 16:19) 1.... Feb 1 2007, 16:28   Andrei.... Как я понимаю вы пытаетесь работать в SPI режиме (... Feb 1 2007, 17:37   AlexBoy Цитата(Fortune @ Feb 1 2007, 15:28) Если ... Feb 1 2007, 20:07    Fortune Цитата(AlexBoy @ Feb 1 2007, 21:07) Вот к... Feb 2 2007, 15:26  Fortune Цитата(Andrei.... @ Feb 1 2007, 16:19) 1.... Feb 1 2007, 17:44  Fortune Может кто-то поделится информацией насчет следующе... Feb 2 2007, 15:37   Andrei.... Цитата(Fortune @ Feb 2 2007, 15:37) Может... Feb 2 2007, 17:35    Fortune Цитата(Andrei.... @ Feb 2 2007, 18:35) По... Feb 5 2007, 15:22     AlexBoy Цитата(Fortune @ Feb 5 2007, 14:22) Цитат... Feb 5 2007, 19:24 Rudolph Цитата(aaarrr @ Jan 9 2007, 17:59) Да, ст... Jul 3 2007, 11:57 KAlex Цитата(Rudolph @ Jul 3 2007, 15:57) А что... Jul 3 2007, 12:34 a3r3 Цитата(Rudolph @ Jul 3 2007, 15:57) А что... Jul 3 2007, 13:01 Rudolph Спасибо.
Не могли бы вы поделиться ссылками на ка... Jul 3 2007, 13:19  Master Цитата(a3r3 @ Jul 3 2007, 18:40) Цитата(R... Aug 2 2007, 08:27 KAlex Цитата(a3r3 @ Jul 3 2007, 17:01) Пять сот... Jul 3 2007, 13:50 a3r3 Цитата(Rudolph @ Jul 3 2007, 17:19) Не мо... Jul 3 2007, 14:40 Rudolph Подскажите, плз.
EP9302 работа с SD-card в SPI-mo... Jul 30 2007, 12:43 Vitaliy_ARM Почитайте даташит на микроконтроллер LPC2378, в не... Jul 31 2007, 13:55 Rudolph Спасибо.
Вот тут возник вопрос по EP9302. Какие з... Aug 9 2007, 08:28 a3r3 SPI у EP93xx адекватно ведет себя только в режиме ... Aug 10 2007, 08:49 Rudolph Спасибо.
Вот что-то не могу найти в документации:... Aug 10 2007, 12:10 zltigo Цитата(Rudolph @ Aug 10 2007, 15:10) како... Aug 10 2007, 12:54  a3r3 Цитата(zltigo @ Aug 10 2007, 16:54) Если ... Aug 10 2007, 13:08 a3r3 По-идее, 0x01. В SPI режиме не обязательно использ... Aug 10 2007, 12:25 Rudolph Изввиняюсь, сразу не сказал. Подразумевается, что ... Aug 10 2007, 12:59 Rudolph При помощи CMD1 карточка (microSD 1024 Mb Kingston... Aug 10 2007, 13:40 a3r3 Цитата(Rudolph @ Aug 10 2007, 17:40) Если... Aug 10 2007, 15:25  Rudolph Цитата(a3r3 @ Aug 10 2007, 19:25) Это как... Aug 13 2007, 09:04 zltigo Цитата(Rudolph @ Aug 10 2007, 16:40) Посл... Aug 10 2007, 15:50 Rudolph Сейчас слегка переделал прием, чтобы только непрер... Aug 13 2007, 12:05 a3r3 Цитата(Rudolph @ Aug 13 2007, 13:04) В ма... Aug 13 2007, 16:12 Rudolph Присылаются, только стандарт не оговаривает, что в... Aug 14 2007, 08:30 Rudolph Короче, это я лось педальный. У меня ФФ-ы выкидыва... Aug 15 2007, 09:46 Dron_Gus Посылку и прием лучше сделать одной универсальной ... Nov 3 2008, 10:15 John Silver делал,
без разницы (собственно, как и предполагал... Nov 3 2008, 11:04 Dron_Gus Тогда по пунктам. Если после отправки не дождаться... Nov 3 2008, 16:24 John Silver Цитата(Dron_Gus @ Nov 3 2008, 18:24) Тогд... Nov 4 2008, 08:58 Leopold111 Здравствуйте!!! Подскажите с инициализ... Nov 3 2008, 17:43 Dron_Gus Кристал селект ручками попробуйте дергать. У САМов... Nov 4 2008, 10:37 aaarrr Цитата(Dron_Gus @ Nov 4 2008, 13:37) Крис... Nov 4 2008, 10:45 John Silver CS дергаю вручную
DESELECT();
Delay_mks (100);... Nov 4 2008, 12:32 aaarrr Цитата(John Silver @ Nov 4 2008, 15:32) О... Nov 4 2008, 19:58  Wano Цитата(aaarrr @ Nov 4 2008, 21:58) Тогда ... Nov 4 2008, 21:03   aaarrr Цитата(Wano @ Nov 5 2008, 00:03) Кароче е... Nov 4 2008, 22:19    Wano Цитата(aaarrr @ Nov 5 2008, 00:19) Такого... Nov 5 2008, 10:54     aaarrr Цитата(Wano @ Nov 5 2008, 13:54) Не может... Nov 5 2008, 15:13 John Silver Вощем добил работу с картой. Испытал создание дире... Nov 5 2008, 07:23 Dron_Gus Цитата(John Silver @ Nov 5 2008, 10:23) П... Nov 6 2008, 11:14
3 страниц
1 2 3 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|