Fórum témák

» Több friss téma
Fórum » SD kártya kezelése PIC-kel
 
Témaindító: brejti, idő: Szept 18, 2006
Témakörök:
Lapozás: OK   11 / 14
(#) Zsora válasza pajti2 hozzászólására (») Szept 27, 2015 / 1
 
Szerintem SPI módban korlátozások vannak e tekintetben (is). Differenciális kisfeszültségű adatátviteli módok csak SD busz módban használhatók. SPI módban a hagyományos (LV-CMOS)logikai szintek érvényesek.
(#) pajti2 válasza Zsora hozzászólására (») Szept 28, 2015 /
 
Én konkrétan arra gondoltam, van-e közöttük, amelyik már nem támogat spi módot, vagy nem tolerálja / nem hajt meg 3.3v-on. Nyilván a fejlődések végett egyszer csak elkövetkezik az az idő is, de ami elavult / csökkentett adattartalmú doksik a kezembe tudtak kerülni internetről, 2011-esben még nem olvastam olyanról, hogy a hobbystáknak bocsi, de ideje áttérni 1.8v-ra. Elkövetett olyat valamelyik újabb kártya?
(#) phr3ak hozzászólása Dec 18, 2015 /
 
sd kártyát hányszor lehet újraírni?
(#) Bakman válasza phr3ak hozzászólására (») Dec 18, 2015 /
 
Erre nem lehet ilyen egyszerűen válaszolni. Itt írnak róla bővebben: Bővebben: Link

A sikeres adattárolások száma elsősorban függ:
SD kártya típusa
SD kártyában lévő kontroller
SD kártya mérete
használt fájlrendszer
szerencse.
(#) pajti2 hozzászólása Máj 11, 2016 /
 
Vannak arról blogok, hogy az sd kártyák nem igazán szeretik a hosszú vezetékezést, mert torzulnak a vivő jelek, és arra érzékenyek. Az egy dolog, ha valahol annyira túlzásba vitték a parazita tényezőkre oda nem figyelést, hogy valójában már nincs is jelszint korlátot elérő órajel, de filozom rajta, talán más problémáról is szó lehet. Ha valaki kicsit jobban is beleásta magát a témába, talált jó blogokat a technikai háttérről, vagy vannak érdekes kísérleti tapasztalatai, szívesen olvasnék róla, mennyire is kényesek esetleg még a mai emmc kártyák is. Meg talán tippeket is arról, hogy miért?
A hozzászólás módosítva: Máj 11, 2016
(#) pipi válasza pajti2 hozzászólására (») Máj 12, 2016 /
 
Hali!
Milyen hosszúra gondolsz?
Ebayon vettem sdkártya modult, a kb 15cm kábellel breadbordon összedrótozva működik rendesen.
(#) Norberto válasza pipi hozzászólására (») Máj 12, 2016 /
 
Hali!

Azt meg tudod mondani, hogy milyen sebességet tudtál elérni a kártyakezeléskor?
(#) pajti2 válasza pipi hozzászólására (») Máj 12, 2016 /
 
Ahogy @Norberto is kérdezte, önmagában nem a kábelhossz a probléma, Hanem annak függvényében a stabilan elérhető sebesség is. Mennyire állítottad be? És még a kártya márkajelzése érdekelne.
(#) pipi válasza Norberto hozzászólására (») Máj 13, 2016 / 1
 
Hali!
Az sdkártya olvasási sebességet külön nem mértem, Esp8266 (80MHz clk) kezelte,
PC-ről wifin keresztül 200kbyte/sec (totalcommander mérése) sebesség volt, de ebben benne van a wifi sebesség, wifi driver ideje is. Sandisk és noname kártyával néztem.
(#) pajti2 válasza pipi hozzászólására (») Máj 13, 2016 /
 
Azon a cuccon SD interface is van. 2 mbit / sec a 4 vonalon simán 10x-es távolságban van attól, ahol a problémák elkezdődnek. Függetlenül attól, hogy a pontos sebességéről nem sokat tudunk, jellemzően nem az a tartomány volt, amit éppen firtatunk.
(#) pipi válasza pajti2 hozzászólására (») Máj 14, 2016 /
 
Hali!
Nem teljesen értem mire gondolsz. Nálam a 200kbyte/s az ugye majdnem 2Mbit/s.
Ha ebből lejön nálam a wifire küldés ideje, akkor még több...
Ha Te 4 adatvonalon ugyanezt a 2Mbit/sec sebességet produkálod, akkor az ugye elektromosan negyed akkora jelváltozási sebesség....
Az mbit az milibit, az Mbit meg a megabit, gondolom megára gondolsz...
(#) shirke hozzászólása Nov 22, 2016 /
 
Sziasztok!
Egy SD kártyák használok egy dsPIC-kel és előfordul hogy az írás parancs kiadása után hiába várom a helyes visszatérési értéket nem jön meg. Ellenben ha újra kiküldöm a parancsot megérkezik. Arra jutottam hogy lehet hogy túl hamar akarok írni rá. Ez okozhat ilyen problémát?
Mekkora írási sebességet lehetnek kicsikarni belőle?
(#) don_peter hozzászólása Jan 6, 2017 /
 
Srácok, az SD kártyát illeszthetem 5v-os PIC-re sima ellenállás osztóval?
Csatoltam, hogy gondolnám..
5v lenne a PIC.
A hozzászólás módosítva: Jan 6, 2017

oszto.JPG
    
(#) Bakman válasza don_peter hozzászólására (») Jan 6, 2017 /
 
Igen, működik a dolog.
(#) Hp41C válasza don_peter hozzászólására (») Jan 6, 2017 /
 
SD -> PIC illesztés hogyan lesz megoldva?
(#) pajti2 válasza Hp41C hozzászólására (») Jan 6, 2017 /
 
(#) don_peter válasza Hp41C hozzászólására (») Jan 6, 2017 /
 
Nem igen értem a kérdést..
Oda vissza jó az osztó..
Oda oszt, vissza nem.

oszto2.JPG
    
(#) Wezuv válasza pajti2 hozzászólására (») Jan 6, 2017 /
 
Ennek az impedanciája nem túl jó. Egyébként az SD->PIC irányba nem kell illesztés, az SD magas szintjét a PIC- is magasnak érzi. Bővebben: Link
(#) Wezuv válasza don_peter hozzászólására (») Jan 6, 2017 /
 
Én értem a kérdést (előfordulhat, hogy a PIC az SD kimenetén lévő Hi szintnek megfelelő feszültséget nem érzékeli Hi szintnek), a válaszod nem nagyon, mert az általad felhozott kapcsolatoknál nincs viszirány, úgyhogy mindegy, hogy oszt-e vagy sem...
A hozzászólás módosítva: Jan 6, 2017
(#) Hp41C válasza Wezuv hozzászólására (») Jan 6, 2017 / 1
 
Nem mindegy milyen típus melyik lábára megy az SD kártya kimenete. Még a tápfeszültségtől is függ az igény, de esetünkben a Vdd = 5.00V.
Egy TTL típusú bemenetnek elég 2.00V, de egy ST bemenetnek min. 0,8 * Vdd = 4.00 V kell.
(#) don_peter válasza Hp41C hozzászólására (») Jan 6, 2017 /
 
Az SD külön 3.3v-os stabot kap, és arról kap majd áramot.
GND közös lesz, és próbálom a szintet majd az ellenállásokkal beállítani.
Remélem működni fog, ha nem akkor másik megoldást keresek..
(#) Wezuv válasza Hp41C hozzászólására (») Jan 6, 2017 /
 
Amit írsz elvileg igaz de ha megnézed a 45k22 adatlapját, látod, hogy ST az SPI SDI-je, ennek ellenére a linkelt példakapcsolásban simán összekötötték a két lábat és minden bizonnyal működik is. Én is használtam már így összelógatott kapcsolást és működött, ennek ellenére a saját áramköreimet illesztő IC-vel építettem meg (18F2550-hez). A kérdést az dönti el, hogy működik-e a gyakorlatban, elmélet ide, vagy oda. Műszakilag is megnyugtató megoldás viszont valóban a megfelelő illesztő áramkör lenne. Ennek ellenére az ember szívesen választ egyszerű megoldásokat és azok néha meglepő módon működgetnek.
(#) Wezuv válasza don_peter hozzászólására (») Jan 6, 2017 /
 
Felhívom a figyelmedet, hogy nem az ellenállás osztóknál lesz a probléma, ha lesz! Erről próbáltam írni válaszomban. Az SDI vonalra nem szabad tenni ellenállást, az csak ront a helyzeten...
(#) Hp41C válasza Wezuv hozzászólására (») Jan 6, 2017 / 1
 
|gy nem illek tervezni.... Csak egy ilyenről lenne szó.
(#) don_peter válasza Wezuv hozzászólására (») Jan 6, 2017 /
 
Legrosszabb esetbe teszek be egy szintillesztőt, de jobb lenne, ha nem kellene..
(#) don_peter hozzászólása Jan 7, 2017 /
 
Srácok, SD kártya INIT-el kínlódok.
A következő képen haladok:
1. Kiküldöm SPI engedélyezés nélkül a 80bit adatot.
2. kiküldöm a következő kódokat:
Engedélyezem SPI-t majd 0x40, 0x00, 0x00, 0x00, 0x00, 0x95 parancsokat kiküldöm és még utána kell küldjek egy 0xFF parancsot majd ezt követően kiolvasok egy adatot SPI(0xFF) parancsot küldve és 0x01-et kapok vissza.

Ez eddig jó?
(#) ndavid87 válasza don_peter hozzászólására (») Jan 7, 2017 /
 
Igen, ez a CMD0, amire 0x01-et válaszol a kártya, ha elfogadja a parancsot.
(Ha a CS láb alacsony logikai szinten van küldéskor, akkor SPI módban indul.)

Én ez után CMD8-at küldök (0x48, 0x00, 0x00, 0x01, 0xAA, 0x87). Ezt nem minden kártya ismeri (régi SDC V1 kártyák), ezek 0x05-el válaszolnak rá. Mehet tovább az inicializálás.
Amelyik kártya ismeri, vissza kell hogy küldje a parancsban lévő adatokat. (0x01:a kártyánk támogatja a 2.7V, és 3.6V közötti feszültségszintet, 0xAA pedig a helyes kommunikációt igazolja a kártya és az eszközünk között.
Ha nem ezt kapod válaszban, akkor a kártya inicializálása sikertelen.

Következő parancs az ACMD41. Ez tulajdonképpen két egymást követő parancs (CMD55, és ACMD41).
CMD55: 0x77, 0x00, 0x00, 0x00, 0x00, 0xff (0x01 a válasz, ha elfogadja)
ACMD41: 0x69, 0x40, 0x00, 0x00, 0x00,0xff (A 0x40-el jelezzük a kártyának, hogy támogatjuk a nagy kapacitású kártyákat (ez nem az SDHC-ra vonatkozik))
Az utóbbira 0x00-t válaszol a kártya, ha végzett a parancs végrehajtásával, különben 0x01-et küld.
Tehát addig kell újra és újra elküldeni a parancsot (CMD55+ACMD41), amíg 0x00 lesz rá a válasz. (Azért ide be lehet szúrni egy számlálót, nehogy beragadjon itt a program).
Ha az ACMD41-et nem ismeri a kártya (0x05 a válasz), akkor küldj helyette CMD1-et. (Bár nekem minden kártya ismerte, amit próbáltam.)

- CMD16 (0x50, 0x00, 0x00, 0x02, 0x00, 0xff)
Ezzel a paranccsal SDC kártyáknál állítható be az egyszerre írható/olvasható blokk hossza 512 byte-ra. SDHC kártyáknál ez nem módosítható, fixen 512 byte, épp ezért érdemes SDC kártyáknál is ennyire állítani. (SDHC kártya sem panaszkodik erre a parancsra azt hiszem.)

- CMD58 (0x7A, 0x00, 0x00, 0x00, 0x00, 0xFF)
OCR regiszter olvasása, ami 32 bites választ küld.
Itt a 30.bitet vizsgáld meg. Ha magas logikai szinten van, akkor SDHC kártyával van dolgod.
Ezt azért fontos ismerni, mert az SDHC kártyákat blokkonként (512 byte/blokk) kell címezni, az SDC kártyákat pedig bájtonként. (SDC kártyáknál a címet meg kell szorozni 512-el LBA címezésnél)

- CMD9 (0x49, 0x00, 0x00, 0x00, 0x00, 0xff)
CSD regiszter olvasása. 128 bit hosszú, és többek között innen olvasható ki a kártya
kapacitása, maximum sebessége, stb. Ez a parancs úgy működik, mint a blokk olvasás, vagyis 0xFE-et küld az első bájt előt. A legtöbb SD kártya 25 MHz-es SPI órajellel is hajtható, az újabbak ennél is többel.

Inicializáláskor le kell venni az SPI sebességét 100-400kHz közé.
Minden parancs kiadása után (miután CS-t magas logikai szintre állítottad) küldeni kell egy 0xFF bájtot. Nem biztos, hogy minden kártya igényli, de jobb a békesség. A kártyáról való olvasáskor is 0xFF-et kell "küldeni".

Ezeket különböző weboldalakról, és adatlapokból szedtem össze. Bár ezek alapján sikerült inicializálni, és olvasni kártyákat, remélem ,hogy nem írtam ostobaságot. Ha igen, kérem jelezzétek.
(#) don_peter hozzászólása Jan 15, 2017 /
 
Srácok, egy problémára keresem a választ.
Megírtam az SD kártya inicializálását (SDC és SDHC) és kiolvasnám az első vagy is a nulladik szektor adatait a kártyából.
128MB-os SD kártyánál ez szépen megy is és minden adatot ki is tudok olvasni illetve szemmel látható, hogy az jön ami ott van, de amikor 4GB-os kártyáról olvasnék be, akkor megkavarja a vett adatokat.
Már 1 napja szívok vele és nem jövök rá miért van, 2féle SD HC kártyával is próbáltam, mindkettőnél ugyan ez a helyzet.
A fájlok tartalmának byte számra megvan, de az adatok el vannak torzulva..
Csatoltam 2 képet is.

Találkozott már valaki ilyennel?
Mi lehet a bibi?
(#) bbalazs_ válasza don_peter hozzászólására (») Jan 15, 2017 /
 
Mashogy megy a szektorcimzes.
Probald ki egeszen alacsony cimekkel. Irj az elso 16 szektorba valamit, amirol felismered oket. Aztan probalj meg a kartyakrol szektoronkent olvasni kulon-kulon.
(#) don_peter válasza bbalazs_ hozzászólására (») Jan 15, 2017 /
 
Most meg felcserélődtek a dolgok.. Egyre furábban viselkedik itt a az egész
Következő: »»   11 / 14
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem