| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем със SDHC карта http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=16603 |
Страница 1 от 1 |
| Автор: | Пенев [ Сря Юни 19, 2019 7:08 pm ] |
| Заглавие: | Проблем със SDHC карта |
Здравейте колеги Правя библиотека за една сд карта модел SDHC 16ГБ - от новите.Почти запуснах картата - направих инициализацията , четенето на единичен сектор и на мулти сектори , направих и изтриването на сектори и записа на единичен сектор. Остана ми да направя записа на мулти сектори но не ми се получава. Описвам как го правя - подавам команда 25 за запис на мулти сектори , след което чакам отговора на картата , след което за въртам цикъл в който подавам за старт 0xFC и след това 512 байта данни (толкова ми е блока) и накрая два байта 0xFF 0xFF за чек сума като съм изключил предварително проверката на чек сумата. След първи блок картата ми отговаря нормално със 0x05 и 0x00 но на следващите блокове не ще. пак подавам 0xFC и пак 512 байта и пак 2 байта чек сума но повече не отговаря .Въпросът ми е - каква е правилната поредица байтове при записа на мулти сектори на сд картата ? |
|
| Автор: | miro_atc [ Сря Юни 19, 2019 8:20 pm ] | ||||||||||||||||||
| Заглавие: | Re: Проблем със SDHC карта | ||||||||||||||||||
Предполагам ползваш SPI интерфейс (за SDIO e различно)... ей ти малко код:
В началото имаш 23-та команда... еднократно. Не става ясно правиш ли го, как циклиш, чакаш ли картата също не ми е ясно... всъщност ето ти и трансфера:
|
|||||||||||||||||||
| Автор: | Пенев [ Сря Юни 19, 2019 9:42 pm ] |
| Заглавие: | Re: Проблем със SDHC карта |
Всичко ми е същото освен това if (xmit_datablock(rbuff, 0xFC) != RES_OK) промених кода да чака отговор и пак не се получава да не би да иска коректна чек сума въпреки че е изключена? При някой опити записва коректно само първия сектор а другите не ги записва въобще и зацикля картата като не приема никаква друга команда. При други опити записва още няколко сектора но пише глупости , явно не мога да улуча поредицата на подаване на команди и байтове както му е редът. На края на първия блок си отговаря нормално както си му е редът със 0xE5 и 0x00 което 0xE5 като се AND със 0x1F и се получава коректния отговор 0x05. И след това на втория блок става мишмаша. Рових в интернет няколко вечера но всичко което намирам за дадения проблем е една картинка със правоъгълничета вместо команди и данни и явно всички са копирали тази картинка едни от други и няма никакво ясно и коректно описание на алгоритъма и особенностите. Освен библиотеки и пдфи и страници описващи сд картите който изчетох не намерих нищо свястно по въпроса а само обща информация. |
|
| Автор: | miro_atc [ Сря Юни 19, 2019 10:43 pm ] |
| Заглавие: | Re: Проблем със SDHC карта |
чек сумите са изключени по дефаулт, доколкото помня. Но искрено те съветвам да ги включиш. Още повече, че има вероятност да имаш и хардуерен проблем. Щом пишеш или четеш глупости Няма да е зле да боцнеш един скоп да видиш при теб картинката дали е с "правоъгълничета", дали сигналчета от сорта на чип селект са там, където трябват... ей такива работи Иначе стандарта си го има в нета и достатъчно подробно написан. |
|
| Автор: | timt [ Сря Юни 19, 2019 11:21 pm ] |
| Заглавие: | Re: Проблем със SDHC карта |
Да не би още при буферирането да се получава този проблем? Чек сумата ? Ако ти е голяма програмата на чипа може да става мазано! |
|
| Автор: | Пенев [ Сря Юни 19, 2019 11:27 pm ] |
| Заглавие: | Re: Проблем със SDHC карта |
Установката ми за разработка е пик процесор на хид усб и програма на уиндоус. Пик процесора само предава и приема байтове по SPI и управлява чип селекта , така че нищо съществено нямам в него. Работи коректно понеже съм направил инициализацията и четенето и изтриването на блокове и записа на единичен сектор. В него и програмата за уин нямам съмнения. Хардуера ми е наред и софтуера. Просто не мога да улуча протокола за запис на мулти сектори и това е. |
|
| Автор: | Пенев [ Чет Юни 20, 2019 1:23 am ] |
| Заглавие: | Re: Проблем със SDHC карта |
Пак нагодих алгоритъма след всички опити на старото положение. Сега записва четни сектори - 0 и 2 а пък нечетните 1 и 3 пише мишмаш но накрая като подам 0xFD и спира и приема вече други команди. Мислех че е от захранването понеже го захранвам от усб а картата си дърпа доста , та захраних директно от лабораторно захранване. Няма промяна. |
|
| Автор: | timt [ Чет Юни 20, 2019 2:11 am ] |
| Заглавие: | Re: Проблем със SDHC карта |
Няма да съм ти много от полза, с тези карти не съм се занимавал но едва ли ще е такава екзотика понеже и старите устройства трябва да работят с тях. Скоро си дръпнах от фейсбук-а ти Micro SDHC Card и го разгледах като не видях много разлика. Да си призная че и за първи път чух за такива карти HC. Вече взе да ми писва от новите джаджи .... |
|
| Автор: | Цецо [ Чет Юни 20, 2019 10:01 am ] |
| Заглавие: | Re: Проблем със SDHC карта |
Нещо не ти е наред физически с интерфейса и/или управлението на SPI в пика. Особенно както казваш, че чете през едно... Осцилоскопа закачи ли? |
|
| Автор: | slav4o.com [ Чет Юни 20, 2019 1:04 pm ] |
| Заглавие: | Re: Проблем със SDHC карта |
Защо не намалиш скоростта , намали я няколко пъти за пробата |
|
| Автор: | Н'бабане Гт'муан'га [ Чет Юни 20, 2019 1:23 pm ] | |||
| Заглавие: | Re: Проблем със SDHC карта | |||
Инициализацията на картата се прави на 200 килохерца, после може да вдигаш клока, но не повече от 20 мегахерца. Ето ти тук моя файл от ритъла който работи много стабилно. Аз ползвам FatFs, но ти ако ползваш нещо друго си извади само нужните парчета.
|
||||
| Автор: | Пенев [ Пет Юни 21, 2019 6:04 pm ] | ||
| Заглавие: | Re: Проблем със SDHC карта | ||
Начертах алгоритъма който ползвам и който гледах от документите и интернет. SPI ми е на 100кхц - възможно най-ниско. Между байтовете имам 1 мс понеже ползвам хид усб. Записва четни сектори - 0 и 2 а нечетните 1 и 3 пише мишмаш. На четните отговаря нормално със E5 и 00. На нечетните отговаря със FF. Някъде прочетох че във SPI режим се поддържат командите само за четене и запис на единичен блок а на мулти блокове не се поддържат.
|
|||
| Автор: | miro_atc [ Пет Юни 21, 2019 6:31 pm ] | |||||||||
| Заглавие: | Re: Проблем със SDHC карта | |||||||||
Една жена каза има си стандарт... Прочети в него за кои класове CMD25 е mandatory, как се проверява какъв ти е класа, съответно дали трябва да информираш картата за броя на секторите преди да почнеш. Има описано как се прави трансфер с повече сектори, къде ти отговаря с R1, къде ти отговаря с data response, къде може да каже busy и т.н. Описано с думи и нарисувано с картинки... Стандарт като Слънце |
||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|