Ik heb een aantal zeer intressante site's gevonden op internet waar informatie staat over het aansluiten van een SecureDigital kaart op een PIC. De SD-kaart kan namelijk werken in SPI modus, en dat is erg simpel te doen op een pic, alleen werkt de SD-Kaart op 3,3 volt. Ik heb ook een schema gevonden:
Ik heb zoveel pagina's gezien ik weet niet meer precies waar deze vandaan komt.
Het enigste probleem is nu dat ik nergens informatie kan vinden over het protocol dat gebruikt moet worden. Ik heb dus geen idee wat ik de sd kaart moet vertelen. Ik heb wel een aantal picbasic programma's gevonden op een site die een aantal setjes te koop heeft (maar ik wil het zelf doen)
Ik heb alleen geen idee hoe ik aan die commando's moet komen, en ik heb geen zin (en geld) om 4000 dollar te betalen voor een licence voor secure digital.
Heb ik ook nog een ander probleem wat hierbij hoort. Je moet de SD kaart pakketjes van 512 bytes voeren, maar geen enkele pic heeft zoveel geheugen. Ik zoek dus een extern RAM IC van minstens 512 Bytes. En de electroboer wil type nummers weten, en die weet ik niet. Het mooiste zou zijn als het serieel aan te spreken is maar dat zal wel niet kunnen.
Ik heb ook iets gelezen over FRAM, dat schijnt een EEPROM te zijn dat de eigenschappen heeft van normaal RAM. Geen wachttijden dus met wegschrijven en de gegevens blijven bewaard als de stroom weg valt. Maar dit is niet echt wat ik zoek.
Ik ga nog ff op zoek naar de links van een aantal site's voor de genen die dit ook intressant vinden. Eentje weet ik al http://www.sdcard.org daar staat veel informatie over de hardware kant. Er staat ook een leuk schema bij over de verwachte datum dat bepaalde kaartjes uitkomen. IN 2007 waarschijlijk al 32Gb op één SD kaartje.
Alvast bedankt.
Specificaties: www.sandisk.com/download/Product%20Manuals/Product%20ManualSDCardv1.7.…
En als het erg simpel is, dan wil ik jou source-code wel eens zien.
Ik ben namelijk op dit moment aan het stage lopen, en heb als opdracht om een SD-card aan te sturen met een RCM3000 (microcontroller van Rabbit Semiconductor).
Het lukt mij om ruwe data te lezen en te schrijven, maar iets als een FAT maken behoort geloof ik niet tot mijn mogelijkheden.
Het is overigens wel een heel mooi opslag medium: hoge capaciteit, klein, weinig in- en uitgangen, een te begrijpen protocol.
Op 19 juli 2004 21:09:05 schreef Remko Struiksma:
Specificaties: www.sandisk.com/download/Product%20Manuals/Product%20ManualSDCardv1.7.…
Volgensmij is dit precies wat ik zocht, Bedankt. Ik heb nog niet echt tijd gehad om het volledig door te lezen, maar staan hier de hex commando's in?
En als het erg simpel is, dan wil ik jou source-code wel eens zien.
Ik heb zelf nog helemaal geen source code. Ik probeer eerst zoveel mogelijk informatie te vinden.
Het lukt mij om ruwe data te lezen en te schrijven, maar iets als een FAT maken behoort geloof ik niet tot mijn mogelijkheden.
Als jij ruwe data kunt lezen en schrijven weet jij dus de commando's? FAT moet je ook niet zelf maken denk ik. Je formateerd de kaart in FAT16 en met google is vast wel een goede uitleg te vinden (hoop ik)
Het is overigens wel een heel mooi opslag medium: hoge capaciteit, klein, weinig in- en uitgangen, een te begrijpen protocol
Dat is exact de reden dat ik het ook wil proberen. Dit betekend namelijk ongelooflijk veel opslag voor de PIC. Vooral handig met grafische schermen enzo.
Op 19 juli 2004 22:28:43 schreef Archer:
Volgensmij is dit precies wat ik zocht, Bedankt. Ik heb nog niet echt tijd gehad om het volledig door te lezen, maar staan hier de hex commando's in?
Ja alle commando's staan hierin.
Om de registers uit te lezen en ruwe data te lezen en te schrijven staat alle benodigde info in dit document.
Ik heb zelf nog helemaal geen source code. Ik probeer eerst zoveel mogelijk informatie te vinden.
De info vinden lukt wel, maar de source code schrijven is natuurlijk het echte werk.
Als jij ruwe data kunt lezen en schrijven weet jij dus de commando's? FAT moet je ook niet zelf maken denk ik. Je formateerd de kaart in FAT16 en met google is vast wel een goede uitleg te vinden (hoop ik)
De FAT moet je natuurlijk wel enigzins zelf maken: je moet deze tabel bijhouden. Ook moet je hem natuurlijk kunnen uitlezen en interpreteren.
De situatie op dit moment bij mij is dat ik wel data naar/van een bepaald adres kan schrijven/lezen. Echter wil je er goed mee kunnen werken zul je toch iets van een bestandstructuur moeten maken. Zeker als je ook de mogelijkheid wilt hebben om de SD-card uit te lezen met de PC.
Op 20 juli 2004 08:17:55 schreef Remko Struiksma:
Ja alle commando's staan hierin.
Om de registers uit te lezen en ruwe data te lezen en te schrijven staat alle benodigde info in dit document.
Als dit erin staat dan is het precies wat ik zocht, bedankt. (heb ik toch niet goed gekeken bij sandisk:))
De info vinden lukt wel, maar de source code schrijven is natuurlijk het echte werk.
Daar heb je gelijk in. Maar vond het een beetje zinloos om al code te gaan schrijven als ik geen commando's had voor de SD.
De FAT moet je natuurlijk wel enigzins zelf maken: je moet deze tabel bijhouden. Ook moet je hem natuurlijk kunnen uitlezen en interpreteren.
Je moet inderdaad wel de FAT bijhouden, maar ik bedoelde dat je hem niet zelf hoeft te bedenken.
Echter wil je er goed mee kunnen werken zul je toch iets van een bestandstructuur moeten maken. Zeker als je ook de mogelijkheid wilt hebben om de SD-card uit te lezen met de PC.
Ik heb een programma/driver die een harddisk bestand (uit PC emulators) als een hardeschijf kan weergeven. Ik denk dat ik daarmee FAT16 ga leren. Dat gaat een stuk makkelijker dan ierdere keer de pic programmeren en kijken wat er gebeurt.
De situatie op dit moment bij mij is dat ik wel data naar/van een bepaald adres kan schrijven/lezen.
Hoe heb jij de SD aangesloten? net als op het schema wat ik heb gevonden? Of zijn er nog andere manieren om de kaart aan te sluiten? Met weerstanden, diodes, transistors ofzo.
Bedankt voor de datasheet. Ik denk dat ik er veel aan zal hebben.
Op 20 juli 2004 10:49:05 schreef Archer:
Hoe heb jij de SD aangesloten? net als op het schema wat ik heb gevonden? Of zijn er nog andere manieren om de kaart aan te sluiten? Met weerstanden, diodes, transistors ofzo.
Ik gebruik een RC3000, deze werkt op 3,3 Volt, ik heb dus geen problemen met logische niveaus.
Het schema 'van jou' is is volgens mij niet goed: de uitgangsspanning van de PIC (max VDD = 5 V) zal te hoog zijn voor de SD-card (max VDD+0,3 = 3,6 V).
Hoe het precies zit moet je zelf maar even bekijken, ik weet verder niet veel van de PIC.
Op 20 juli 2004 11:44:15 schreef Remko Struiksma:
[...]Ik gebruik een RC3000, deze werkt op 3,3 Volt, ik heb dus geen problemen met logische niveaus.
Het schema 'van jou' is is volgens mij niet goed: de uitgangsspanning van de PIC (max VDD = 5 V) zal te hoog zijn voor de SD-card (max VDD+0,3 = 3,6 V).
Hoe het precies zit moet je zelf maar even bekijken, ik weet verder niet veel van de PIC.
Ik snap zelf ook niet veel van het schema. Maar ik denk dat ze iets met die MAX233 uithalen. Als je microcontroller 3,3 volt is heb je er geen last van. Maar de pic werkt op 5 volt. Hij kan wel lager maar dan krijg ik weer andere problemen met LCD schermen enzo.
Ik zeg nu zomaar wat ik denk, dus ik weet niet of het waar is of echt werkt.Maar sommige pic's hebben schotsky diodes. Als ik nou een pull-up gebruik naar 3,3volt (via een regulator) dan zou het moeten lukken denk ik.
Op 20 juli 2004 12:07:54 schreef Archer:
[...]Ik snap zelf ook niet veel van het schema. Maar ik denk dat ze iets met die MAX233 uithalen.
Die max232 heeft niks met de SD-card te maken. Deze zit er in voor de seriele communicatie, wat een ander deel van het schema is.
Maar sommige pic's hebben schotsky diodes. Als ik nou een pull-up gebruik naar 3,3volt (via een regulator) dan zou het moeten lukken denk ik.
Schottky diodes hebben er niks mee uit te staan. Het idee om met een pull-up naar 3,3 V te werken had ik ook al, maar je PIC heeft geen open-drain uitgangen.
Met deze PIC kan dit dus niet, de eerste oplossingen die in mij opkomen zijn: andere PIC kiezen, buffer er tussen, weerstand in serie met en daarachter een zener, weerstandsdeling achter de uitgangen van de PIC.
Dit laatse moet volgens mij kunnen omdat de SD-card vrij hoogohmige ingangen heeft en de PIC veel laagohmigere, maar mooi is anders.
Met de ingangen voorzie ik trouwens zo geen problemen.
Evil Aedolon
ELEKTRONICA WIKI // Wiskunde is "hip" // http://www.physics2005.org/ 2005 Year of physics! // "In science there is only physics; all the rest is stamp collecting."
PIC naar 3.3V ?
de input mag 3.6V worden, dus een weerstand van 10K naar input, een diode van input met diode aan de 3V3 en huip opgelost
Op 20 juli 2004 12:37:04 schreef Evil Aedolon:
PIC naar 3.3V ?de input mag 3.6V worden, dus een weerstand van 10K naar input, een diode van input met diode aan de 3V3 en huip opgelost
Die 3,6 V is het absolute maximum, liever niet doen dus.
Evil Aedolon
ELEKTRONICA WIKI // Wiskunde is "hip" // http://www.physics2005.org/ 2005 Year of physics! // "In science there is only physics; all the rest is stamp collecting."
Ah, Zo tja dan met een zenertje of je PIC ook op 3V3 laten werken en het LCD op 5V
3V3 is vast nog een 1 voor het LCD
beste oplossing denk ik zo ?
Op 20 juli 2004 12:51:58 schreef Evil Aedolon:
Ah, Zo tja dan met een zenertje of je PIC ook op 3V3 laten werken en het LCD op 5V
3V3 is vast nog een 1 voor het LCDbeste oplossing denk ik zo ?
Mijn ideeën staan in volgorde van voorkeur. Dus de oplossing om een PIC te nemen die op 3,3 V werkt of met open-drain uitgangen heeft mijn voorkeur (minder componenenten = beter).
Indien dit niet kan zou ik een buffer nemen, is ook een prima oplossing.
Er zijn vele types waarmee dit moet lukken.
Off-topic: Je hebt wel eens commentaar op het taalgebruik van anderen, maar het jouwe is vandaag ook niet best.
Evil Aedolon
ELEKTRONICA WIKI // Wiskunde is "hip" // http://www.physics2005.org/ 2005 Year of physics! // "In science there is only physics; all the rest is stamp collecting."
Op 20 juli 2004 13:23:26 schreef Remko Struiksma:
Off-topic: Je hebt wel eens commentaar op het taalgebruik van anderen, maar het jouwe is vandaag ook niet best.
Iedereen heeft wel eens mindere dagen. Trouwens, ik heb meestal niks op het taalgebruik als ze iets nuttig kunnen toevoegen, tenzij ze met breezah taalgebruik beginnen... Krijg ik buikpijn van
Op 20 juli 2004 12:27:51 schreef Remko Struiksma:
Die max232 heeft niks met de SD-card te maken. Deze zit er in voor de seriele communicatie, wat een ander deel van het schema is.
Dat begreep ik wel, maar de MAX233 is toch gewoon een MAX232 met interne Caps. Daarom dacht ik dat ze er een truck mee uithaalde om er 3,3 volt uit te krijgen.
Schottky diodes hebben er niks mee uit te staan. Het idee om met een pull-up naar 3,3 V te werken had ik ook al, maar je PIC heeft geen open-drain uitgangen.
Zoals ik al zei wist ik niet zeker of het kon. Ik weet eerlijk gezegt niet eens wat een schottky diode precies doet. Ik had het alleen in de datasheets gelezen.
Met deze PIC kan dit dus niet, de eerste oplossingen die in mij opkomen zijn: andere PIC kiezen, buffer er tussen, weerstand in serie met en daarachter een zener, weerstandsdeling achter de uitgangen van de PIC.
Dit laatse moet volgens mij kunnen omdat de SD-card vrij hoogohmige ingangen heeft en de PIC veel laagohmigere, maar mooi is anders.
Met de ingangen voorzie ik trouwens zo geen problemen.
De meeste PIC's zijn hetzelfde alleen de extra hardware is anders. (Dacht ik) Ik heb het dan alleen over de 16Fxxx serie.
ik heb trouwens een site gevonden met een uitleg over de bootsector en FAT tabel van FAT16 en FAT32 (Helemaal onderaan de pagina) Mischien heb je er wat aan. Ik heb ook met WinImage een kopie gemaakt van mijn SD kaart en met een HEX editor naar de bytes gekeken in de bootsector. En ik heb al wat dingen kunnen teruglezen uit de bootsector. Erg intressant dus voor dit project
Ik snap wel dat het makkelijker is om de PIC op 3v3 te laten werken maar ik wil het liever op 5 volt houden.
Ik ga voorlopig eerst FAT16 bestuderen en de SD commando's. De hardware kant komt later wel. Is het SD socket makkelijk verkrijgbaar of niet? Ik heb er nu een uit een kaartlezer gesloopt. Dat is voor een keertje wel te doen maar om nou voor elke keer dat ik het zou willen maken een kaartlezer moet slopen van 13 euro zie ik niet echt zitten.
Op 20 juli 2004 13:40:13 schreef Archer:
Zoals ik al zei wist ik niet zeker of het kon. Ik weet eerlijk gezegt niet eens wat een schottky diode precies doet. Ik had het alleen in de datasheets gelezen.
Een schottky diode is een diode die i.p.v. een P-N overgang een halfgeleider-metaal overgang heeft. Dit resulteerd o.a. in een snellere sluit-tijd en een lager spanningsval. In logische IC's worden ze gebruikt om verzadiging van de transistoren tegen te gaan.
ik heb trouwens een site gevonden met een uitleg over de bootsector en FAT tabel van FAT16 en FAT32 (Helemaal onderaan de pagina) Mischien heb je er wat aan. Ik heb ook met WinImage een kopie gemaakt van mijn SD kaart en met een HEX editor naar de bytes gekeken in de bootsector. En ik heb al wat dingen kunnen teruglezen uit de bootsector. Erg intressant dus voor dit project
Tja ik denk niet dat ik er voor mijn stage er nog wat aan heb, ik ben niet van plan nog veel langer door te gaan in m'n vakantie. Maar ik zou er wel wat meer van willen weten, dus als je me een beetje op de hoogte wilt houden, graag.
@EA: breezah taal, ik had er nog nooit van gehoord, of het in ieder geval niet onthouden. Even gegoogled en ik ben het helemaal met je eens.
Op 20 juli 2004 13:54:10 schreef Archer:
Ik snap wel dat het makkelijker is om de PIC op 3v3 te laten werken maar ik wil het liever op 5 volt houden.
Kan ik goed begrijpen, ik heb even rond gekeken bij philips en er zijn genoeg buffertjes die het probleem verhelpen.
Is het SD socket makkelijk verkrijgbaar of niet? Ik heb er nu een uit een kaartlezer gesloopt. Dat is voor een keertje wel te doen maar om nou voor elke keer dat ik het zou willen maken een kaartlezer moet slopen van 13 euro zie ik niet echt zitten.
Farnell heeft ze wel.
Koen Van Vlaenderen
De vergeetachtigheid bewijst grotere diensten aan het hart dan het geheugen aan het verstand.
Koen Van Vlaenderen
De vergeetachtigheid bewijst grotere diensten aan het hart dan het geheugen aan het verstand.
of deze, werkt in 2 richtingen: http://www.semiconductors.philips.com/pip/74LVC4245AD.html
Op 20 juli 2004 15:24:49 schreef Koen Van Vlaenderen:
heb er zo eentje liggen ff zien: 74LVC245AD
Dat is is in dit geval wel wat overdreven, 3 signaaltjes die slechts één kant op gaan.
Ik hed meer zoiets als een 74LVC3G34 in gedachten.
Edit:
Op 20 juli 2004 15:28:42 schreef Koen Van Vlaenderen:
of deze, werkt in 2 richtingen: http://www.semiconductors.philips.com/pip/74LVC4245AD.html
Idem.
[Bericht gewijzigd door Remco op ]
Op 20 juli 2004 15:53:29 schreef Archer:
Ik denk dat deze beter is MAX3370. Dat is volgens mij het enige wat ik dan nodig heb
Die heb je dan 3 keer nodig.
Joszs
Eindelijk mijn site doet het http://home.concepts.nl/~pc106181/Jos/Index.html
Op 19 juli 2004 20:43:19 schreef Archer:
Heb ik ook nog een ander probleem wat hierbij hoort. Je moet de SD kaart pakketjes van 512 bytes voeren, maar geen enkele pic heeft zoveel geheugen. Ik zoek dus een extern RAM IC van minstens 512 Bytes. En de electroboer wil type nummers weten, en die weet ik niet. Het mooiste zou zijn als het serieel aan te spreken is maar dat zal wel niet kunnen.
De PIC18FXX2-serie (oa PIC18F452) heeft meer dan 512B RAM tot zelfs bijna 1K5 bij voti is iniedergeval de 40-pins variant te krijgen de 28-pins (pin coplitabel met PIC16F876) is mischien ook wel bij conrad te krijgen of zo.
Joszs
Op 20 juli 2004 16:03:58 schreef Remko Struiksma:
[...]Die heb je dan 3 keer nodig.
Ik zie het ja, heb ik te snel gekeken. Maar ze zullen er vast wel eentje hebben met meerdere lijnen.
Op 20 juli 2004 16:13:49 schreef Joszs:
[...]
De PIC18FXX2-serie (oa PIC18F452) heeft meer dan 512B RAM tot zelfs bijna 1K5 bij voti is iniedergeval de 40-pins variant te krijgen de 28-pins (pin coplitabel met PIC16F876) is mischien ook wel bij conrad te krijgen of zo.
Joszs
Bij conrad koop ik geen pic's, mij te duur. Voti is goedkoper. Maar ik had het eigenlijk alleen over de 16Fxxx serie. Had ik erbij moeten zetten. En ik wil proberen de "Driver" PIC zo klein mogelijk te houden. Maar als ik kijk naar de FAT16 specificatie wordt dat minstens 18 pins (16F648A)