Inhoudsopgave:

Bus Pirate 3EEPROM Explorer Board - Ajarnpa
Bus Pirate 3EEPROM Explorer Board - Ajarnpa

Video: Bus Pirate 3EEPROM Explorer Board - Ajarnpa

Video: Bus Pirate 3EEPROM Explorer Board - Ajarnpa
Video: Bus Pirate demo board build 2024, November
Anonim
Bus Pirate 3EEPROM Explorer Board
Bus Pirate 3EEPROM Explorer Board

Als je een van Hack a Day's Bus Pirates hebt, wat doe je er dan mee? Leer meer over 1-draads, I2C en SPI EEPROM's met het 3EEPROM-verkennerbord (we noemen het de THR-EE-PROM). EEPROM is een type geheugenchip die gegevens opslaat zonder een continue stroomvoorziening. Het is handig voor permanente gegevensopslag in kleine loggercircuits of voor het bewaren van aangepaste pagina's in een miniwebserver. EEPROM's zijn er in vele maten en protocollen. De 3EEPROM heeft drie gemeenschappelijke EEPROM-chips: de DS2431 (1-Wire), 24AA- (I2C) en 25AA- (SPI). Alle drie werden eerder gedemonstreerd op Hack a Day, maar elke demo gebruikt een andere versie van de Bus Pirate-hardware en -firmware, het is moeilijk voor een beginner om te volgen met behulp van een Bus Pirate v2go. Lees verder voor een bijgewerkte, stapsgewijze handleiding voor het gebruik de DS2431, 24AA- en 25AA- EEPROM's met de Bus Pirate v2go. We hebben ook de volledige sessielogboeken als tekstbestanden, zodat u geen enkel detail hoeft te missen. We kunnen 3EEPROM-explorerbordprintplaten of -kits laten produceren bij Seeed Studio. PCB's zijn ongeveer $ 10, kits zijn ongeveer $ 15, wereldwijd verzonden. We moeten een groepsaankoop van 10 PCB's of 20 kits organiseren om te beginnen. Als je geïnteresseerd bent in een Bus Pirate, versie 3 komt eraan. Ik kon sommige opmaakelementen en HTML-tabellen niet in een Instructable opnemen, je kunt het originele bericht zien op de Dangerous Prototypes-blog.

Stap 1: 3EEPROM-hardwareoverzicht

3EEPROM-hardwareoverzicht
3EEPROM-hardwareoverzicht
3EEPROM-hardwareoverzicht
3EEPROM-hardwareoverzicht
3EEPROM-hardwareoverzicht
3EEPROM-hardwareoverzicht

Het doel van dit prototype is om te leren over EEPROM en drie gemeenschappelijke busprotocollen. Eerst kijken we naar de 3EEPROM-printplaat en vervolgens demonstreren we elke EEPROM met behulp van een universele seriële interfacetool van Bus Pirate. Als je geen Bus Pirate hebt, kun je nog steeds meelezen omdat de basisvolgorde van interfacebewerkingen hetzelfde blijft, ongeacht hoe je ze implementeert. Circuit Schema op volledige grootte [PNG]. We hebben het circuit en de PCB gemaakt met behulp van de freeware-versie van Cadsoft Eagle. U kunt het schema en de print downloaden uit het Bus Pirate SVN-archief. De 3EEPROM-print bevat een DS2431 1-Wire EEPROM (IC1), een 24AA-I2C EEPROM (IC4) en een 25AA-SPI EEPROM (IC5). De DS2431 (IC1) haalt parasitair stroom uit de 1-Wire bus, heeft geen externe voedingspin en heeft geen ontkoppelcondensator nodig. IC2 en IC3 zijn lege plekken voor extra 1-Wire apparaten, zoals een andere DS2431 of een DS1822 temperatuursensor. C1 (0.01uF) is optioneel en alleen nodig als IC2 of IC3 zijn gevuld met een gevoed 1-draads apparaat. 1-draads vereist een sterke pull-up-weerstand, maximaal 2,2K ohm. De ingebouwde pull-up weerstanden van de Bus Pirate zijn 10K, te zwak om de DS2431 goed van stroom te voorzien tijdens het schrijven. Het 3EEPROM explorer board bevat een 1,8k ohm, 1/8e watt pull-up weerstand (R1) op de 1-Wire bus zodat er geen extra pull-up weerstand nodig is. De 24AA-(IC4) en 25AA- (IC5) krijgen elk een 0.1uF condensator om ze te ontkoppelen van de voeding (C2, C3). Je hebt de condensatoren waarschijnlijk niet nodig in zo'n eenvoudig circuit, we hebben ze weggelaten van het prototypebord in de demonstratie. De I2C-bus die wordt gebruikt door de 24AA- vereist ook pull-up-weerstanden, maar de ingebouwde 10K ohm pull-up-weerstanden van de Bus Pirate zijn voldoende. Alle componenten werken van 2,8 volt tot 5 volt DC. Het circuit wordt gevoed via de VCC- en GND-pinnen van jumper 3. Er zijn twee VCC-pinnen, één is voor voeding, de andere is voor de pull-up weerstandsspanningsingangspin (Vpullup) van de Bus Pirate. PCB We hebben het circuit en de PCB gemaakt met behulp van de freeware-versie van Cadsoft Eagle. U kunt het schema en de print downloaden uit het Bus Pirate SVN-archief. Als je een professioneel geprepareerde PCB of 3EEPROM-kit wilt, kunnen we misschien een groepsaankoop regelen als 10 of 20 mensen geïnteresseerd zijn. Onderdelenlijst R1 1800 ohm weerstand (1/8e watt)C2, 3 0.1uF condensator/10volts+JP1-4 0.1" male pin headerIC1 DS2431 1K 1-wire EEPROM TO-92IC4** 24AA014-I/P I2C EEPROM DIP8IC5** 25AA010A-I/P SPI EEPROM DIP8ICS4, 5 8-pins DIP-socket voor IC5, 6**IC4, IC5 kan elke grootte hebben, we hebben gelinkt aan kleine chips, we gebruikten 128bytes en 128Kbytes. Ik kon geen enkele opmaak- en HTML-tabellen opnemen in een Instructable kun je het originele bericht zien op de Dangerous Prototypes-blog.

Stap 2: 25AA- / 25LC- SPI EEPROM

25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM

DemonstratiesAlle EEPROM-demo's zien er vrijwel hetzelfde uit. We schrijven een paar cijfers op de chip en lezen ze dan voor. Elk apparaat heeft voorwaarden die van toepassing zijn zodra u meer dan een paar waarden wilt schrijven, zoals paginagrootte en grensbeperkingen. Lees meer hierover in de datasheet voor uw specifieke apparaat. Als u een demonstratie niet kunt laten werken, download dan het volledige terminallogboek, zodat u niets mist wat we hebben gedaan. Pull-up weerstanden zijn het meest voorkomende probleem, controleer de pull-up pin spanning via menu 'v' in de Bus Pirate terminal. Chip: 25AA, SPI EEPROM (1Kbyte). Bus:SPI. Pull-up-weerstanden alleen vereist voor interfacing met gemengde spanning. Stroomvereisten: 1,8 volt tot 5,5 volt (AA), 2,5 volt tot 5,5 volt (LC). Referenties: datasheet, Hack a Day-demonstratie. Compleet Bus Pirate-sessielogboek voor deze demonstratie. Ik zou sommige opmaak- en HTML-tabellen niet in een Instructable kunnen opnemen, je kunt het origineel zien op de Dangerous Prototypes-blog. IC5 is een 25AA-serie I2C EEPROM van Microchip, deze EEPROM's zijn er in een heleboel maten. AA-onderdelen lopen van 1,8 volt tot 5,5 volt, terwijl de 25LC-onderdelen een minimale vereiste van 2,5 volt hebben. C3 (0.1uF) ontkoppelt de SPI EEPROM van de voeding. De schrijfbeveiligings- (WP) en hold-pinnen kunnen worden bestuurd door een microcontroller, maar we hebben ze uitgeschakeld door deze pinnen hoog te houden. De SPI-buspennen, CS, DO, CLK en DI, worden naar header JP4 gebracht. Setup Als u een Bus Pirate gebruikt, sluit deze dan aan op de 3EEPROM of 25AA-IC zoals weergegeven in de onderstaande afbeelding. SPI vereist normaal gesproken geen pull-up weerstanden. Interfacing Druk in de Bus Pirate-terminal op 'm' voor het modusmenu en selecteer SPI. Configureer de SPI-bibliotheek voor normale pin-uitvoer, gebruik de standaardinstellingen voor alle andere SPI-modusinstellingen. Schakel de voedingen (grote 'W') in bij de prompt van de SPI-modus. Zorg ten slotte voor een spanningsrapport om te controleren of de voedingen werken ('v'). We gaan demonstreren hoe de EEPROM rechtstreeks op 3,3 volt kan worden aangesloten met behulp van de SPI-bibliotheek in de normale pin-modus. Pull-up weerstanden zijn niet vereist voor deze demo. Als u een EEPROM wilt aansluiten die wordt gevoed door 5 volt, gebruik dan de SPI-bibliotheek in de open collector (HiZ) pin-modus en schakel de pull-up-weerstanden in met de Vpullup-pin (Vpu) aangesloten op de voeding van de EEPROM. Stap 1, schrijfbeveiliging uitschakelen' SPI>[0b110]CS INGESCHAKELD <<<chipselectie ingeschakeldSCHRIJVEN: 0x06 <<<uitschakelen schrijfbeveiligingscommandoCS UITGESCHAKELD <<De 25AA- is bij het inschakelen beveiligd tegen schrijven. Verlaag chipselectie (CS) ([), stuur de opdracht voor uitschakelen van schrijfbeveiliging (0x06) en verhoog vervolgens CS (]) om schrijven naar de EEPROM mogelijk te maken. De opdracht voor schrijfbeveiliging uitschakelen is 0b00000110 in binair, maar we kunnen het inkorten tot 0b110 en de Buspiraat begrijpt het nog steeds. Stap 2, schrijf enkele waarden op' SPI>[0b10 0 3 2 1]CS ENABLED <<<chip select ingeschakeldWRITE: 0x02 <<<write commandWRITE: 0x00 <<<write start addressWRITE: 0x03 <<<3 te schrijven waarden (3, 2, 1)SCHRIJVEN: 0x02SCHRIJVEN: 0x01CS UITGESCHAKELD <<Nu is de EEPROM beschrijfbaar. Verlaag eerst de CS om de 25AA- ([) te activeren. Stuur vervolgens het schrijfcommando (0x02) en de locatie om te beginnen met schrijven (0). Stuur de gegevens naar de opslag (3 2 1) en verhoog vervolgens de CS (]) om de waarden op te slaan. Opmerking: we gebruikten een kleine 128byte EEPROM, grotere chips gebruiken een 16bit (2 byte) adres. Dit commando is [0b10 0 '''0''' 3 2 1] voor EEPROM's groter dan 256bytes, noteer de tweede 0. Controleer voor de zekerheid de datasheet van uw EEPROM. Stap 3, lees waarden terug SPI>[0b11 0 r:3]CS ENABLED <<<chip select ingeschakeldWRITE: 0x03 <<<lees commandoWRITE: 0x00 <<<lees startadresBULK READ 0x03 BYTES: <<<lees 3 waarden0x03 0x02 0x01CS UITGESCHAKELD <<Lees ten slotte de gegevens terug om te controleren of het schrijven is gelukt. Selecteer de 25AA- ([), stuur het leescommando (0x03) en startadres (0), en lees vervolgens drie waarden (r:3). Verhoog CS om de transactie te voltooien (]). De waarden komen overeen, het schrijven is gelukt. Opmerking: we gebruikten een kleine 128byte EEPROM, grotere chips gebruiken een 16bit (2 byte) adres. Dit commando is [0b11 0 '''0''' r:3] voor EEPROM's groter dan 256bytes, let op de tweede 0. Controleer voor de zekerheid de datasheet van uw EEPROM.

Stap 3: 24AA- / 24LC I2C EEPROM

24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM

Chip: 24AA, I2C EEPROM (1Kbyte). Bus: I2C, pull-up weerstanden vereist. Stroomvereisten: 1,8 volt tot 5,5 volt (24 AA), 2,5 volt tot 5,5 volt (24LC). Referenties: datasheet, Hack a Day-demonstratie. Compleet Bus Pirate-sessielogboek voor deze demonstratie. Ik kon sommige opmaak- en HTML-tabellen niet in een Instructable opnemen, je kunt het origineel zien op de Dangerous Prototypes-blog. IC4 is een 24AA-serie I2C EEPROM van Microchip, deze EEPROM's worden geleverd in een ton maten. AA-onderdelen werken van 1.8volt tot 5.5volt, terwijl de 24LC-onderdelen een minimumvereiste van 2.5volt hebben. Een 0.1uF condensator (C2) ontkoppelt IC4 van de voeding. De schrijfbeveiligingspin (WP) zou kunnen worden bestuurd vanaf een microcontroller, maar voor deze eenvoudige demonstratie schakelen we deze uit met een verbinding met aarde. De I2C-buspinnen, SDA en SCL, worden naar header JP2 gebracht. Het adres van de meeste 24AA EEPROM's is 1010AAAS, waarbij de laatste vier bits worden bepaald door de adrespinnen (A0, A1, A2) en de lees-/schrijfmodusselectiebit (S). Alle adresbits zijn in dit voorbeeld geaard, dus het schrijfadres van de EEPROM is 10100000 (datasheet pagina 6). Setup Als u een Bus Pirate gebruikt, sluit deze dan aan op de 3EEPROM of 24AA-IC zoals weergegeven in de onderstaande afbeelding. I2C is een bidirectionele bus die pull-up-weerstanden op beide pinnen vereist. U kunt de on-board pull-up weerstanden van de Bus Pirate gebruiken door de Vpullup (Vpu) pin aan te sluiten op de 3.3volt voeding en deze in de terminal in te schakelen. Interface Opmerking: niet alle I2C EEPROM's werken hetzelfde. De kleine 24AA01 heeft bijvoorbeeld een heel ander adresserings- en commandosysteem. Controleer zeker de datasheet van uw chip. Druk op 'm' in de Bus Pirate-terminal en selecteer I2C in het modusmenu. Schakel de voedingen (grote 'W') en de pull-up-weerstanden ('p', optie 2) in bij de I2C-prompt. Ontvang een spanningsrapport ('v') om te controleren of de voedingen zijn ingeschakeld en de Vpullup-pin is aangesloten op een spanning. I2C>(0) <<(1) <<<gebruik adres zoekmacroZoeken 7bit I2C adresruimte. Gevonden apparaten op:0xA0 0xA1 <<We weten al dat het I2C-adres 10100000 is, maar we kunnen ook de I2C-zoekmacro (1) van Bus Pirate gebruiken om naar de 24AA- te zoeken. De zoekmacro vond het apparaat op de verwachte schrijf- (0xA0) en leesadressen (0xA1). Stap 1, schrijf enkele waarden I2C>[0b10100000 0 0 3 2 1]I2C START CONDITIE <<<I2C start conditieWRITE: 0xA0 GOT ACK: YES <<<24AA- schrijf adresWRITE: 0x00 GOT ACK: YES <<<schrijf adresbyte 1WRITE: 0x00 GOT ACK: JA <<<schrijf adresbyte 2WRITE: 0x03 GOT ACK: YES <<<3 te schrijven waarden (3, 2, 1)WRITE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOPCONDITIES < <Begin het schrijven met een I2C-startvoorwaarde ([), gevolgd door het 24AA-schrijfadres (0xa0). Stuur vervolgens het 16-bits adres naar (0 0) en de te schrijven gegevens (3 2 1). Beëindig de I2C-transactie met een stopvoorwaarde (]). Stap 2, positioneer de leeswijzer I2C>[0b10100000 0 0]I2C START CONDITIE <<<I2C start conditieWRITE: 0xA0 GOT ACK: YES <<<24AA- schrijf adresWRITE: 0x00 GOT ACK: YES <<<write adres byte 1WRITE: 0x00 GOT ACK: JA <<<schrijf adres byte 2I2C STOP CONDITIE <<Er zijn twee handelingen nodig om van de 24AA- te lezen. De ene positioneert de lees-/schrijfaanwijzer, de andere retourneert de waarden. Begin met een I2C-startvoorwaarde ([) en het schrijfadres (0xa0). Stuur het 16-bits adres om te lezen (0 0), en vervolgens de stopvoorwaarde (]). We hebben deze keer geen gegevens verzonden om te schrijven, we hebben de lees-/schrijfaanwijzer gewoon teruggezet naar het begin van de gegevens die we in stap 1 hebben geschreven. Stap 3, lees enkele waarden I2C>[0b10100001 r:3]I2C START CONDITIE <<<I2C start conditieWRITE: 0xA1 GOT ACK: YES <<<24AA- lees adresBULK READ 0x03 BYTES: <<<lees 3 waarden0x03 0x02 0x01I2C STOP CONDITIE <<Stap 2 zet de lees-/schrijfaanwijzer naar het begin van de gegevens die we willen lezen. Nu kunnen we de gegevens lezen met behulp van het 24AA-leesadres. Begin met de I2C-startvoorwaarde ([) en 24AA-leesadres (0xa1). Lees de drie waarden die we in stap 1 (r:3) hebben geschreven en eindig met een stopvoorwaarde (]). Als de waarden overeenkomen, is het schrijven gelukt.

Stap 4: DS2431 1-draads EEPROM

DS2431 1-draads EEPROM
DS2431 1-draads EEPROM
DS2431 1-draads EEPROM
DS2431 1-draads EEPROM
DS2431 1-draads EEPROM
DS2431 1-draads EEPROM

Chip: DS2431, 1-draads EEPROM (1Kbyte). Bus:1-draads, <2,2Kohm pull-up weerstand vereist. Voedingsvereisten: 2,8volt tot 5,25volt. Referenties: datasheet, Hack a Day-demonstratie. Compleet Bus Pirate-sessielogboek voor deze demonstratie. Ik kon sommige opmaak- en HTML-tabellen niet in een Instructable opnemen, je kunt het origineel zien op de Dangerous Prototypes-blog. De DS2431 haalt stroom uit de pull-up-weerstand en heeft geen externe voeding of ontkoppelingscondensator nodig. 1-Wire heeft een sterke pull-up weerstand nodig, maximaal 2.2Kohms. De ingebouwde pull-up weerstanden van de Bus Pirate zijn 10K, te zwak om de DS2431 goed van stroom te voorzien tijdens het schrijven. U moet een externe weerstand van 2,2 Kohm of kleiner gebruiken tussen de voeding en de 1-draads buspen. Als u problemen ondervindt bij het schrijven van gegevens, zorg er dan voor dat uw pull-up-weerstand groot genoeg is. Het 3EEPROM-verkennerbord bevat een pull-upweerstand van 1800 ohm (R1) op de 1-draads bus, dus er is geen externe weerstand nodig. Installatie Als u een Bus Pirate gebruikt, sluit deze dan aan op het 3EEPROM-bord of DS2431 zoals weergegeven in de onderstaande afbeelding. De DS2431 heeft de voedingspin niet nodig, hij wordt gebruikt op het 3EEPROM-bord om de grote pull-up-weerstand voor de 1-draads bus van stroom te voorzien. Interfacing Druk op 'm' in de Bus Pirate-terminal en selecteer 1-Wire-modus. Schakel de boordvoedingen in (grote 'W') en controleer de spanningsmonitor (v). Stap 1, zoek het apparaatadres 1-WIRE>(0xf0) <<<1-Wire zoekmacro 1WIRE ROM COMMAND: SEARCH (0xF0)Apparaten gevonden op:Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<<DS2431 unieke ID*DS2431 1K EEPROM <<Elk 1-Wire apparaat heeft een unieke 8 byte ID. 1-Wire heeft een zoekprocedure die de ID van alle aangesloten apparaten detecteert. De Bus Pirate implementeert de 1-Wire-zoekopdracht als macro (240). Typ '(240)' in de Bus Pirate-terminal om de 1-Wire-zoekopdracht te starten. Elk apparaatadres wordt afgedrukt, bekende apparaten worden geïdentificeerd. De eerste tien 1-Wire apparaatadressen worden opgeslagen als macro's, in dit voorbeeld is ons DS2431-adres beschikbaar door '(1)' in de terminal te typen. Stap 2, schrijf 8 bytes naar het kladblok 1-WIRE>(0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<<ook { commando 1WIRE WRITE ROM COMMAND: MATCH (0x55) * volg met 64bit adres1WIRE ADRES MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B ' SCHRIJF: 0x0F <<<DS2431 schrijf kladblok commando SCHRIJF: 0x00 <<<DS2431 schrijf adres byte 1 SCHRIJF: 0x00 <<<DS2431 schrijf adres byte 2SCHRIJVEN: 0x08 <<Vervolgens schrijven we 8 bytes naar een tijdelijke locatie in de DS2431, het kladblok genaamd. Start de transactie met een 1-Wire bus-reset en MATCH-opdracht (0x55). Beide zijn beschikbaar als macro '(0x55)'. Dit kan ook zonder macro door '{ 0x55' in te typen, { stuurt de 1-Wire reset, 0x55 is de 1-Wire MATCH-opdracht. Stuur na de MATCH-opdracht de 8 byte ID van het apparaat naar het adres. We gebruikten de macro (1) die in stap 1 was gevuld met de DS2431-ID. U kunt de 8-byte-ID ook handmatig invoeren. Op dit punt zou de DS2431 zijn adres moeten hebben ontvangen en klaar moeten zijn voor commando's. 0x0f is het schrijf-kladblok-commando, het vertelt de DS2431 om gegevens te verwachten. De volgende twee bytes vertellen het waar de gegevens moeten worden geplaatst, we slaan het aan het begin op (0 0). Ten slotte sturen we 8 bytes aan waarden om op te slaan, de nummers 8 tot 1. U moet een volledige 8 bytes naar de DS2431 schrijven. Bovendien moet het schrijfadres zich op een grens van 8 bytes bevinden. Zie de datasheet voor een compleet overzicht van de schrijfbeperkingen. Stap 3, controleer het kladblok en verkrijg de autorisatiecode 1-WIRE>(0x55)(1) 0xaa r:3 r:8 r:2 r:21WIRE BUS RESET OK <<<adres het apparaat1WIRE WRITE ROM COMMAND: MATCH (0x55) *volg met 64bit adres1WIRE ADRES MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<lees kladblok commandoBULK READ 0x03 BYTES: <<<autorisatie code0x00 0x00 0x07BULK READ 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<lees kladblok commandoBULK READ 0x03 BYTES: <<<autorisatie code0x00 0x00 0x07BULK READ 0x00 0x08 BYTES verzonden: <<x08 BYTES verzonden: 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK LEES 0x02 BYTES: <<<CRC voor de data0xC8 0x86BULK LEES 0x02 BYTES: <<Controleer of de gegevens correct zijn ontvangen en ontvang een schrijfautorisatiecode. Begin opnieuw met een 1-draads reset en MATCH-opdrachtmacro (0x55), en de apparaatadresmacro (1). Stuur deze keer de DS2431 read scratch pad-opdracht (0xAA) en lees vervolgens in totaal 15 bytes. De eerste 3 bytes die worden gelezen (r:3) zijn de schrijfautorisatiecode, we hebben deze in de volgende stap nodig om de kladblok naar de EEPROM. De volgende 8 bytes (r:8) moeten overeenkomen met de gegevens die we in stap 2 hebben verzonden. De laatste 2 bytes (r:2) zijn een CRC16 voor de gegevens. Leest nadat de CRC alle enen retourneert. Stap 4, schrijf het kladblok naar de EEPROM 1-WIRE>(0x55)(1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<<adres het apparaat1WIRE WRITE ROM COMMAND: MATCH (0x55) *volg met 64bit adres1WIRE ADRES MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<<kopie kladblok commandoWRITE: 0x00 <<<3 byte autorisatiecode uit stap 3WRITE: 0x00WRITE: 0x071-WIRE>We hebben alles wat we nodig hebben om de gegevens van het kladblok permanent op te slaan in de EEPROM. Adresseer het apparaat en stuur vervolgens de opdracht DS2431 copy scratch pad (0x55) gevolgd door de autorisatiecode van drie bytes die we in stap 3 hebben opgehaald (0x00 0x00 0x07). Als de autorisatiecode correct is, worden de gegevens naar de EEPROM verplaatst. Stap 5, controleer of het kladblok 1-WIRE>(0x55)(1) 0xaa r:31WIRE BUS RESET OK <<<adres het apparaat1WIRE WRITE ROM COMMAND: MATCH (0x55) *volg met 64bit-adres1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<lees kladblok commandoBULK READ 0x03 BYTES:0x00 0x00 0x87 <<De DS2431 stelt het bovenste bit van de schrijfautorisatiecode in na een geslaagde kopieeropdracht. Stuur nog een lees-kladblok-opdracht (0xAA) om de bijgewerkte autorisatiecode te krijgen, maar lees gewoon de eerste drie bytes (r:3). De vorige waarde 0x07 is gewijzigd in 0x87, de kopieeropdracht is met succes ontvangen. Stap 6, lees de waarden terug 1-WIRE>(0x55)(1) 0xf0 0x00 0x00 r:8 r:81WIRE BUS RESET OK <<<adres het apparaat1WIRE WRITE ROM COMMAND: MATCH (0x55) *volg met 64bit adres1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<<DS2431 lees commandoWRITE: 0x00 <<<2 byte lees adresWRITE: 0x00BULK READ 0x08 BYTES: <<<lees de 8 bytes die we schreven0x08 0x07 0x06 0x01 0x02 0x08 BYTES: <<Controleer of het schrijven correct werkte door de waarden op te halen. Adresseer de DS2431, stuur vervolgens het leescommando (0xf0) en het adres om van te lezen (0x00 0x00). Het is mogelijk om het hele geheugenbereik met één commando uit te lezen. We lazen de acht bytes die we eerder schreven (r:8), die de verwachte waarden teruggaven. De acht bytes voorbij deze waarden zijn niet geschreven en geven 0 terug.

Stap 5: Conclusie

Conclusie
Conclusie

Conclusie Dit prototype leert over EEPROM-geheugen en demonstreert hoe de Bus Pirate te gebruiken met drie gemeenschappelijke protocollen: 1-Wire, I2C en SPI. Het 3EEPROM-verkennerbord zorgt voor de juiste verbindingen met elke EEPROM en biedt een externe pull-up-weerstand voor de meer veeleisende 1-draads bus met parasitair aangedreven componenten. We kunnen 3EEPROM-explorerbordprintplaten of -kits laten produceren bij Seeed Studio. PCB's zijn ongeveer $ 10, kits zijn ongeveer $ 15, wereldwijd verzonden. We moeten een groepsaankoop van 10 PCB's of 20 kits organiseren om te beginnen.

Aanbevolen: