Étape 2: 25AA - / 25LC-SPI EEPROM
Toutes les démos d’EEPROM peu près le même aspect. Nous écrire quelques chiffres à la puce et ensuite les lire. Chaque périphérique possède les conditions qui s’appliquent une fois que vous voulez écrire plus de quelques valeurs, telles que la taille de la page et limite limites. En savoir plus sur ces derniers dans la feuille de données pour votre périphérique spécifique.
Si vous ne pouvez pas obtenir une démonstration de travailler, de télécharger le journal complet de terminal que vous ne manquiez pas une seule chose que nous l’avons fait. Les résistances de pull-up sont le problème le plus courant, vérifiez la tension de broche de pull-up en utilisant le menu « v » dans le terminal de Bus Pirate.
Puce : 25AA, EEPROM SPI (1 Koctet).
Bus: SPI. Résistances de pull-up seulement requis pour interfaçage mélangé-tension.
Alimentation électrique : 1.8volts à 5.5volts (AA), 2.5volts à 5.5 volts (LC).
Références : fiche technique, pirater une manifestation de la journée.
Journal de session complète Bus Pirate pour cette démonstration.
Je ne pouvais pas inclure certains mise en forme et des tableaux HTML dans une Instructable, vous pouvez voir l’original sur le blog de Prototypes dangereux.
IC5 est une série-25AA I2C EEPROM de Microchip, ces mémoires EEPROM viennent dans une tonne de tailles. Pièces AA aller de 1.8volts à 5.5volts, tandis que les 25LC-pièces ont au minimum 2,5 volts.
C3 (0.1uF) découple l’EEPROM SPI de l’alimentation électrique. L’écriture protéger (WP) et maintenez broches peuvent être contrôlés par un microcontrôleur, mais nous les handicapés en organisant ces broches hautes. Les broches de bus SPI, CS,, CLK et DI, sont présentée à en-tête JP4.
Programme d’installation
Si vous utilisez un Bus Pirate, connectez-le à le 3EEPROM ou 25AA-ci comme sur l’image du graphique ci-dessous. SPI ne nécessite normalement pas les résistances de pull-up.
Entoilage
Le Pirate de Bus terminal presse am' pour le menu mode et sélectionnez SPI. Configurer la bibliothèque SPI pour la sortie de l’axe normal, utilisez les valeurs par défaut pour tous les autres paramètres de mode SPI. Activez les blocs d’alimentation (gros "W") à l’invite du mode de SPI. Enfin, obtenir un rapport de tension pour s’assurer que les blocs d’alimentation travaillent ("v").
Nous allons démontrer comment interfacer l’EEPROM directement à 3.3volts en utilisant la bibliothèque SPI en mode pin normal. Les résistances de pull-up ne sont pas obligatoires pour cette démo. Si vous voulez une EEPROM propulsée par 5volts d’interface, utilisez la bibliothèque SPI en collector (HiZ) broche mode ouvert et activez les résistances de pull-up avec les Vpullup broche (Vpu) connectée à l’alimentation électrique de l’EEPROM.
Étape 1, désactiver protection en écriture "
SPI > [0b110]
CS a permis <<< puce sélectionnez activé
ÉCRITURE: 0 x 06 <<< désactiver l’écriture protéger la commande
CS désactivé <<< chip select handicapés
SPI >
Le - 25AA est protégé à l’allumage en écriture. Plus bas chip select (CS) ([]), envoyer l’écriture disable protéger command (0 x 06) et soulevez CS (]) pour activer l’écriture de l’EEPROM.
L’écriture de disable protéger commande est 0b00000110 en binaire, mais nous pouvons raccourcir à 0b110 et le Bus Pirate comprend encore.
Étape 2, écrire des certaines valeurs
SPI > [0b10 0 3 2 1].
CS a permis <<< puce sélectionnez activé
ÉCRITURE: 0 x 02 <<< écrire la commande
ÉCRITURE: 0 x 00 <<< écrire l’adresse de démarrage
ÉCRITURE: 0 x 03 <<< 3 valeurs d’écrire (3,2,1)
ÉCRIRE: 0 X 02
ÉCRIRE: 0 X 01
CS désactivé <<< chip select handicapés
SPI >
L’EEPROM est maintenant accessible en écriture. Tout d’abord, baisser CS pour activer le 25AA - ([]). Prochain, envoyer l’écriture commande (0 x 02) et l’emplacement à commencer l’écriture (0). Envoyer les données à stocker (3 2 1), puis déclenchez CS (]) pour enregistrer les valeurs.
Remarque : nous avons utilisé un minuscule octet 128 EEPROM, gros copeaux utilisera une adresse de 16 bits (2 octets). Cette commande serait [0b10 0 '' 0''' ' 1 2 3] pour plus grand que 256bytes EEPROM, note le deuxième 0. Vérifiez que la feuille de données pour votre EEPROM.
Étape 3, dos valeurs lues
SPI > [0b11 r 0:3]
CS a permis <<< puce sélectionnez activé
ÉCRITURE: 0 x 03 <<< lire la commande
ÉCRITURE: 0 x 00 <<< lire l’adresse de démarrage
LECTURE en vrac octets de 0 x 03 : <<< lu 3 valeurs
0 x 03 0x02 0x01
CS désactivé <<< chip select handicapés
SPI >
Enfin, lire les données à vérifier que l’écriture a réussi. Sélectionnez le 25AA - ([]), envoyer la lecture command (0 x 03) et adresse (0) de départ et puis lire trois valeurs (r: 3). Soulever le CS pour terminer la transaction (]). Les valeurs correspondent, l’écriture a été un succès.
Remarque : nous avons utilisé un minuscule octet 128 EEPROM, gros copeaux utilisera une adresse de 16 bits (2 octets). Cette commande serait [0b11 0 '' 0''' ' r: 3] pour plus grand que 256bytes EEPROM, note le deuxième 0. S’assurer que la feuille de données pour votre EEPROM.