Ce tutoriel simple guidera les utilisateurs à travers le processus d’interfacer une EEPROM puce à un Pi de framboise en utilisant les broches GPIO et effectuer des opérations avec des scripts Python.
Commençons par quelques notions de base sur EEPROM :
1) CE, OE, nous - que signifie ce tout ?
Pour lire, écrire et effacer les données d’une puce EEPROM, nous devons d’abord mettre la puce à l’état correct. Cela se fait à l’aide de 3 bornes de contrôle généralement nommé puce permettent, sortie permettre et permettre à écrire.
Chip Enable contrôle si la puce est sous tension. Selon le type de puce, reliant cette broche à la masse ou à tension met la puce sur ou hors service. Inutile de dire que se nous voulons effectuer toute opération, qu'il faut activer la puce. Désactiver la puce nous permet d’éteindre la puce tout en laissant électriquement relié à notre circuit. De cette façon la puce consomme moins d’énergie.
Sortie Enable est un NIP utilisé pour indiquer la puce que vous souhaitez pour le lire. Une fois de plus, selon la puce, reliant cette broche à la masse ou à la tension va dire la puce de vous présenter le contenu du compte tenu de l’adresse de mémoire (plus sur cela plus tard). Désactivation de la sortie termine l’opération de lecture.
Écrire à Qu'activer est similaire à la sortie activer mais utilisé pour écrire des données sur la puce. Selon le type de puce, reliant à la terre ou à tension fera l’écriture de données puce à une adresse mémoire sélectionnée (plus sur cela plus tard).
2) alors comment contrôler les broches ?
C’est facile ! Selon votre puce EEPROM, pour activer ou désactiver ces chevilles en les reliant à une source de tension ou au sol. Le jargon utilisé pour l’opération est « tirer vers le haut » pour le raccordement à la tension et « pull down » pour le raccordement à la terre. Dans certains cas (et dans notre cas en particulier), tirant vers le haut une épingle provoque l’état correspondant doit être désactivé au lieu de Enabled. Cela peut sembler contre intuitif puisque vous vous attendez à tirer vers le haut pour activer quelque chose, mais telle est la vie parfois.
AVERTISSEMENT!: laissant l’un de ces pins déconnectés du circuit n’est pas égal à elle étant tiré vers le bas ! Si les broches ne sont pas déconnecter le circuit que nous appelons « flottante » et essentiellement leur état est aléatoire et indéterminé. Par exemple, les interférences RF peuvent provoquer un signal fort ou faible et donc faire la broche agissent comme si il est activé ou désactivé. Toujours brancher toutes les quilles sur votre circuit !
3) il s’agit de séquençage !
Supposons que j’ai envie de lire des données de mon EEPROM, que dois-je faire avec ces épingles pour que tout fonctionne ? Exécution d’opérations sur l’EEPROM est tout au sujet de faire les choses dans le bon ordre. Donc si nous voulons lire la puce, notre séquence serait comme suit :
Définir l’adresse de mémoire (tirer vers le haut/bas pins bus adresse pour former une adresse au format binaire)
Activer la puce (allumer)
Activer la sortie (lire cette adresse)
Lire l’adresse de mémoire (les broches de bus de données aura maintenant la valeur haute/basse, selon les données dans l’adresse)
Désactiver la sortie (la sortie du bus de données est toujours activée à ce moment donc je peux lire les données)
Désactiver la puce (puissance vers le bas, pas de sortie sur le bus de données à ce stade)
Répétez ce qui précède pour la prochaine adresse que vous souhaitez lire.
4) quel était ce bus que vous avez parlé ?
Bus de données et le Bus d’adresse. La puce EEPROM, ainsi que les broches de CE, OE et nous, auront également un jeu de broches pour attribuer une adresse et un jeu de broches pour lecture/écriture de données à l’adresse sélectionnée. Le nombre de broches pour le Bus d’adresse dépend de la capacité de la puce. Plus la capacité, les adresses de plus sont nécessaires et aura par conséquent les broches plus le bus. Pour définir une adresse nous tirer vers le haut/bas les broches pour représenter 1/0. Chaque adresse représentée par n’importe quelle combinaison de bits contient 1 octet. Ainsi, une puce avec 2048 adresses aura capacité 2048 octets. Les broches sur le Bus d’adresses sont généralement numérotées comme suit : A0, A1, A2, A3,... (E)
Le Bus de données, contrastant avec le Bus d’adresse, peut être soit entrée ou sortie, selon l’opération sélectionnée. Si nous décidons d’écrire à la puce, nous avons mis l’adresse nous voulons écrire dans via le Bus d’adresses, puis nous avons ensemble le Bus de données en tirant sur ses broches haut/bas pour représenter un octet. Si nous choisissons de lire de la puce, alors les broches du Bus de données seront définis haut/bas pour représenter la valeur 1/0 de l’octet contenue dans l’adresse, que nous avons sélectionné. Les broches sur le Bus de données que numérotés : D0, D1, D2,... D7
5) une dernière chose : Bit le plus significatif
La plupart de peu significatif est essentiellement le bit qui représente la valeur la plus élevée dans un octet. Différentes puces peuvent utiliser un schéma de commande différent lors du stockage des octets. La documentation de votre puce va définir si le Bit le plus significatif est le nombre de broches plus haut ou plus bas sur le Bus de données. Une fois que vous savez quelle broche a l’octet le plus significatif, le reste des broches représentent le reste des morceaux dans l’ordre croissant ou décroissant. Par exemple, si l’octet le plus significatif est sur la broche D7 le bus de données, alors le moindre peu significatif va l’être sur la broche D0.