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

 
 
15 страниц V  « < 8 9 10 11 12 > »   
Reply to this topicStart new topic
> SD Card - програмная реализация интерфейса, У кого нибудь есть примеры реализации взаимодействия с SD Card?
gnomik_
сообщение Dec 22 2009, 16:38
Сообщение #136


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Цитата(KAlex @ Dec 22 2009, 18:30) *
В ветке "для начинающих" выкладывал исходники.
http://electronix.ru/forum/index.php?showtopic=70358


Спасибо.

Вот еще бы совет по подключению к MK для реализации SD-mode... rolleyes.gif
Go to the top of the page
 
+Quote Post
KAlex
сообщение Dec 23 2009, 08:33
Сообщение #137


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Как в ДШ нарисовано, так и подключал.
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Dec 24 2009, 04:34
Сообщение #138


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Цитата(KAlex @ Dec 23 2009, 18:33) *
Как в ДШ нарисовано, так и подключал.


Ваш МК был 3-х вольтовый? У меня 5-ти вольтовый. Интересно согласование. rolleyes.gif
Может у меня ДШ не того...Может я чего не доглядел. Да и английский не русский?

Спасибо.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Dec 24 2009, 05:33
Сообщение #139


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(gnomik_ @ Dec 24 2009, 07:34) *
Ваш МК был 3-х вольтовый? У меня 5-ти вольтовый. Интересно согласование. rolleyes.gif

Стр. 99, Рис. 4-1. Как-то, так.. rolleyes.gif
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Dec 28 2009, 04:11
Сообщение #140


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Цитата(blackfin @ Dec 24 2009, 15:33) *
Стр. 99, Рис. 4-1. Как-то, так.. rolleyes.gif


Спасибо за ссылку. Жаль, что там только MMC и SPI. rolleyes.gif
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Jan 2 2010, 13:56
Сообщение #141


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Выложите пожалуйста, кому не жалко, значение посчитанного CRC16 (полином для SD), для 512 байт заполненных одним значением, например 0хDD или 0х0C или любыми другими значениями. Желательно несколько значений. Хочу функцию проверить.

Спасибо. rolleyes.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 2 2010, 14:20
Сообщение #142


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Считать лень. Можете просто сравнить с этой функцией:
CODE

const unsigned short sd_crc16_table_a[16] =
{
0x0000, 0x1231, 0x2462, 0x3653,
0x48c4, 0x5af5, 0x6ca6, 0x7e97,
0x9188, 0x83b9, 0xb5ea, 0xa7db,
0xd94c, 0xcb7d, 0xfd2e, 0xef1f
};

const unsigned short sd_crc16_table_b[16] =
{
0x0000, 0x1021, 0x2042, 0x3063,
0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b,
0xc18c, 0xd1ad, 0xe1ce, 0xf1ef
};

unsigned short sd_crc16(unsigned char *buff, unsigned int len)
{
unsigned char data;
unsigned short crc = 0;

while(len--)
{
data = *buff++ ^ (crc >> 8);
crc = (sd_crc16_table_a[(data & 0xf0) >> 4] ^ sd_crc16_table_b[data & 0x0f]) ^ (crc << 8);
}
return crc;
}


Оказывается, я ее уже выкладывал в этой теме. Хоть бы поискали.
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Jan 3 2010, 03:54
Сообщение #143


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Цитата(aaarrr @ Jan 3 2010, 00:20) *
Считать лень. Можете просто сравнить с этой функцией:
..............
Оказывается, я ее уже выкладывал в этой теме. Хоть бы поискали.


Моя реализация отличается от вашей. Цели не было брать чужой (правильный) код.

Хотел только узнать готовые значения для проверки своих реализаций функции расчета CRC16(SD).

Для CRC7 добрые люди выкладывали, а вот для CRC16(SD) че-то не нашел.

Спасибо. rolleyes.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 3 2010, 08:54
Сообщение #144


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Подход какой-то странный - чем искать кем-то зачем-то подсчитанные значения, просто берете любую чужую функцию, и считаете ей значение для чего угодно.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Jan 3 2010, 10:45
Сообщение #145


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



В свое время тоже намучился с CRC.
Выбирая между табличным и вычислителным методами пришел к компромиссу.
Как мне кажется оптимальным будет вычисление таблицы в ОЗУ и дальнейшая работа с ней.
И код компактный, и работает быстро.
Код
#define CRC16_POLYNOMIAL 0x1021
static unsigned short crc16_syndrome_table[256];

void gen_crc16_syndrome_table(void) {
  unsigned int c;
  unsigned int n;
  unsigned char k;
  unsigned int poly; // polynomial exclusive-or pattern
  
  poly = CRC16_POLYNOMIAL;
  for (n=0; n<256; n++) {
    c = n << 8;
    for(k=0; k<8; k++)
      c = c & (0x8000) ? poly ^ (c << 1) : (c << 1);
    crc16_syndrome_table[n] = c;
  }
}

unsigned short crc16(unsigned char * pcBlock, unsigned short len) {
  unsigned short crc = 0xFFFF;
  while (len--) crc = (crc << 8) ^ crc16_syndrome_table[(crc >> 8) ^ *pcBlock++];
  return crc;
}
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 3 2010, 12:04
Сообщение #146


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(KAlex @ Jan 3 2010, 13:45) *
Выбирая между табличным и вычислителным методами пришел к компромиссу.
Как мне кажется оптимальным будет вычисление таблицы в ОЗУ и дальнейшая работа с ней.

Экономия, допустим, Flash и повышение быстродействия (не всегда) путем засирания драгоценной для микроконтроллеров RAM таблицей это компромисс? Между чем и чем? Пример, именно компромисса между полным табличным и вычислительным методом приводил aaarrr. Причем с привязкой к конкретному вопросу, а не просто "CRC". Компромиссным вариантом в некоторых случаях может быть и развертывание побитного цикла.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Jan 3 2010, 13:27
Сообщение #147


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Цитата(aaarrr @ Jan 3 2010, 18:54) *
...... просто берете любую чужую функцию, и считаете ей значение для чего угодно.


Зачем чужую? Своя есть. Хочу проверить как работает.
Ведь чужих вариантов тоже не один. rolleyes.gif

В ДШ есть пример: 512 по 0хFF, хотел проверить другие наборы.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Jan 5 2010, 08:55
Сообщение #148


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(zltigo @ Jan 3 2010, 15:04) *
Экономия, допустим, Flash и повышение быстродействия (не всегда) путем засирания драгоценной для микроконтроллеров RAM таблицей это компромисс?

А я и не претендовал на истину в последней инстанции. biggrin.gif
Это для моей конкретной задачи. RAMа много, ROMа мало. Вот и выкручиваюсь как могу.
И код выкладывал не для того, чтобы похвалиться. А для того, что может быть кому пригодится.
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Jan 5 2010, 12:17
Сообщение #149


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



Цитата(KAlex @ Jan 5 2010, 18:55) *
А я и не претендовал на истину в последней инстанции. biggrin.gif
Это для моей конкретной задачи. RAMа много, ROMа мало. Вот и выкручиваюсь как могу.
И код выкладывал не для того, чтобы похвалиться. А для того, что может быть кому пригодится.


Я думаю вы сделали все правильно. Спасибо вам за ваш код.
Он пригодится.

Помогать сложно. Критиковать просто...
Go to the top of the page
 
+Quote Post
gnomik_
сообщение Jan 9 2010, 05:01
Сообщение #150


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-11-09
Пользователь №: 53 443



При инициализации в SD-mode карта отвечает на команды, но ответы странные:

на CMD8 отвечает 00 00 00 02 00 FF
на CMD55 отвечает 2C 00 00 00 00 7F
на ACMD41 отвечает 3F 81 FE 00 03 FF
на CMD2 выдает 14 байт, а не положенные 17(если конечно хвост не сплошные FF - что тоже странно)

Чего-то не понимаю, а чего не понимаю, еще не понимаю biggrin.gif

Может у кого было подобное, помогите советом, подскажите чего делать.? rolleyes.gif
Go to the top of the page
 
+Quote Post

15 страниц V  « < 8 9 10 11 12 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


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


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