| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| SD карта - CMD_SEND_CSD http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=11685 |
Страница 1 от 1 |
| Автор: | @@@ [ Пон Сеп 02, 2013 5:56 pm ] |
| Заглавие: | SD карта - CMD_SEND_CSD |
Има ли някаква особеност при четене на CSD на SD карта - при инициализация се прочита успешно, а при опит да се прочете отново дава таймаут. Предполагам нещо трябва да се разреши/нулира или от сорта за следващо четене. Трябва да сменя някой друг флаг в CSD структурата и затова ми трябва първо прочитане на актуални стойности и след това програмиране. |
|
| Автор: | miro_atc [ Пон Сеп 02, 2013 6:42 pm ] |
| Заглавие: | Re: SD карта - CMD_SEND_CSD |
не е зле да прегледаш стандарта примерно тук вътре има картинки със стейтове и т.н. Доколкото си спомям няма промяна на стейтовете специално за работа с CSD. Вероятно бъркаш нещо основно.... Обикновено първо се подава CMD0, за да я вкараш в SPI режим (ако ти е такъв интерфейса). После CMD8 гледаш каква е версията на картата и в зависимост от нея правиш една или друга инициализация... Но щом ти отговаря веднъж, значи си я докарал някак си... Може би не изчиташ всичките 16 байта на CSD... ако не искаш да ги четеш всичките имаше команда да спреш дейтаблока. Освен това прегледай внимателно логиката на командата, първо ти пращаш команда, после тя ти отговаря с един респонс и след него следва дейтаблок, след дейта блока имаш crc което най-малкото трябва да игнорираш, т.е. да изчетеш.. |
|
| Автор: | @@@ [ Вто Сеп 03, 2013 10:18 am ] |
| Заглавие: | Re: SD карта - CMD_SEND_CSD |
Ползвам стандартни библиотеки на ST, така че инициализацията е направена както трябва. CSD се прочита нормално в началото. По-късно обаче опитвайки се да го прочета отново получавам таймаут - включително и извикването на същата инициализираща функция. |
|
| Автор: | miro_atc [ Вто Сеп 03, 2013 10:49 am ] |
| Заглавие: | Re: SD карта - CMD_SEND_CSD |
офф... относно ST библиотеките мнението ми е че е по-добре да не се ползват, ама това си ми е лично мнение и не го натрапвам Като начало ако може да си изкараш някакъв трейс каква команда се опитваш да пращаш, какво отговаря картата и т.н. Не знам за какво точно ще ползваш карти, но ако ти трябва надеждност най-вертоятно ще ти се наложи да променяш библиотеки. Така че трейсването ще ти бъде полезно и след първоначалното подкарване. По принцип няма таймоути при картите. Ти даваш команда, то ти връща response. Първо трябва да видиш дали наистина е респонс на командата ти, а не картата да ти говори още от предната команда нещо. След като се убедиш че наистина е респонс, трябва да видиш какъв е респонса, дали е грешка или проблем и трябва да прекратиш командата или е ОК и може да продължиш с фаза данни (ако командата е за пращане или получаване на данни). Библиотечките често имат готови функиции - инициализация, четене на сектор, писане на сектор и т.н. И тия функиции минават или не, но като не минат не може да разбереш защо. Затова трябва трейс да видиш какво точно става... |
|
| Автор: | @@@ [ Вто Сеп 03, 2013 11:33 am ] |
| Заглавие: | Re: SD карта - CMD_SEND_CSD |
Странното е, че на същото място като правя четене на блок всичко минава нормално. Т.е. конкретната команда има претенции. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|