DIY Electronic projects

Full Version: Micro SD Card - Problemi
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Da li ste imali problema sa micro sd karticama gde posle nekog vremena jednostavno ili prestanu da rade, ili prijave svega par MB memorije umesto par GB koliko imaju i sl.?

Ja uzeo da drndam nekoliko (par no name, 1 kingston) u FAT32 formatu sa arduinom i SdFat lib-om i posle dan dva ove no name te nece da se inicijalizuju, te traze da se formatiraju i sl. a kingston ~ nedelju dana. 

Jel neko ovde imao slicnih problema i da li je nasao neko resenje?
Vidi ovako, postoje dve vrste tih nemoriskih kartica po tehnologiji izrade, MLC (Multi Level Cell) koje cine 99% svih kartica na trzistu i SLC (Single Level Cell) koje spadaju u ostatak.

MLC tehnologija radi tako sto u jednu celiju pamte 2 do 4 bita informacija, kao nekakav kondenzator koji pamti napon u vise nivoa, nije samo 0 ili 1 nego to podele u vise nivoa kako bi dobili vecu gustinu pakovanja informacija.
Te memorije su prilicno “kilave”, njihove memoriske celije mogu da se pisu reda nekoliko stotina puta do par hiljada puta, sa porastom temperature okoline se taj broj upisa jos vise smanjuje/degradira.
U sustini tu nema pomoci, to tako radi!

Dalje, te kartice nemaju nikakav logicki mehanizam za “raspodelu opterecenja/istrosenosti”, kad ih na primer formatiras i krenes da pises po njima one ce uvek pisati od pocetne memoriske lokacije, ako npr recimo updejtujes jedan isti fajl, fizicki se jedne iste memoriske lokacije prepisuju i tako posle nekog vremena pocnu da otkazuju, istrose se celije i tu nema pomoci.

Dalje, sve te memorije su organizivane po blokovina (2, 4, 8, 16Kb) sto znaci da ako zelis da upises fajl samo sa jednim karakterom, fizicki u kartici ce se prepisati ceo jedan blok od npr 4Kb (odatle potice “slack”)

Dakle sve te peripetije sa balansiranjem opterecenja/istrosenosti su prepustene korisniku da se snalazi kako zna i ume!
Tu delimicno pomaze sam OS (ako ga imas) koji to nesto mucka i stalno prepisuje fajlove na nove lokacije kako bi se ublazio taj problem sa trosenjem celija.

SLC tip memorije je nesto malo ozbiljnije, one su nalik klasicnim EEPROM i imaju drasticno vecu izdrzljivost, reda oko 100000 upusa po celiji, isto su organizovane po blokovima od nekoliko Kb.
Cene tih kartica su paprene, oko 100Eur za 8Gb ali uz propisno hendlovanje kroz OS mogu da rade prilicno dugo, to se koristi u industriji.

Kad sve ovo znas onda svatis koliko je npr FRAM tehnoloski napredniji od svih tih memorija jer prakticno se ne trose!
meni nijedna godinama nije otkazala. cinjenica da koristim sandisk ultra i extreme ali da nije do Vaseg uredjaja problme pa da ih unisti?
(07-30-2018, 06:22 AM)Jevrem Wrote: [ -> ]meni nijedna godinama nije otkazala. cinjenica da koristim sandisk ultra i extreme ali da nije do Vaseg uredjaja problme pa da ih unisti?

Ceo problem je na programskom nivou, na programu je da sam brine kako ce da barata sa tim “potrosnim” celijama.
Spomenuti Arduino definitivno nema logiku za balansiranje potrosnje celija, to imaju napredniji OS (*nix).
Jedna od zgodnih varijanti za balansiranje potrosnje je ta da se uvek kada je moguce kreiraju novi fajlovi sa imenom/indexom koji ukazuju na zadnji fajl u nizu, ne da se se radi prepisivanje preko istog fajla nego se “puni” dokle moze pa kad se popuni onda se svi fajlovi pobrisu pa ispocetka (predpostavljam da se pravi nekakav data-loger)
Mislim da ti je problem softverkse prirode.

Pronađi negde "SD formater", besplatna aplikacija koja će ti rešiti "oštećene" kartice da bi ih vratio u ćivot. Nakon toga pogledaj da sam napišeš biblioteku za rad sa SD karticama i koristi isključivo FAT FS framework na embedded nivou ako ti je potreban fajl sistem.

Dok dođeš do hardverskog oštećenja, dost vremenea treba da prođe...
Probao sam ja ovime da ih ocitavim:
https://www.sdcard.org/downloads/formatter_4/

Medjutim, na Windows-u program nece ni da se pokrene kad je micro sd ubacen u komp, stalno puca (na win 10).
Na mac os-u program radi, ali i nakon formatiranja ista stvar.
Uzeo malopre jednu novu, sa njom nista. Kaze:


Quote:Can't access SD card. Do not reformat.

SD errorCode: 0X50,0X0
(07-30-2018, 05:11 PM)vsavic Wrote: [ -> ]Probao sam ja ovime da ih ocitavim:
https://www.sdcard.org/downloads/formatter_4/

Medjutim, na Windows-u  program nece ni da se pokrene kad je micro sd ubacen u komp, stalno puca (na win 10).
Na mac os-u program radi, ali i nakon formatiranja ista stvar.

Ako se dobro sećam, kolega je imao sličan problem. Ispostavilo se da je problem bio u SD card čitaču (lili drajverima) na HP laptopu. Rešio je problem kupovinom nekog jeftinog externog SD card čitača.

Ja imam ASUS laptop i koristim integrisani SD card čitač, nisam imao problema. Realtek čip je u pitanju.
Probao sam i to i sa citacem + sa USB citacem.

Uspeo sam doduse sa diskutil programcetom da namestim da nakon formatiranja da program uspe da izlista fajlove sa SD kartice sa SdFat lib-om, medjutim, kad zavrsi citanje jednom, i kad probam da ponovim isti postupak arduino code ne uspe da izlista po drugi put vec opet prijavi ovu gresku.

Fora sto je taj isti code radio bez problema ranije za citanje, sve dok nisam probao da upisem nesto na SD card, od tad poceli svi problemi.

Citao sam po forumima isto da ima veze i velicina SD kartica, ova sto delimicno radi je 1GB, ove druge sto nece ni to su 8 i 16GB (jbg ne mogu da nadjem neku manju do 2GB da probam njome).
Probaj ovu biblioteku za uSD:
http://elm-chan.org/fsw/ff/00index_e.html
Ima veze svakako sa veličinom SD kartice. Sećam se pre nekih sedam godinam mikroC je mogao da radi samo sa SD karticama ispod 1GBy. Zato je veoma bitno da koristiš firmware koji to podržava. Ja sam ti već predložio FAT-FS, a evo sada i Vojin (FatFs - Generic FAT Filesystem Module).

To je veoma optimalan stek za rad sa fajl sistemom FAT32 i mi smo ga koristili u projektima gde su na testu bile SD/SDHC kartice 8GBy i veće... plus što je free
Hvala drustvo, @npejcic promaklo mi je ovo da si spomenuo FatFs sad tek videh, jbg ne valja da se citaju postovi u pola noci Smile

Probacu sa ovom bibliotekom. BTW, posto cu tek za vikend verovatno imati opet vremena, da priupitam i ovo pre nego se bacim na citanje code-a tamo, da li ova biblioteka podrzava software SPI za komunikaciju, ili bi morao da menjam samu biblioteku za to?
Resio sam problem sa ovom bibliotekom koju trenutno koristim (SdFat).

Fora, nisam ni obracao paznju na to toliko, ali, SRAM je bio ekstremno mali, i to je pravilo probleme. Izgleda da ona poruka: "Low memory available, stability problems may occur." ne treba bas olako da se ignorise Smile
Odlično, bitno je da si rešio. Rad sa SD karticom ipak zahteva malo ozbiljnije mikrokontrolere od recimo PIC16F, ATMEGA 2x i sličnih.
Svojevremeno sam radio sa mikroC SD card rutinama, zatim onim u okviru Microchip MLA i konačno sa Fat-FS. Ove poslednje ih šiju po pitanju
optimizacije...

E sad, ako uzmeš neki Cortex M4-L4 tu imaš i integrisan SD card interfejs, pa sve bude značajno bolje, recimo STM32L476 itd... Takođe, zanimljivost
je da u okviru alata za STM32 mikrokontrolere za generisanje template-a projekta (CubeMX), postoji mogućnost da se automatski ubaci Fat-FS iz samog
CubeMX konfiguratora...