|
Промлема инициализации SD-card в SD mode, Промлема инициализации SD-card в SD mode |
|
|
|
Nov 3 2005, 15:23
|
Группа: Новичок
Сообщений: 4
Регистрация: 3-11-05
Пользователь №: 10 437

|
Имеется SD-карточка с контроллером на ПЛИСе (прошивка с opencores.org). При работе с SPI-режимом никаких проблем нету. Теперь нужно поднять SD - режим. Поднимаю CS в 1. При посылке команд CMD0, CMD55,ACMD41 никакого ответа не наблюдается (0xFF). если опустить CS в 0 и выполнить последовательно команды CMD0,CMD55,ACMD41 то все отрабатывает нормально, но при посылке команды CMD2 возвращает 0x04 (Illegal command). Что в общем то и понятно.... в SPI режиме CMD2 нету  ( Как же все таки инициализировать SD режим??..
|
|
|
|
|
 |
Ответов
|
Apr 27 2011, 08:49
|
Участник

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

|
Свой лонг и команду распихиваю в массив с элементами типа unsigned char. Далее, как я понимаю, указатель *contentCRCPtr (у Вас он звался *buff) цикл за циклом проводит со всей последовательностью свои хитрые операции. Я кдаю ему CMD0 в виде 0х40 и нули во все 4 байта массива. Расчитанное значение равно 0x66c, после приведения к типу чар остается 0x6C. Возможно я неправильно понимаю работу указателей или не так передаю начало массива функции?.. Код unsigned char t_cmd (unsigned char cmd, unsigned long content) { unsigned long mask = 0b10000000; unsigned char n, res, CRC = 0, contentCRC[5]={0}; ... contentCRC[0] = cmd; // В первую ячейку кладу команду contentCRC[1] = content; contentCRC[2] = content>>8; contentCRC[3] = content>>16; contentCRC[4] = content>>24; // В остальные распихиваю полезное содержимое CRC = sd_crc7(contentCRC, 39); ... }
unsigned int sd_crc7(unsigned char *contentCRCPtr, unsigned int len) { unsigned int a, crc = 0;
while(len--) { crc ^= *contentCRCPtr++; a = 8; do { crc <<= 1; if(crc & (1 << 8)) crc ^= 0x12; // if(crc & 0x100) crc ^= 0x12; } while(--a); } return (crc & 0xfe); }
Сообщение отредактировал toretto - Apr 27 2011, 08:49
|
|
|
|
Сообщений в этой теме
Lblsa Промлема инициализации SD-card в SD mode Nov 3 2005, 15:23 Camelot ЦитатаИмеется SD-карточка с контроллером на ПЛИСе ... Nov 4 2005, 06:37 Lblsa Цитата(Camelot @ Nov 4 2005, 09:37)Так в SD р... Nov 4 2005, 11:34 Camelot Пины данных (D3-D0) и CMD подтянуты на 3.3 В.
Посл... Nov 4 2005, 12:54 Lblsa Цитата(Camelot @ Nov 4 2005, 15:54)Пины данны... Nov 4 2005, 14:06 Camelot ЦитатаНа 25МГц.
так и инициализирую, только CMD55,... Nov 4 2005, 19:59 Lblsa А повторяете команды в такой же последовательности... Nov 7 2005, 14:22 Camelot Сорри, н... Nov 8 2005, 09:34 LexaK А нет ли у вас случаем библиотеки для работы с кар... Jun 13 2007, 18:56 toretto Не могу разобраться в алгоритме расчета CRC в режи... Apr 26 2011, 19:27 aaarrr Цитата(toretto @ Apr 26 2011, 23:27) Не м... Apr 26 2011, 20:08 toretto Спасибо. Функция получает строку, для которой необ... Apr 27 2011, 04:23 aaarrr Цитата(toretto @ Apr 27 2011, 08:23) В че... Apr 27 2011, 07:50 aaarrr Длина должна быть в байтах - 5. И порядок байт для... Apr 27 2011, 08:53 toretto Спасибо, добрый человек. Все так, как Вы сказали. ... Apr 27 2011, 13:10 toretto возникло вот такое затруднение: при инициализации ... Nov 4 2011, 11:29 toretto приведу осцилограмки
ниже команда cmd8:
посылка... Jan 31 2012, 08:03 toretto карту проинициализировал, видимо была нестыковка п... Feb 9 2012, 12:32 aaarrr Нет, отключить можно только в режиме SPI. Feb 9 2012, 12:43 toretto в спецификации на странице 8 приведена диаграмма з... Feb 16 2012, 08:05 toretto del Mar 12 2012, 07:26 toretto Цитата(toretto @ Nov 4 2011, 14:29) возни... Feb 29 2012, 05:40 aaarrr Цитата(toretto @ Feb 29 2012, 09:40) проб... Feb 29 2012, 09:54 toretto поставил в цикле CMD3, в итоге на первую команду п... Feb 29 2012, 12:57 aaarrr Вы лучше опишите подробно, что передается, и что о... Feb 29 2012, 13:03 toretto 1. 100 клоков
2. CMD0 0x40, 0, 0, 0, 0 0x95 -> ... Mar 1 2012, 06:37 aaarrr Цитата(toretto @ Mar 1 2012, 10:37) 13. ... Mar 1 2012, 12:01 toretto спасибо. глаз замылился, совсем забыл об RCA в это... Mar 1 2012, 13:01 nikita1584 Здравствуйте! Дабы не плодить новую ветку по р... Mar 27 2012, 16:05 KAlex Цитата(nikita1584 @ Mar 27 2012, 20:05) С... Mar 30 2012, 13:32  aaarrr Цитата(KAlex @ Mar 30 2012, 17:32) Как мо... Mar 30 2012, 13:44 aaarrr А вопрос-то в чем? Что и как не работает? Mar 27 2012, 16:42 nikita1584 Я читаю данные, которые изначально были на карте, ... Mar 28 2012, 09:27 toretto не хочу заводить новую тему о SD-картах, продолжу ... Apr 3 2012, 06:04 aaarrr Цитата(toretto @ Apr 3 2012, 10:04) читаю... Apr 3 2012, 06:12 toretto а как ведут себя карты с индексом скорости х150? н... Apr 3 2012, 08:01 aaarrr Все это скорости линейных операций. На случайном ч... Apr 3 2012, 08:39 nikita1584 отправляю CMD24: 0x580010080065
получаю ответ 0x18... Apr 3 2012, 11:52 KAlex Цитата(nikita1584 @ Apr 3 2012, 15:52) чи... Apr 10 2012, 08:20 nikita1584 Извиняюсь, я не правильно написал, RCA не нулевой.... Apr 11 2012, 09:32 KAlex А какой респонс на CMD3 при инициализации карты?
И... Apr 11 2012, 14:11 nikita1584 Большое спасибо тем кто пытался помочь!
Я до... Apr 11 2012, 20:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|