Stap 2: 25AA - / 25LC-SPI EEPROM
Alle demo's van de EEPROM uitzien vrijwel hetzelfde. We schrijven een paar nummers naar de chip, en ze vervolgens te lezen. Elk apparaat heeft voorwaarden die van toepassing zijn zodra u wilt schrijven meer dan een paar waarden, zoals paginaformaat en grens beperkingen. Lees meer over dit in het gegevensblad voor uw specifieke apparaat.
Als je niet een demonstratie om te werken, download de volledige terminal logboek zodat je niet een ding missen dat we deden. Pull-up-weerstanden zijn het meest voorkomende probleem, check de pull-up pin spanning met menu 'v' in de Bus Pirate-terminal.
Chip: 25AA, SPI EEPROM (1Kbyte).
Bus: SPI. Pull-up weerstanden alleen vereist voor gemengd-spanning interfacing.
Stroomvereisten: 1.8volts naar 5.5volts (AA), 2.5volts tot 5.5 volt (LC).
Referenties: gegevensblad, Hack een demonstratie van de dag.
Compleet Bus Pirate sessie logboek voor deze demonstratie.
Ik kon niet bepaalde opmaak en de HTML-tabellen opnemen in een Instructable, kunt u de oorspronkelijke op de blog van gevaarlijke Prototypes.
IC5 is een 25AA-serie I2C EEPROM van Microchip, deze EEPROMs komen in een ton van de maten. AA onderdelen loopt van 1.8volts tot 5.5volts, terwijl de 25LC-onderdelen de minimumvereiste 2,5 volt hebben.
C3 (0.1uF) loskoppelt van de SPI EEPROM uit het stopcontact haalt. De Schrijf-bescherm (WP) en houd pinnen kunnen worden gecontroleerd door een microcontroller, maar wij hen uitgeschakeld door deze pinnen hoog te houden. De SPI bus pinnen, CS, CLK en DI, zijn kop JP4 aangeboden.
Setup
Als u van een Bus Pirate gebruikmaakt, aansluiten op de 3EEPROM of 25AA-IC zoals weergegeven in de grafiekafbeelding hieronder. SPI vereist geen normaal pull-up weerstanden.
Interfacing
In de Bus piraat terminal pers ben ' voor het modus menu en selecteer SPI. Configureren van de SPI-bibliotheek voor normale pin uitvoer, gebruiken de standaardwaarden voor alle andere SPI-modus instellingen. De voedingen (grote ' W') op de prompt van de SPI-modus inschakelen. Tot slot krijgen een verslag van de spanning om ervoor te zorgen dat de voedingen werken ('v').
We gaan demonstreren hoe de EEPROM direct bij 3.3volts met behulp van de bibliotheek van de SPI in normale pens modus interface. Pull-up-weerstanden zijn niet vereist voor deze demo. Als u een EEPROM aangedreven door 5volts interface wilt, gebruiken de SPI-bibliotheek in open collector (HiZ) pens-modus en de pull-up weerstanden met de Vpullup pin (Vpu) aangesloten op de stroomvoorziening van de EEPROMte schakelen.
Stap 1, uitschakelen schrijfbeveiliging '
SPI > [0b110]
CS ingeschakeld <<< chip Selecteer ingeschakeld
SCHRIJVEN: 0x06 <<< uitschakelen Schrijf beschermen opdracht
CS uitgeschakeld <<< chip select gehandicapten
SPI >
De 25AA - tegen schrijven is beveiligd op power on. Onderste chip select (CS) ([]), stuur de uitschakelen schrijfbeveiliging command (0x06), en vervolgens verhogen CS (]) om te schakelen schrijft aan de EEPROM.
De uitschakelen schrijfbeveiliging opdracht 0b00000110 in binary, maar wij het te 0b110 kunt verkorten en de Bus piraat nog begrijpt.
Stap 2, schrijven sommige waarden
SPI > [0b10 0 3 2 1]
CS ingeschakeld <<< chip Selecteer ingeschakeld
SCHRIJVEN: 0x02 <<< schrijven opdracht
SCHRIJVEN: 0x00 <<< schrijven startadres
SCHRIJVEN: 0x03 <<< 3 waarden te schrijven (3,2,1)
SCHRIJVEN: 0X02
SCHRIJVEN: 0X01
CS uitgeschakeld <<< chip select gehandicapten
SPI >
Nu is de EEPROM schrijfbaar. Ten eerste, lager CS te activeren de 25AA - ([]). Volgende, verzenden het schrijven commando (0x02) en de locatie om te beginnen schrijven (0). Verzenden van de gegevens op te slaan (3 2 1), kunt u verhogen CS (]) om op te slaan van de waarden.
Opmerking: gebruikten we een kleine 128 byte EEPROM, grotere chips zal een 16 bits (2 byte) adres gebruiken. Deze opdracht zou [0b10 0 '''0 ''' 3 2 1] Opmerking voor EEPROMs groter dan 256bytes, de tweede 0. Controleer of het gegevensblad voor uw EEPROM.
Stap 3, lees waarden terug
SPI > [0b11 0 r: 3]
CS ingeschakeld <<< chip Selecteer ingeschakeld
SCHRIJVEN: 0x03 <<< Lees opdracht
SCHRIJVEN: 0x00 <<< Lees het startadres
BULK Lees 0x03 BYTES: <<< 3 waarden lezen
0x03 0x02 0x01
CS uitgeschakeld <<< chip select gehandicapten
SPI >
Tenslotte, lees de gegevens terug om te verifiëren dat het schrijven voltooid is. Selecteer de 25AA - ([]), verzenden de lezen command (0x03) en beginadres (0) en lees vervolgens drie waarden (r: 3). Verhogen van CS om de transactie af (]). De waarden overeenkomen, het schrijven was succesvol.
Opmerking: gebruikten we een kleine 128 byte EEPROM, grotere chips zal een 16 bits (2 byte) adres gebruiken. Deze opdracht zou [0b11 0 '''0 ''' r: 3] Opmerking voor EEPROMs groter dan 256bytes, de tweede 0. Controleer het gegevensblad voor uw EEPROM of.