L'ordre des broches est-il important pour cette RAM?

11

J'essaie d'acheminer une puce pic32 vers une mémoire SRAM de 128 Kopuce et ayant un peu de mal à connecter les 17 lignes d'adresse et les 8 lignes de données. J'essaie de lier les 16 premières broches d'adresse aux broches portB 0-15 et les broches de données au portD 0-7. Après y avoir réfléchi pendant un certain temps, j'ai réalisé que je rendais probablement ma vie plus difficile en essayant d'aligner rb0 avec a0, rb1 avec a1, etc. Tout ce que je veux vraiment pouvoir faire, c'est écrire une valeur de 16 bits sur portB et avoir la majorité de l'adresse chargée et prête. Si je fais des affectations de broches en fonction de la facilité de routage, l'adresse logique sera différente entre le MCU et le RAM, mais elle devrait au moins être cohérente. Puisque rien d'autre n'a besoin de communiquer avec la RAM, je ne pense pas que ce sera un problème si le MCU demande l'adresse 0x101 et la RAM lui donne l'adresse 0x110.

Cependant, je me demande si c'est une bonne idée. S'il existe une structure interne à la RAM conçue pour rendre les lectures séquentielles plus efficaces, ou quelque chose comme ça, alors je vais peut-être me donner la peine de les acheminer 1: 1. L'arrangement des broches sur les deux puces me coûte quelque peu au hasard, donc cela me faciliterait beaucoup la tâche si je pouvais ignorer les chiffres en particulier. Y a-t-il une bonne raison pour laquelle je devrais ou ne devrais pas faire cela?

captncraig
la source

Réponses:

12

Dans ce cas, il semble tout à fait acceptable d'échanger des bits de données et d'échanger des bits d'adresse. Ce n'est pas universellement le cas, comme vous le mentionnez dans votre question.

Dans ce cas, le périphérique est une RAM statique - un rapide coup d' œil à la fiche technique AS6C1008 n'a pas indiqué la possibilité de faire des accès rapides de toute sorte ou toute dépendance temporelle liée à l'adresse.


Général:

Certaines mémoires dynamiques permettent l'éclatement des données en verrouillant une partie élevée de l'adresse, puis en séquençant les bits de faible adresse. Cela peut correspondre à une structure logique de lignes et de colonnes publiée ou à un mécanisme interne obscur qui n'est pas manifestement apparent à l'extérieur. Dans de tels cas, vous devez vous en tenir à ce que dit la fiche technique afin d'éviter les pannes de stockage.

Certaines premières mémoires dynamiques reposaient sur le séquençage des adresses et la synchronisation d'accès pour obtenir un rafraîchissement des cellules mémoire. Il est peu probable que vous rencontriez beaucoup de ces personnes de nos jours.

Certaines mémoires (flash, eerom, certaines autres) ont des durées de vie qui dépendent du nombre d'accès, qui peuvent être par accès (lecture ou écriture) ou plus généralement uniquement par écriture, et peuvent être par emplacement de mémoire ou par sous-ensemble de cellules de mémoire . Dans ce dernier cas, si vous brouillez des lignes d'adresse, vous pouvez interférer avec les algorithmes de nivellement de l'usure. Ce ne sera qu'un problème potentiel avec des appareils assez spécialisés et les fiches techniques sont susceptibles d'être assez claires sur les exigences

Russell McMahon
la source
+1 pour le qualificatif "Dans ce cas", et explication du moment où cela pourrait ne pas être le cas.
SplinterReality
5

Non, l'ordre n'a pas d'importance. Les lignes d'adresse peuvent être dans n'importe quel ordre, tout comme les lignes de données.

mikeselectricstuff
la source