BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> SD карта след изтриване в SPI режим (force erase)
thrawn
Публикувано на: 29-02-2024, 09:53
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3637
Регистриран на: 17.01.17



Имам странна драма с някои sd карти след ресет. Компютърът не ги разпознава.

Ситуацията е следната - заключена карта, бия и ресет и тя се лъсва цялата. Когато я използвам директно (spi mode) мога да чета и пиша по нея без никакви проблеми. Но когато я сложа в четец на компютър (usb) той не я разпознава като устройство

Ето съдържанието на CSD регистърът на такава карта 0x40 0x0e 0x00 0x32 0x5b 0x59 0x00 0x00 0x73 0x67 0x7f 0x80 0x0a 0x40 0x00 0xf1 в който не виждам нищо нередно.

Някой имал ли е подобен проблем и успял ли е да го реши някак?

Това мнение е било редактирано от thrawn на 29-02-2024, 09:58
PMEmail Poster
Top
avsrm
Публикувано на: 29-02-2024, 18:33
Quote Post



Име: Но
Група: Потребител
Ранг: Посетител

Мнения: 79
Регистриран на: 21.01.08



много малко съм в час но при мен работи нещо подобно преди доста време така :
CODE

#define SD_INIT_TRYS    0x03
#define SDCT_MMC        0x01                    
#define SDCT_SD1        0x02                    
#define SDCT_SD2        0x04                  
#define SDCT_SDC        (SDCT_SD1|SDCT_SD2)    
#define SDCT_BLOCK      0x08                  
#define SD_BLK_SIZE     512



Имам някакви спомени че имаше някакъв дебъг брояч който се добавяше в дивайса но май не беше в работния режим на картата ...
ама вече ми е тъмница.

Това мнение е било редактирано от avsrm на 29-02-2024, 18:34


--------------------
Знам само малко от Borland Builder C++ 6.
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 29-02-2024, 18:49
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3637
Регистриран на: 17.01.17



тия константи не ми говорят нищо
PMEmail Poster
Top
avsrm
Публикувано на: 29-02-2024, 19:04
Quote Post



Име: Но
Група: Потребител
Ранг: Посетител

Мнения: 79
Регистриран на: 21.01.08



Виш го в stm32/cube ...
Ако ти върши работа, като пример


--------------------
Знам само малко от Borland Builder C++ 6.
PMEmail PosterUsers Website
Top
ici
Публикувано на: 05-03-2024, 18:10
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18577
Регистриран на: 06.06.04



QUOTE (avsrm @ 29-02-2024, 20:04)
Виш го в stm32/cube ...
Ако ти върши работа, като пример

Тия от ST ми скъсАха нервите днес. За един проект изведнъж наш'те решиха че им трябва uSD. Тази платформа (на STM32F777) се използва от около 7 години, има на платката предвидено за такава, но на никой не му беше дотрябвало до скоро. Аз вече се бях сборил за комбинацията от D-Cache + DMA за Cortex-M7, ама сега FAT-a при маунтване връща FR_NOTREADY. Сборих се и с това, като инициализрах 1бит бус, а след инициализация връщам на 4-бита. Не работи стабилно, затова го оставих го на 1бит, да се ебават с останалото, после ще го мисля.


--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 09-03-2024, 17:42
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3637
Регистриран на: 17.01.17



Днес купих нов четец и той прочете всички карти които стария не четеше. Явно проблемът е бил в него.
PMEmail Poster
Top
ici
Публикувано на: 09-03-2024, 17:55
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18577
Регистриран на: 06.06.04



QUOTE (thrawn @ 09-03-2024, 18:42)
Днес купих нов четец и той прочете всички карти които стария не четеше. Явно проблемът е бил в него.

При мен сагата продължава. Платките произведени в България и Франция работят, даже вече работят стабилно на 4 бита, като им намалих клока, но тези произведени в Китай не познават SD картите. В понеделник ще ги гледат за хардуерни проблеми, щото те са за Китайският пазар и ще се правят там.

Това мнение е било редактирано от ici на 09-03-2024, 18:00


--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
Дон Реба
Публикувано на: 09-03-2024, 20:21
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10192
Регистриран на: 11.11.06



QUOTE (thrawn @ 09-03-2024, 17:42)
Днес купих нов четец и той прочете всички карти които стария не четеше. Явно проблемът е бил в него.

ако тия карти ще се четат от външни хора, камъка още е в твоята градина, не става да кажеш на клиент "абе не ти е добре четеца". ако обаче ще си ги четеш само на твои устройства, става и така
PM
Top
thrawn
Публикувано на: 10-03-2024, 06:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3637
Регистриран на: 17.01.17



То употребата на тия карти е силно "профилирана". Те се ползват като сериен флаш в устройство което си чете и пише по тях специфична за него информация (за което не се ползва стандартна файлова система) затова и картите са заключени. Което от една страна ги защитава от повреда (да не вземе някой да ги форматира на ПС например и да почне да си пише на тях) от друга страна защитава данните записани на картата от непозволен достъп.
Тия карти обаче се налага понякога да се подменят, което води ди необоснован разход за нова карта. Затова просто ги рестартирам, наливам чист img файл (демек форматирам картата така, че устройството да си я познае, че си е негова) и то в последствие отново си я заключва.

Та цялата ми дарама беше, че тия img-та са ми на компа и ги наливам през обигновен четец, но някои карти просто не ги виждах което от своя страна значи, че не мога да ги инициализирам за да ги ползвам повторно.

---
ici, ти тия карти в SD режим ли ги ползваш? Щото от цялото ровене из нета по моя проблем (spi обаче) попаднах на подобен на твоя проблем - мистериозно, някои карти не се инициализират коректно. Като проблемът бил в таймингът и хората го решават като пускат един два празни байта по шината преди всяка команда към картата.

Това мнение е било редактирано от DarkOne на 10-03-2024, 07:53
PMEmail Poster
Top
ici
Публикувано на: 10-03-2024, 07:53
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18577
Регистриран на: 06.06.04



sd4. Картата се използва само за логове. Има още две файлови системи - на външна PSRAM и на QSPI NOR Flash, където има критична информация, но всичко се достъпва само през фърмуера. Картата усера не може да я вади и слага, тя си е вътре в кутията.

Добавянето на hsd1.Init.BusWide = SDMMC_BUS_WIDE_1B; оправи нещата
CODE
/**
 * @brief  Initializes the SD card device.
 * @retval SD status
 */
uint8_t BSP_SD_Init(void)
{
 uint8_t sd_state = MSD_OK;
 /* Check if the SD card is plugged in the slot */
 if (BSP_SD_IsDetected() != SD_PRESENT)
 {
   return MSD_ERROR_SD_NOT_PRESENT;
 }
 /* HAL SD initialization */
 hsd1.Init.BusWide = SDMMC_BUS_WIDE_1B;
 hsd1.Init.ClockDiv = 2;
 sd_state = HAL_SD_Init(&hsd1);
 /* Configure SD Bus width (4 bits mode selected) */
 if (sd_state == MSD_OK)
 {
   /* Enable wide operation */
   if (HAL_SD_ConfigWideBusOperation(&hsd1, SDMMC_BUS_WIDE_4B) != HAL_OK)
   {
     sd_state = MSD_ERROR;
   }
 }

 return sd_state;
}


Това мнение е било редактирано от ici на 10-03-2024, 08:11

Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка


--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0