Sommario:

Bus Pirate 3EEPROM Explorer Board: 5 passaggi
Bus Pirate 3EEPROM Explorer Board: 5 passaggi

Video: Bus Pirate 3EEPROM Explorer Board: 5 passaggi

Video: Bus Pirate 3EEPROM Explorer Board: 5 passaggi
Video: Kiosk mode Bruteforce Evasion with Flipper Zero 2024, Luglio
Anonim
Bus Pirate 3EEPROM Explorer Board
Bus Pirate 3EEPROM Explorer Board

Se hai uno dei pirati di Hack a Day's Bus, cosa ci fai? Scopri le EEPROM a 1 filo, I2C e SPI con la scheda di esplorazione 3EEPROM (la chiamiamo THR-EE-PROM). L'EEPROM è un tipo di chip di memoria che memorizza i dati senza un'alimentazione continua. È utile per l'archiviazione permanente dei dati in piccoli circuiti di logger o per contenere pagine personalizzate in un mini server web. Le EEPROM sono disponibili in molte dimensioni e protocolli. La 3EEPROM ha tre chip EEPROM comuni: DS2431 (1-Wire), 24AA- (I2C) e 25AA- (SPI). Tutti e tre sono stati precedentemente dimostrati su Hack a Day, ma ogni demo utilizza una versione diversa dell'hardware e del firmware di Bus Pirate, è difficile da seguire per un principiante utilizzando un Bus Pirate v2go. Continua a leggere per una guida passo passo aggiornata all'uso le EEPROM DS2431, 24AA- e 25AA- con il Bus Pirate v2go. Abbiamo anche i registri di sessione completi come file di testo in modo da non perdere un singolo dettaglio. Possiamo avere PCB o kit della scheda explorer 3EEPROM prodotti da Seeed Studio. I PCB costano circa $ 10, i kit costano circa $ 15, spediti in tutto il mondo. Abbiamo bisogno di organizzare un acquisto di gruppo di 10 PCB o 20 kit per iniziare. Se sei interessato a un Bus Pirate, è in arrivo la versione 3. Non ho potuto includere alcuni elementi di formattazione e tabelle HTML in un Instructable, puoi vedere il post originale sul blog Dangerous Prototypes.

Passaggio 1: 3 Panoramica hardware EEPROM

3 Panoramica hardware EEPROM
3 Panoramica hardware EEPROM
3 Panoramica hardware EEPROM
3 Panoramica hardware EEPROM
3 Panoramica hardware EEPROM
3 Panoramica hardware EEPROM

L'obiettivo di questo prototipo è conoscere l'EEPROM e tre protocolli bus comuni. Per prima cosa, esaminiamo il PCB 3EEPROM, quindi dimostriamo ogni EEPROM utilizzando uno strumento di interfaccia seriale universale Bus Pirate. Se non hai un Bus Pirate, puoi comunque seguirlo perché l'ordine di base delle operazioni dell'interfaccia rimane lo stesso, non importa come le implementi. Circuito Schema a grandezza naturale [PNG]. Abbiamo realizzato il circuito e il PCB utilizzando la versione freeware di Cadsoft Eagle. È possibile scaricare lo schema e il PCB dall'archivio SVN di Bus Pirate. Il PCB 3EEPROM contiene una EEPROM 1-Wire DS2431 (IC1), una EEPROM 24AA-I2C (IC4) e una EEPROM 25AA-SPI (IC5). Il DS2431 (IC1) preleva energia parassitariamente dal bus 1-Wire, non ha un pin di alimentazione esterno e non necessita di condensatore di disaccoppiamento. IC2 e IC3 sono spazi vuoti per dispositivi 1-Wire aggiuntivi, come un altro DS2431 o un sensore di temperatura DS1822. C1 (0.01uF) è opzionale e necessario solo se IC2 o IC3 sono popolati con un dispositivo 1-Wire alimentato.1-Wire richiede un forte resistore di pull-up, un massimo di 2,2K ohm. I resistori di pull-up integrati del Bus Pirate sono 10K, troppo deboli per alimentare correttamente il DS2431 durante le scritture. La scheda explorer 3EEPROM include una resistenza di pull-up da 1,8k ohm, 1/8 di watt (R1) sul bus 1-Wire in modo che non sia necessaria alcuna resistenza di pull-up aggiuntiva. Il 24AA-(IC4) e 25AA- (IC5) ciascuno ottiene un condensatore da 0.1uF per disaccoppiarli dall'alimentatore (C2, C3). Probabilmente non hai bisogno dei condensatori in un circuito così semplice, li abbiamo omessi dalla scheda prototipo nella dimostrazione. Anche il bus I2C utilizzato dal 24AA richiede resistori di pull-up, ma i resistori di pull-up da 10K ohm integrati del Bus Pirate sono sufficienti. Tutti i componenti funzioneranno da 2,8 volt a 5 volt CC. Il circuito è alimentato tramite i pin VCC e GND del jumper 3. Ci sono due pin VCC, uno è per l'alimentazione, l'altro è per il pin di ingresso della tensione del resistore di pull-up del Bus Pirate (Vpullup). versione gratuita di Cadsoft Eagle. È possibile scaricare lo schema e il PCB dall'archivio SVN di Bus Pirate. Se desideri un kit PCB o 3EEPROM preparato professionalmente, potremmo essere in grado di organizzare un acquisto di gruppo se 10 o 20 persone sono interessate. Elenco delle parti R1 Resistore da 1800 ohm (1/8 di watt) C2, 3 condensatore da 0,1 uF/10 volt + JP1-4 connettore maschio da 0,1" IC1 DS2431 EEPROM 1-filo TO-92IC4** 24AA014-I/P EEPROM I2C DIP8IC5** 25AA010A-I/P SPI EEPROM DIP8ICS4, 5 socket DIP 8 pin per IC5, 6**IC4, IC5 potrebbero essere di qualsiasi dimensione, abbiamo collegato a piccoli chip, abbiamo usato 128byte e 128Kbyte. Non ho potuto includere alcune tabelle di formattazione e HTML in un Instructable, puoi vedere il post originale sul blog Dangerous Prototypes.

Passaggio 2: 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 25AA- / 25LC- SPI

DimostrazioniTutte le demo EEPROM sembrano più o meno uguali. Scriveremo alcuni numeri sul chip e poi li leggeremo. Ogni dispositivo ha condizioni che si applicano quando si desidera scrivere più di pochi valori, come le dimensioni della pagina e le limitazioni dei limiti. Leggi di più su questi nella scheda tecnica per il tuo dispositivo specifico. Se non riesci a far funzionare una dimostrazione, scarica il registro completo del terminale in modo da non perdere nemmeno una cosa che abbiamo fatto. I resistori di pull-up sono il problema più comune, controlla la tensione del pin di pull-up usando il menu 'v' nel terminale Bus Pirate. Chip: 25AA, SPI EEPROM (1Kbyte). Bus:SPI. Resistenze pull-up richieste solo per l'interfacciamento a tensione mista. Requisiti di alimentazione: da 1,8 volt a 5,5 volt (AA), da 2,5 volt a 5,5 volt (LC). Riferimenti: scheda tecnica, dimostrazione Hack a Day. Completare il registro della sessione Bus Pirate per questa dimostrazione. Non ho potuto includere alcune tabelle di formattazione e HTML in un Instructable, puoi vedere l'originale sul blog Dangerous Prototypes. IC5 è una EEPROM I2C serie 25AA di Microchip, queste EEPROM sono disponibili in un sacco di dimensioni. Le parti AA vanno da 1,8 volt a 5,5 volt, mentre le parti 25LC hanno un requisito minimo di 2,5 volt. C3 (0,1 uF) disaccoppia l'EEPROM SPI dall'alimentatore. I pin di protezione da scrittura (WP) e hold potrebbero essere controllati da un microcontrollore, ma li abbiamo disabilitati tenendo questi pin in alto. I pin del bus SPI, CS, DO, CLK e DI, sono portati all'intestazione JP4. Configurazione Se si utilizza un Bus Pirate, collegarlo alla 3EEPROM o al 25AA-IC come mostrato nell'immagine del grafico sottostante. SPI normalmente non richiede resistori di pull-up. Interfaccia Nel terminale Bus Pirate premere 'm' per il menu modalità e selezionare SPI. Configurare la libreria SPI per l'uscita pin normale, utilizzare i valori predefiniti per tutte le altre impostazioni della modalità SPI. Abilitare gli alimentatori (grande 'W') al prompt della modalità SPI. Infine, ottieni un rapporto sulla tensione per assicurarti che gli alimentatori funzionino ('v'). Dimostreremo come interfacciare la EEPROM direttamente a 3,3 volt utilizzando la libreria SPI in modalità pin normale. Le resistenze pull-up non sono necessarie per questa demo. Se si desidera interfacciare una EEPROM alimentata a 5 volt, utilizzare la libreria SPI in modalità pin open collector (HiZ) e abilitare le resistenze di pull-up con il pin Vpullup (Vpu) collegato all'alimentazione della EEPROM. Passaggio 1, disattiva la protezione dalla scrittura' SPI>[0b110]CS ENABLED <<<chip select enabledWRITE: 0x06 <<<disabilita il comando di protezione dalla scritturaCS DISABLED <<Il 25AA- è protetto da scrittura all'accensione. Abbassa la selezione del chip (CS) ([), invia il comando di disabilitazione della protezione da scrittura (0x06), quindi alza CS (]) per abilitare le scritture sulla EEPROM. Il comando di disabilitazione della protezione dalla scrittura è 0b00000110 in binario, ma possiamo abbreviarlo a 0b110 e il Bus Pirate capisce ancora. Passaggio 2, scrivere alcuni valori SPI>[0b10 0 3 2 1]CS ENABLED <<<chip select enabledWRITE: 0x02 <<<write commandWRITE: 0x00 <<<write start addressWRITE: 0x03 <<<3 valori da scrivere (3, 2, 1) SCRIVI: 0x02 SCRIVI: 0x01CS DISABILITATO <<Ora la EEPROM è scrivibile. Innanzitutto, abbassare CS per attivare il 25AA- ([). Quindi, invia il comando di scrittura (0x02) e la posizione per iniziare a scrivere (0). Invia i dati da memorizzare (3 2 1), quindi alza CS (]) per salvare i valori. Nota: abbiamo usato una piccola EEPROM da 128 byte, i chip più grandi utilizzeranno un indirizzo a 16 bit (2 byte). Questo comando sarebbe [0b10 0 '''0''' 3 2 1] per EEPROM più grandi di 256 byte, nota il secondo 0. Controlla il foglio dati per la tua EEPROM per essere sicuro. Step 3, rileggi i valori SPI>[0b11 0 r:3]CS ENABLED <<<chip select enabledWRITE: 0x03 <<<leggi il comandoWRITE: 0x00 <<<leggi l'indirizzo inizialeBULK READ 0x03 BYTES: <<<leggi 3 valori0x03 0x02 0x01CS DISABILITA <<Infine, rileggere i dati per verificare che la scrittura sia andata a buon fine. Selezionare il 25AA- ([), inviare il comando di lettura (0x03) e avviare l'indirizzo (0), quindi leggere tre valori (r:3). Alza CS per completare la transazione (]). I valori corrispondono, la scrittura è andata a buon fine. Nota: abbiamo usato una piccola EEPROM da 128 byte, i chip più grandi utilizzeranno un indirizzo a 16 bit (2 byte). Questo comando sarebbe [0b11 0 '''0''' r:3] per EEPROM più grandi di 256 byte, nota il secondo 0. Controlla il foglio dati per la tua EEPROM per essere sicuro.

Passaggio 3: EEPROM I2C 24AA- / 24LC

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

Chip: 24AA, EEPROM I2C (1Kbyte). Bus:I2C, resistori pull-up richiesti. Requisiti di alimentazione: da 1,8volt a 5,5volt (24AA), da 2,5volt a 5,5volt (24LC). Riferimenti:scheda tecnica, dimostrazione Hack a Day. Registro completo della sessione Bus Pirate per questa dimostrazione. Non ho potuto includere alcune tabelle di formattazione e HTML in un Instructable, puoi vedere l'originale sul blog Dangerous Prototypes. IC4 è una EEPROM I2C serie 24AA di Microchip, queste EEPROM sono fornite in un tonnellate di dimensioni. Le parti AA funzionano da 1,8 volt a 5,5 volt, mentre le parti 24LC hanno un requisito minimo di 2,5 volt. Un condensatore da 0,1 uF (C2) disaccoppia IC4 dall'alimentazione. Il pin di protezione da scrittura (WP) potrebbe essere controllato da un microcontrollore, ma per questa semplice dimostrazione lo disabilitiamo con una connessione a massa. I pin del bus I2C, SDA e SCL, vengono portati all'intestazione JP2. L'indirizzo della maggior parte delle EEPROM 24AA è 1010AAAS, con gli ultimi quattro bit determinati dai pin dell'indirizzo (A0, A1, A2) e dal bit di selezione della modalità di lettura/scrittura (S). Tutti i bit di indirizzo sono messi a terra in questo esempio, quindi l'indirizzo di scrittura della EEPROM è 10100000 (scheda tecnica pagina 6). Configurazione Se si utilizza un Bus Pirate, collegarlo alla 3EEPROM o al 24AA-IC come mostrato nell'immagine del grafico sottostante. I2C è un bus bidirezionale che richiede resistori di pull-up su entrambi i pin. È possibile utilizzare le resistenze pull-up integrate del Bus Pirate collegando il pin Vpullup (Vpu) all'alimentatore da 3,3 volt e abilitandole nel terminale. Interfaccia Nota: non tutte le EEPROM I2C funzionano allo stesso modo. Il minuscolo 24AA01, ad esempio, ha un sistema di indirizzamento e comando completamente diverso. Assicurati di controllare la scheda tecnica del tuo chip. Premi 'm' nel terminal Bus Pirate e seleziona I2C dal menu modalità. Abilitare gli alimentatori (grande 'W') e le resistenze di pull-up ('p', opzione 2) al prompt I2C. Ottieni un rapporto sulla tensione ('v') per assicurarti che gli alimentatori siano accesi e che il pin Vpullup sia collegato a una tensione. I2C>(0) <<(1) <<<usa macro di ricerca indirizzoRicerca spazio indirizzi I2C a 7bit. Dispositivi trovati a:0xA0 0xA1 <<Sappiamo già che l'indirizzo I2C è 10100000, ma possiamo anche utilizzare la macro di ricerca I2C di Bus Pirate (1) per cercare il 24AA-. La macro di ricerca ha trovato il dispositivo agli indirizzi di scrittura (0xA0) e lettura (0xA1) previsti. Passaggio 1, scrivere alcuni valori I2C>[0b10100000 0 0 3 2 1]I2C START CONDITION <<<I2C start conditionWRITE: 0xA0 GOT ACK: YES <<<24AA- write addressWRITE: 0x00 GOT ACK: YES <<<write address byte 1WRITE: 0x00 GOT ACK: YES <<<write address byte 2WRITE: 0x03 GOT ACK: YES <<<3 valori da scrivere (3, 2, 1)WRITE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONDITION < <Iniziare la scrittura con una condizione di avvio I2C ([), seguita dall'indirizzo di scrittura 24AA (0xa0). Successivamente, inviare l'indirizzo a 16 bit da scrivere su (0 0) ei dati da scrivere (3 2 1). Termina la transazione I2C con una condizione di stop (]). Passaggio 2, posizionare il puntatore di lettura I2C>[0b10100000 0 0]I2C START CONDITION <<<I2C start conditionWRITE: 0xA0 GOT ACK: YES <<<24AA- write addressWRITE: 0x00 GOT ACK: YES <<<write address byte 1WRITE: 0x00 GOT ACK: SI <<<scrivi indirizzo byte 2I2C CONDIZIONE STOP <<Sono necessarie due operazioni per leggere dal 24AA-. Uno posiziona il puntatore di lettura/scrittura, l'altro restituisce i valori. Inizia con una condizione di avvio I2C ([) e l'indirizzo di scrittura (0xa0). Invia l'indirizzo a 16 bit da leggere (0 0), quindi la condizione di arresto (]). Questa volta non abbiamo inviato alcun dato da scrivere, abbiamo solo posizionato il puntatore di lettura/scrittura all'inizio dei dati che abbiamo scritto nel passaggio 1. Passaggio 3, leggi alcuni valori I2C>[0b10100001 r:3]I2C CONDIZIONE DI AVVIO <<<I2C start conditionWRITE: 0xA1 GOT ACK: YES <<<24AA- read addressBULK READ 0x03 BYTES: <<<leggi 3 valori0x03 0x02 0x01I2C STOP CONDITION <<Passaggio 2 impostare il puntatore di lettura/scrittura all'inizio dei dati che si desidera leggere. Ora possiamo leggere i dati utilizzando l'indirizzo di lettura 24AA. Iniziare con la condizione di avvio I2C ([) e l'indirizzo di lettura 24AA (0xa1). Leggi i tre valori che abbiamo scritto nel passaggio 1 (r:3) e termina con una condizione di arresto (]). Se i valori corrispondono, la scrittura ha avuto successo.

Passaggio 4: EEPROM a 1 filo DS2431

DS2431 EEPROM 1-Wire
DS2431 EEPROM 1-Wire
DS2431 EEPROM 1-Wire
DS2431 EEPROM 1-Wire
DS2431 EEPROM 1-Wire
DS2431 EEPROM 1-Wire

Chip: DS2431, EEPROM a 1 filo (1 Kbyte). Bus: 1 filo, resistenza di pull-up <2.2Kohm richiesta. Requisiti di alimentazione: da 2,8 volt a 5,25 volt. Riferimenti: scheda tecnica, dimostrazione Hack a Day. Registro completo della sessione Bus Pirate per questa dimostrazione. Non ho potuto includere alcune tabelle di formattazione e HTML in un Instructable, puoi vedere l'originale sul blog Dangerous Prototypes. Il DS2431 riceve energia dal resistore di pull-up e non ha bisogno di un alimentatore esterno o di un condensatore di disaccoppiamento. 1-Wire necessita di un forte resistore di pull-up, un massimo di 2,2Kohm. I resistori di pull-up integrati del Bus Pirate sono 10K, troppo deboli per alimentare adeguatamente il DS2431 durante le scritture. È necessario utilizzare un resistore esterno da 2,2Kohm o inferiore tra l'alimentazione e il pin del bus 1-Wire. Se hai difficoltà a scrivere i dati, assicurati che la tua resistenza di pull-up sia abbastanza grande. La scheda explorer 3EEPROM include un resistore pull-up da 1800 ohm (R1) sul bus 1-Wire, quindi non è necessario alcun resistore esterno. Setup Se stai usando un Bus Pirate, collegalo alla scheda 3EEPROM o DS2431 come mostrato nell'immagine del grafico qui sotto. Il DS2431 non richiede il pin di alimentazione, viene utilizzato sulla scheda 3EEPROM per alimentare la grande resistenza di pull-up per il bus 1-Wire. Interfaccia Premere 'm' nel terminale Bus Pirate e selezionare la modalità 1-Wire. Abilitare gli alimentatori di bordo (grande 'W') e controllare il monitor di tensione (v). Passaggio 1, trovare l'indirizzo del dispositivo 1-WIRE>(0xf0) <<<Macro di ricerca 1-Wire 1WIRE ROM COMMAND: SEARCH (0xF0)Dispositivi trovati su:Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<<DS2431 ID univoco*DS2431 1K EEPROM <<Ogni dispositivo 1-Wire ha un ID univoco di 8 byte. 1-Wire ha una procedura di ricerca che rileva l'ID di tutti i dispositivi collegati. Il Bus Pirate implementa la ricerca 1-Wire come macro (240). Digitare '(240)' nel terminale Bus Pirate per avviare la ricerca 1-Wire. Viene stampato l'indirizzo di ogni dispositivo, i dispositivi noti vengono identificati. I primi dieci indirizzi del dispositivo 1-Wire sono memorizzati come macro, in questo esempio il nostro indirizzo DS2431 è disponibile digitando '(1)' nel terminale. Passo 2, scrivi 8 byte nello scratch pad 1-WIRE>(0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<<anche { comando 1WIRE WRITE ROM COMMAND: MATCH (0x55) * segue con indirizzo a 64 bit1MACRO INDIRIZZO FILO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B ' WRITE: 0x0F <<<DS2431 scrivi comando scratch pad WRITE: 0x00 <<<DS2431 scrivi indirizzo byte 1 WRITE: 0x00 <<<DS2431 scrivi indirizzo byte 2WRITE: 0x08 <<Successivamente scriveremo 8 byte in una posizione temporanea nel DS2431 chiamata scratch pad. Avviare la transazione con un reset del bus 1-Wire e il comando MATCH (0x55). Entrambi sono disponibili come macro '(0x55)'. Questo può essere fatto anche senza una macro digitando '{ 0x55', { invia il reset 1-Wire, 0x55 è il comando MATCH 1-Wire. Dopo il comando MATCH, invia l'ID di 8 byte del dispositivo all'indirizzo. Abbiamo utilizzato la macro (1) che è stata popolata con l'ID DS2431 nel passaggio 1. È anche possibile inserire manualmente l'ID a 8 byte. A questo punto il DS2431 dovrebbe aver ricevuto il suo indirizzo ed essere pronto per i comandi. 0x0f è il comando di scrittura degli appunti, dice al DS2431 di aspettarsi i dati. I prossimi due byte gli dicono dove mettere i dati, lo salveremo all'inizio (0 0). Infine, inviamo 8 byte di valori da memorizzare, i numeri da 8 a 1. È necessario scrivere 8 byte completi nel DS2431. Inoltre, l'indirizzo di scrittura deve trovarsi su un limite di 8 byte. Vedere la scheda tecnica per una panoramica completa delle limitazioni di scrittura. Passaggio 3, verificare il blocco appunti e ottenere il codice di autorizzazione 1-WIRE>(0x55)(1) 0xaa r:3 r:8 r:2 r:21WIRE BUS RESET OK <<<indirizzare il dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) *segui con indirizzo a 64 bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<comando lettura scratch padBULK READ 0x03 BYTES: <<<codice autorizzazione0x00 0x00 0x07BULK READ 0x08 BYTES: <<<i dati che abbiamo inviato 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK READ 0x02 BYTES: <<<CRC per i dati0xC8 0x86BULK READ 0x02 BYTES: <<Verificare che i dati siano stati ricevuti correttamente e ottenere un codice di autorizzazione alla scrittura. Ricominciare con una macro di ripristino 1-Wire e comando MATCH (0x55) e la macro dell'indirizzo del dispositivo (1). Questa volta inviare il comando di lettura scratch pad DS2431 (0xAA), quindi leggere un totale di 15 byte. I primi 3 byte letti (r:3) sono il codice di autorizzazione alla scrittura, ne avremo bisogno nel passaggio successivo per copiare il scratch pad alla EEPROM. I successivi 8 byte (r:8) dovrebbero corrispondere ai dati che abbiamo inviato nel passaggio 2. Gli ultimi 2 byte (r:2) sono un CRC16 per i dati. Legge dopo che il CRC restituisce tutti i 1. Passaggio 4, scrivere lo scratch pad nella EEPROM 1-WIRE>(0x55)(1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<<indirizzare il dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) *seguire con l'indirizzo a 64 bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<<copia comando scratch padWRITE: 0x00 <<<3 byte codice di autorizzazione dal passaggio 3WRITE: 0x00WRITE: 0x071-WIRE>Abbiamo tutto il necessario per memorizzare i dati scratch pad permanentemente nel EEPROM. Indirizza il dispositivo, quindi invia il comando DS2431 copy scratch pad (0x55) seguito dal codice di autorizzazione a tre byte che abbiamo recuperato nel passaggio 3 (0x00 0x00 0x07). Se il codice di autorizzazione è corretto, i dati vengono spostati nella EEPROM. Passaggio 5, verificare la scrittura del blocco appunti 1-WIRE>(0x55)(1) 0xaa r:31WIRE BUS RESET OK <<<indirizzare il dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) *seguire con indirizzo a 64 bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<comando lettura blocco appunti BULK READ 0x03 BYTES:0x00 0x00 0x87 <<Il DS2431 imposta il bit più alto del codice di autorizzazione alla scrittura dopo un comando di copia scratch pad riuscito. Invia un altro comando di lettura degli appunti (0xAA) per ottenere il codice di autorizzazione aggiornato, ma leggi solo i primi tre byte (r:3). Il valore precedente 0x07 è stato modificato in 0x87, il comando di copia è stato ricevuto correttamente. Passaggio 6, rileggere i valori 1-WIRE>(0x55)(1) 0xf0 0x00 0x00 r:8 r:81WIRE BUS RESET OK <<<indirizzare il dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) *seguire con indirizzo a 64 bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<<DS2431 read commandWRITE: 0x00 <<<2 byte read addressWRITE: 0x00BULK READ 0x08 BYTES: <<<leggi gli 8 byte che abbiamo scritto0x08 0x07 0x06 0x05 0x04 0x01 0x08 BYTE: <<Verificare che la scrittura abbia funzionato correttamente recuperando i valori. Indirizzare il DS2431, quindi inviare il comando di lettura (0xf0) e l'indirizzo da cui leggere (0x00 0x00). È possibile leggere l'intero intervallo di memoria con un solo comando. Abbiamo letto gli otto byte che abbiamo scritto in precedenza (r:8), che hanno restituito i valori previsti. Gli otto byte oltre questi valori non sono stati scritti e restituiscono 0.

Passaggio 5: conclusione

Conclusione
Conclusione

ConclusioneQuesto prototipo insegna la memoria EEPROM e dimostra come utilizzare il Bus Pirate con tre protocolli comuni: 1-Wire, I2C e SPI. La scheda explorer 3EEPROM assicura le connessioni corrette a ciascuna EEPROM e fornisce un resistore di pull-up esterno per il bus 1-Wire più esigente con componenti alimentati da parassiti. Possiamo avere PCB o kit di schede explorer 3EEPROM prodotti presso Seeed Studio. I PCB costano circa $ 10, i kit costano circa $ 15, spediti in tutto il mondo. Abbiamo bisogno di organizzare un acquisto di gruppo di 10 PCB o 20 kit per iniziare.

Consigliato: