2010-11-10 21 views
0

Je sais que les cartes MMC peuvent partager un bus et il semble que cela fonctionne également avec les cartes SD/SDIO. Cependant, j'ai trouvé des informations contradictoires sur le web et les spécifications simplifiées sur sdcard.org parlent de faire l'identification de la carte en utilisant "chaque ligne CMD individuelle de cartes." Si j'arrive à assigner deux cartes SDIO différentes (adresses) RCA en utilisant une supercherie avec une mise sous tension dans le bon ordre ou en utilisant une forme de multiplexage, ne devrais-je pas pouvoir les utiliser sur un bus partagé?Les cartes SDIO peuvent-elles être dans une topologie de bus partagée?

Merci, Andrew

+0

Juste pour être clair; vous utilisez une interface SDIO plutôt que SPI; est-ce ma bonne interprétation? – Clifford

+0

Oui, 4 bits SDIO, pas SPI. –

Répondre

1

D'après ce que j'ai lu et connaître SDIO, vous devriez être en mesure de multiplexer la ligne CMD aux cartes et partager les lignes de données. Je ne crois pas que les lignes DAT seront utilisées, sauf en réponse à une commande.

Selon http://www.embeddedrelated.com/usenet/embedded/show/69909-1.php, une affiche explique comment la commande ALL_SEND_CID fonctionne sur un bus multicarte. Dans cette explication, aucune ligne n'est multiplexée. Je ne suis pas sûr comment la séquence d'initialisation fonctionnerait dans cette topologie et ce n'est pas expliqué.

Je sais une fois que la carte est identifiée et donné l'adresse relative, vous pouvez sélectionner et désélectionner la carte pour le traitement des commandes.

Espérons que cela aide.

+0

Merci pour le lien. Je pense que je l'ai eu à travailler, en quelque sorte, depuis que j'ai posté la question. Je "multiplexe" la ligne CMD en allumant le périphérique SDIO auquel je veux parler, puis quand c'est fait, j'allume l'autre. Une fois cela fait, les deux appareils coexistent et je peux sélectionner l'un ou l'autre avec la commande SELECT/DESELECT. Ma situation est en fait un peu différente puisque l'un des appareils est eMMC, l'autre est SDIO. J'ai vu mon périphérique SDIO répondre à la commande "set card address" même s'il a été désélectionné. Pour deux périphériques SDIO, j'ai probablement besoin d'un multiplexeur de bus. –

+0

Concernant le ALL_SEND_CID: c'est une commande broadcast en mode open-drain. Toutes les cartes répondent jusqu'à ce qu'elles voient une discordance (elles ont un 1 mais quelqu'un d'autre a un 0) et les cartes incompatibles cessent de répondre. La carte avec le plus de 0 gagne et obtient de parler à l'hôte et obtient une adresse et se tait. L'hôte répète ce cycle jusqu'à ce que tout le monde soit au loin. Malheureusement, SD/SDIO n'a pas adopté cette approche, pour quelque raison que ce soit. –