carte MMC problème d'écriture

I

ibrahim03

Guest
Je suis en train de stocker des données dans une carte MMC en utilisant le microcontrôleur ATMEGA8515L.J'ai étudié le code à partir du site suivant:

http://www.captain.at/electronic-atmega-mmc.phpMon problème est que la carte s'initialise correctement (comme indiqué par la diode), mais la writeramtommc () n'est pas exécuté parce que la carte donne une mauvaise réponse à la commande d'écriture.L'ennui, c'est que je me sers ATMEGA8515L au lieu de mega32 et il a seulement 512 octets de SRAM OS si je ne peux pas écrire un secteur de 512 octets au lieu je l'ai réduite à 256 octets, est-ce correct?

J'ai aussi une certaine confusion sur l'adresse dans la commande d'écriture.Saviez-le gars qui a écrit le code original de donner l'adresse de 512 dans la commande d'écriture, parce qu'il était la rédaction d'un secteur de 512 octets?Je pense que ça peut être n'importe quoi, non?

Il ya aussi une question à propos de la vitesse du port SPI dans le code original, lors de l'initialisation de la console MMC à l'interface SPI, la vitesse du SPI a baissé (en fixant les bits dans le registre SPCR), mais une fois la vitesse d'initialisation n'a jamais été augmenté .Faut-il ne pas être de nouveau augmenté.

Autre chose, dans le «fillram () 'méthode dans la boucle for:
for (i = 0; i <= 512; i )

il devrait être
for (i = 0; i <512; i )
parce que le bloc de données est de 512 octets et non pas 513 octets.

Je pense qu'il ya vraiment des bugs dans ce code!

 
Je croyais que SD / MMC besoin de 512 octets à écrire,
mais la lecture pourrait être moindre.
Je ne peux pas vous aider beaucoup, mais je vous suggère mai regardez ici
http://elm-chan.org/fsw/ff/00index_e.html
Je l'utilise dans un PIC24H et cela fonctionne bien (à noter que PIC24H a beaucoup de Tho RAM)

bonne chance!

 
Salut,

Pour les cartes SD, vous devez écrire 512 octets de données pour 99% des cartes sur le marché.Il ya quelques nouveaux qui permettent de Sandisk <512 octet écrit, mais je ne pense pas qu'ils vont saisir, par écrit 256 octets n'est pas un problème même si, comme tout ce que vous faire est d'écrire 256 octets de données réelles, puis faire une boucle
Code:for (n = 0; n <256; i ) WriteData (myarray [n]); / / Les données réelles

for (n = 0; n <256; i ) WriteData (0x00) / / flans Dummy

 

Welcome to EDABoard.com

Sponsor

Back
Top