Índice:

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

Vídeo: Bus Pirate 3EEPROM Explorer Board: 5 etapas

Vídeo: Bus Pirate 3EEPROM Explorer Board: 5 etapas
Vídeo: Как взломать платное спутниковое и кабельное телевидение? (33с3) 2024, Novembro
Anonim
Bus Pirate 3EEPROM Explorer Board
Bus Pirate 3EEPROM Explorer Board

Se você tem um dos Piratas do Ônibus do Hack a Day's, o que fazer com ele? Aprenda mais sobre EEPROMs de 1 fio, I2C e SPI com a placa explorer 3EEPROM (nós a chamamos de THR-EE-PROM). EEPROM é um tipo de chip de memória que armazena dados sem uma fonte de alimentação contínua. É útil para armazenamento permanente de dados em pequenos circuitos de log ou para manter páginas personalizadas em um minisservidor da web. Os EEPROMs vêm em vários tamanhos e protocolos. O 3EEPROM tem três chips EEPROM comuns: o DS2431 (1-fio), 24AA- (I2C) e 25AA- (SPI). Todos os três foram demonstrados anteriormente no Hack a Day, mas cada demonstração usa uma versão diferente do hardware e firmware do Bus Pirate, é difícil para um iniciante seguir usando um Bus Pirate v2go. Continue lendo para obter um guia passo a passo atualizado para usar os EEPROMs DS2431, 24AA- e 25AA- com o Bus Pirate v2go. Também temos os logs de sessão completos como arquivos de texto para que você não perca um único detalhe. Podemos ter 3EEPROM explorer board PCBs ou kits produzidos no Seeed Studio. Os PCBs custam cerca de US $ 10, os kits custam cerca de US $ 15, vendidos em todo o mundo. Precisamos organizar uma compra em grupo de 10 PCBs ou 20 kits para começar. Se você estiver interessado em um Bus Pirate, a versão 3 está chegando. Eu não pude incluir alguns elementos de formatação e tabelas HTML em um Instructable, você pode ver a postagem original no blog Dangerous Prototypes.

Etapa 1: Visão geral do hardware 3EEPROM

3 Visão geral do hardware EEPROM
3 Visão geral do hardware EEPROM
Visão geral do hardware 3EEPROM
Visão geral do hardware 3EEPROM
Visão geral do hardware 3EEPROM
Visão geral do hardware 3EEPROM

O objetivo deste protótipo é aprender sobre EEPROM e três protocolos de barramento comuns. Primeiro, olhamos para o PCB 3EEPROM e, em seguida, demonstramos cada EEPROM usando uma ferramenta de interface serial universal Bus Pirate. Se você não tem um Bus Pirate, você ainda pode acompanhar porque a ordem básica das operações da interface permanece a mesma, não importa como você as implemente. Esquema de tamanho total do circuito [PNG]. Fizemos o circuito e o PCB usando a versão freeware do Cadsoft Eagle. Você pode baixar o esquema e o PCB do arquivo Bus Pirate SVN. O PCB 3EEPROM contém um EEPROM de 1 fio DS2431 (IC1), um EEPROM 24AA-I2C (IC4) e um EEPROM 25AA-SPI (IC5). O DS2431 (IC1) extrai energia parasiticamente do barramento de 1 fio, ele não tem um pino de fonte de alimentação externa e não requer um capacitor de desacoplamento. IC2 e IC3 são pontos vazios para dispositivos adicionais de 1 fio, como outro DS2431 ou um sensor de temperatura DS1822. C1 (0,01uF) é opcional e necessário apenas se IC2 ou IC3 forem preenchidos com um dispositivo alimentado de 1 fio.1 O fio requer um resistor de pull-up forte, no máximo 2,2K ohms. Os resistores pull-up on-board do Bus Pirate são de 10K, muito fracos para alimentar adequadamente o DS2431 durante as gravações. A placa do explorer 3EEPROM inclui um resistor pull-up de 1,8 k ohm, 1/8 watt (R1) no barramento de 1 fio, de modo que nenhum resistor pull-up adicional é necessário. O 24AA- (IC4) e o 25AA- (IC5) cada um recebe um capacitor de 0,1 uF para desacoplá-los da fonte de alimentação (C2, C3). Você provavelmente não precisa dos capacitores em um circuito tão simples, nós os omitimos da placa de protótipo na demonstração. O barramento I2C usado pelo 24AA- também requer resistores pull-up, mas os resistores pull-up de 10K ohm on-board do Bus Pirate são suficientes. Todos os componentes irão operar de 2,8 volts a 5 volts DC. O circuito é alimentado através dos pinos VCC e GND do jumper 3. Há dois pinos VCC, um é para alimentação, o outro é para o pino de entrada de tensão do resistor pull-up do Bus Pirate (Vpullup). PCBFizemos o circuito e o PCB usando o versão freeware do Cadsoft Eagle. Você pode baixar o esquema e o PCB do arquivo Bus Pirate SVN. Se você gostaria de um PCB preparado profissionalmente ou kit 3EEPROM, podemos conseguir uma compra em grupo se 10 ou 20 pessoas estiverem interessadas. Lista de peças R1 resistor de 1800 ohm (1/8 watt) C2, 3 capacitor 0,1uF / 10volts + JP1-4 0,1 "cabeçote de pino machoIC1 DS2431 1K EEPROM de 1 fio TO-92IC4 ** 24AA014-I / P I2C EEPROM DIP8IC5 ** 25AA010A-I / P SPI EEPROM DIP8ICS4, 5 soquete DIP de 8 pinos para IC5, 6 ** IC4, IC5 poderia ser de qualquer tamanho, vinculamos a pequenos chips, usamos 128 bytes e 128 KB. Não pude incluir algumas tabelas de formatação e HTML em um Instructable, você pode ver a postagem original no blog Dangerous Prototypes.

Etapa 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

DemonstraçõesTodas as demos EEPROM têm praticamente a mesma aparência. Vamos escrever alguns números no chip e depois lê-los. Cada dispositivo tem condições que se aplicam quando você deseja gravar mais do que alguns valores, como tamanho da página e limitações de limite. Leia mais sobre isso na folha de dados do seu dispositivo específico. Se você não conseguir fazer uma demonstração funcionar, baixe o log completo do terminal para não perder nada do que fizemos. Resistores pull-up são o problema mais comum, verifique a tensão do pino pull-up usando o menu 'v' no terminal Bus Pirate. Chip: 25AA, SPI EEPROM (1Kbyte). Bus: SPI. Resistores pull-up necessários apenas para interface de tensão mista. Requisitos de energia: 1,8 volts a 5,5 volts (AA), 2,5 volts a 5,5 volts (LC). Referências: folha de dados, demonstração de Hack a Day. Registro de sessão completo do Bus Pirate para esta demonstração. Eu não pude incluir alguma formatação e tabelas HTML em um Instructable, você pode ver o original no blog Dangerous Prototypes. IC5 é uma EEPROM I2C da série 25AA da Microchip, essas EEPROMs vêm em uma tonelada de tamanhos. As peças AA funcionam de 1,8 volts a 5,5 volts, enquanto as peças 25LC- têm o requisito mínimo de 2,5 volts. C3 (0,1uF) desacopla o SPI EEPROM da fonte de alimentação. A proteção contra gravação (WP) e os pinos de retenção podem ser controlados por um microcontrolador, mas nós os desativamos mantendo esses pinos altos. Os pinos do barramento SPI, CS, DO, CLK e DI, são trazidos para o cabeçalho JP4. Configuração Se você estiver usando um Bus Pirate, conecte-o ao 3EEPROM ou 25AA-IC conforme mostrado na imagem do gráfico abaixo. O SPI normalmente não requer resistores pull-up. Interface no terminal Bus Pirate pressione 'm' para o menu de modo e selecione SPI. Configure a biblioteca SPI para saída de pinos normal, use os padrões para todas as outras configurações do modo SPI. Habilite as fontes de alimentação (grande 'W') no prompt do modo SPI. Finalmente, obtenha um relatório de voltagem para ter certeza de que as fontes de alimentação estão funcionando ('v'). Vamos demonstrar como fazer a interface da EEPROM diretamente a 3,3 volts usando a biblioteca SPI no modo de pinos normal. Resistores pull-up não são necessários para esta demonstração. Se você deseja fazer a interface com uma EEPROM alimentada por 5 volts, use a biblioteca SPI no modo de pino de coletor aberto (HiZ) e habilite os resistores pull-up com o pino Vpullup (Vpu) conectado à fonte de alimentação da EEPROM. Etapa 1, desative a proteção contra gravação 'SPI> [0b110] CS ENABLED <<< seleção de chip habilitadaWRITE: 0x06 <<< desabilite o comando de proteção contra gravaçãoCS DISABLED <<O 25AA- é protegido contra gravação na inicialização. Abaixe a seleção de chip (CS) ([), envie o comando desabilitar proteção contra gravação (0x06) e, em seguida, eleve CS (]) para habilitar gravações na EEPROM. O comando desabilitar proteção contra gravação é 0b00000110 em binário, mas podemos encurtá-lo para 0b110 e o Bus Pirate ainda entendem. Passo 2, escreva alguns valores 'SPI> [0b10 0 3 2 1] CS ENABLED <<< chip select enabledWRITE: 0x02 <<< write commandWRITE: 0x00 <<< write start addressWRITE: 0x03 <<< 3 values to write (3, 2, 1) WRITE: 0x02WRITE: 0x01CS DISABLED <<Agora a EEPROM pode ser gravada. Primeiro, abaixe o CS para ativar o 25AA- ([). Em seguida, envie o comando de gravação (0x02) e o local para começar a escrever (0). Envie os dados para armazenar (3 2 1), depois aumente CS (]) para salvar os valores. Nota: usamos uma pequena EEPROM de 128 bytes, chips maiores usarão um endereço de 16 bits (2 bytes). Este comando seria [0b10 0 '' '0' '' 3 2 1] para EEPROMs maiores que 256 bytes, observe o segundo 0. Verifique a ficha de dados de sua EEPROM para ter certeza. Etapa 3, ler os valores de volta SPI> [0b11 0 r: 3] CS ENABLED <<< selecionar chip habilitadoWRITE: 0x03 <<< ler commandWRITE: 0x00 <<< ler endereço inicialBULK READ 0x03 BYTES: <<< ler 3 valores0x03 0x02 0x01CS DESATIVADO <<Por fim, leia os dados de volta para verificar se a gravação foi bem-sucedida. Selecione 25AA- ([), envie o comando de leitura (0x03) e o endereço inicial (0), e então leia três valores (r: 3). Aumente o CS para concluir a transação (]). Os valores correspondem, a gravação foi bem-sucedida. Nota: usamos uma pequena EEPROM de 128 bytes, chips maiores usarão um endereço de 16 bits (2 bytes). Este comando seria [0b11 0 '' '0' '' r: 3] para EEPROMs maiores que 256 bytes, observe o segundo 0. Verifique a ficha de dados de sua EEPROM para ter certeza.

Etapa 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, resistores pull-up necessários. Requisitos de energia: 1.8volts a 5.5volts (24AA), 2.5volts a 5.5volt (24LC). Referências: folha de dados, demonstração de Hack a Day. Log completo da sessão do Bus Pirate para esta demonstração. Não pude incluir algumas tabelas de formatação e HTML em um Instructable, você pode ver o original no blog Dangerous Prototypes. IC4 é um EEPROM I2C da série 24AA da Microchip, esses EEPROMs vêm em um toneladas de tamanhos. As peças AA funcionam de 1,8 volts a 5,5 volts, enquanto as peças 24LC- têm um requisito mínimo de 2,5 volts. Um capacitor de 0,1uF (C2) desacopla IC4 da fonte de alimentação. O pino de proteção contra gravação (WP) poderia ser controlado por um microcontrolador, mas para esta demonstração simples, nós o desativamos com uma conexão ao terra. Os pinos de barramento I2C, SDA e SCL, são trazidos para o cabeçalho JP2. O endereço da maioria dos EEPROMs 24AA é 1010AAAS, com os quatro bits finais determinados pelos pinos de endereço (A0, A1, A2) e o bit de seleção do modo de leitura / gravação (S). Todos os bits de endereço são aterrados neste exemplo, portanto, o endereço de gravação da EEPROM é 10100000 (ficha técnica, página 6). Configuração Se você estiver usando um Bus Pirate, conecte-o ao 3EEPROM ou 24AA-IC conforme mostrado na imagem do gráfico abaixo. I2C é um barramento bidirecional que requer resistores pull-up em ambos os pinos. Você pode usar os resistores pull-up on-board do Bus Pirate conectando o pino Vpullup (Vpu) à fonte de alimentação de 3,3 volts e ativando-os no terminal. Nota de interface: Nem todos os EEPROMs I2C funcionam da mesma forma. O minúsculo 24AA01, por exemplo, tem um sistema de endereçamento e comando completamente diferente. Certifique-se de verificar a folha de dados do seu chip. Pressione 'm' no terminal Bus Pirate e selecione I2C no menu de modo. Habilite as fontes de alimentação ('W' grande) e os resistores pull-up ('p', opção 2) no prompt I2C. Obtenha um relatório de voltagem ('v') para certificar-se de que as fontes de alimentação estão ligadas e que o pino Vpullup está conectado a uma voltagem. I2C> (0) <<(1) <<< use a macro de pesquisa de endereçoSearching 7bit I2C address space. Dispositivos encontrados em: 0xA0 0xA1 <<Já sabemos que o endereço I2C é 10100000, mas também podemos usar a macro de pesquisa I2C do Bus Pirate (1) para pesquisar o 24AA-. A macro de pesquisa encontrou o dispositivo nos endereços de gravação (0xA0) e leitura (0xA1) esperados. Passo 1, escreva alguns valores 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 <<< byte do endereço de gravação 2WRITE: 0x03 GOT ACK: YES <<< 3 valores para gravar (3, 2, 1) WRITE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONDITION < <Comece a gravação com uma condição de início I2C ([), seguida pelo endereço de gravação 24AA (0xa0). A seguir, envie o endereço de 16 bits para escrever em (0 0) e os dados para escrever (3 2 1). Finalize a transação I2C com uma condição de parada (]). Passo 2, posicione o ponteiro de leitura 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: YES <<< endereço de gravação byte 2I2C STOP CONDITION <<São necessárias duas operações para ler o 24AA-. Um posiciona o ponteiro de leitura / gravação, o outro retorna os valores. Comece com uma condição inicial I2C ([) e o endereço de gravação (0xa0). Envie o endereço de 16 bits para leitura (0 0) e, em seguida, a condição de parada (]). Não enviamos nenhum dado para escrever desta vez, apenas posicionamos o ponteiro de leitura / gravação de volta para o início dos dados que escrevemos na etapa 1. Etapa 3, leia alguns valores I2C> [0b10100001 r: 3] I2C START CONDITION <<< I2C start conditionWRITE: 0xA1 GOT ACK: YES <<< 24AA- ler endereçoBULK READ 0x03 BYTES: <<< ler 3 valores0x03 0x02 0x01I2C STOP CONDITION <<Etapa 2 definir o ponteiro de leitura / gravação para o início dos dados que queremos ler. Agora podemos ler os dados usando o endereço de leitura 24AA. Comece com a condição inicial I2C ([) e o endereço de leitura 24AA (0xa1). Leia os três valores que escrevemos na etapa 1 (r: 3) e termine com uma condição de parada (]). Se os valores corresponderem, sua gravação foi bem-sucedida.

Etapa 4: EEPROM de 1 fio DS2431

EEPROM DS2431 1 fio
EEPROM DS2431 1 fio
EEPROM DS2431 1 fio
EEPROM DS2431 1 fio
EEPROM DS2431 1 fio
EEPROM DS2431 1 fio

Chip: DS2431, EEPROM de 1 fio (1 Kbyte). Bus: 1 fio, resistor pull-up de <2,2 Kohm necessário. Requisitos de energia: 2,8 volts a 5,25 volts. Referências: folha de dados, demonstração de Hack a Day. Registro de sessão completo do Bus Pirate para esta demonstração. Não pude incluir algumas tabelas de formatação e HTML em um Instructable, você pode ver o original no blog Dangerous Prototypes. O DS2431 extrai energia do resistor pull-up e não precisa de uma fonte externa ou capacitor de desacoplamento. 1-Wire precisa de um resistor pull-up forte, um máximo de 2.2Kohms. Os resistores pull-up on-board do Bus Pirate são de 10K, muito fracos para alimentar adequadamente o DS2431 durante as gravações. Você deve usar um resistor externo de 2,2 Kohm ou menor entre a alimentação e o pino de barramento de 1 fio. Se você tiver dificuldades para gravar dados, certifique-se de que seu resistor pull-up seja grande o suficiente. A placa do explorer 3EEPROM inclui um resistor pull-up de 1800 ohm (R1) no barramento de 1 fio, portanto, nenhum resistor externo é necessário. Configuração Se você estiver usando um Bus Pirate, conecte-o à placa 3EEPROM ou DS2431 conforme mostrado na imagem do gráfico abaixo. O DS2431 não requer o pino da fonte de alimentação, ele é usado na placa 3EEPROM para alimentar o grande resistor pull-up para o barramento de 1 fio. Interfacing Pressione 'm' no terminal Bus Pirate e selecione o modo 1-Wire. Habilite as fontes de alimentação on-board (grande 'W') e verifique o monitor de tensão (v). Etapa 1, encontre o endereço do dispositivo 1-WIRE> (0xf0) <<< Macro de pesquisa de 1 fio 1WIRE ROM COMMAND: SEARCH (0xF0) Dispositivos encontrados em: Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 ID exclusivo * DS2431 1K EEPROM <<Cada dispositivo de 1 fio possui um ID exclusivo de 8 bytes. 1-Wire possui um procedimento de pesquisa que detecta a ID de todos os dispositivos conectados. O Bus Pirate implementa a pesquisa 1-Wire como macro (240). Digite '(240)' no terminal Bus Pirate para iniciar a pesquisa 1-Wire. Cada endereço de dispositivo é impresso, os dispositivos conhecidos são identificados. Os primeiros dez endereços de dispositivo 1-Wire são armazenados como macros; neste exemplo, nosso endereço DS2431 está disponível digitando '(1)' no terminal. Etapa 2, gravar 8 bytes no bloco de rascunho 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<< também {comando 1WIRE WRITE ROM COMMAND: MATCH (0x55) * seguir com endereço de 64 bits 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x00 0x00 0x2B 'ESCREVER: 0x0F <<< Comando de bloco de rascunho DS2431 ESCREVER: 0x00 <<< DS2431 byte de endereço de gravação 1 ESCREVER: 0x00 <<< Byte de endereço de gravação DS2431 2WRITE: 0x08 <<A seguir, escreveremos 8 bytes em um local temporário no DS2431 chamado bloco de rascunho. Inicie a transação com um reset de barramento de 1 fio e comando MATCH (0x55). Ambos estão disponíveis como macro '(0x55)'. Isso também pode ser feito sem uma macro, digitando '{0x55', {envia o reset de 1 fio, 0x55 é o comando MATCH de 1 fio. Após o comando MATCH, envie o ID de 8 bytes do dispositivo para o endereço. Usamos a macro (1) que foi preenchida com o ID do DS2431 na etapa 1. Você também pode inserir o ID de 8 bytes manualmente. Neste ponto, o DS2431 deve ter recebido seu endereço e estar pronto para os comandos.0x0f é o comando write scratch pad, ele diz ao DS2431 para esperar os dados. Os próximos dois bytes dizem onde colocar os dados, vamos salvá-los no início (0 0). Finalmente, enviamos 8 bytes de valores para armazenar, os números de 8 a 1. Você deve gravar 8 bytes completos no DS2431. Além disso, o endereço de gravação deve estar em um limite de 8 bytes. Consulte a folha de dados para uma visão geral completa das limitações de gravação. Etapa 3, verifique o bloco de rascunho e obtenha o código de autorização 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS RESET OK <<< endereço do dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) * seguir com endereço de 64 bits1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< ler o bloco de anotações commandBULK READ 0x03 BYTES: <<< código de autorização0x00 0x00 0x07BULK READ 0x08 BYTES: <<< os dados que enviamos0x 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK READ 0x02 BYTES: <<< CRC para os dados0xC8 0x86BULK READ 0x02 BYTES: <<Verifique se os dados foram recebidos corretamente e obtenha um código de autorização de gravação. Comece novamente com um reset de 1 fio e macro de comando MATCH (0x55) e a macro de endereço do dispositivo (1). Desta vez, envie o comando de leitura do bloco de anotações DS2431 (0xAA) e, em seguida, leia um total de 15 bytes. Os primeiros 3 bytes lidos (r: 3) são o código de autorização de gravação, precisaremos dele na próxima etapa para copiar o bloco de rascunho para a EEPROM. Os próximos 8 bytes (r: 8) devem corresponder aos dados que enviamos na etapa 2. Os 2 bytes finais (r: 2) são um CRC16 para os dados. As leituras após o CRC retornam todos os 1s. Etapa 4, escreva o bloco de rascunho no EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< endereço do dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) * seguido de 64bit address1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< copy scratch pad commandWRITE: 0x00 <<< código de autorização de 3 bytes da etapa 3WRITE: 0x00WRITE: 0x071-WIRE> Temos tudo o que precisamos para armazenar os dados do scratch pad permanentemente no EEPROM. Address the device, then send the DS2431 copy scratchpad command (0x55) seguido pelo código de autorização de três bytes que recuperamos no passo 3 (0x00 0x00 0x07). Se o código de autorização estiver correto, os dados são movidos para a EEPROM. Etapa 5, verifique se o bloco de rascunho escreve 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< endereço do dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) * segue com endereço de 64 bits1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< comando de leitura do bloco de anotaçõesBULK READ 0x03 BYTES: 0x00 0x00 0x87 <<O DS2431 define o bit mais alto do código de autorização de gravação após um comando de bloco de rascunho de cópia bem-sucedido. Envie outro comando de leitura de rascunho (0xAA) para obter o código de autorização atualizado, mas apenas leia os três primeiros bytes (r: 3). O valor anterior 0x07 mudou para 0x87, o comando de cópia foi recebido com sucesso. Etapa 6, leia de volta os valores 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS RESET OK <<< endereço do dispositivo1WIRE WRITE ROM COMMAND: MATCH (0x55) * seguido de 64bit address1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 ler commandWRITE: 0x00 <<< 2 byte ler endereçoWRITE: 0x00BULK READ 0x08 BYTES: <<< ler os 8 bytes que escrevemos0x08 0x07 0x06 0x05 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x08 BYTES: <<Verifique se a gravação funcionou corretamente recuperando os valores. Direcione o DS2431, em seguida, envie o comando de leitura (0xf0) e o endereço de leitura (0x00 0x00). É possível ler toda a faixa de memória com um único comando. Lemos os oito bytes que escrevemos anteriormente (r: 8), que retornaram os valores esperados. Os oito bytes além desses valores não foram gravados e retornam 0.

Etapa 5: Conclusão

Conclusão
Conclusão

Conclusão Este protótipo ensina sobre a memória EEPROM e demonstra como usar o Bus Pirate com três protocolos comuns: 1-Wire, I2C e SPI. A placa do explorer 3EEPROM garante as conexões adequadas para cada EEPROM e fornece um resistor pull-up externo para o barramento de 1 fio mais exigente com componentes alimentados por parasitas. Podemos ter PCBs de placa explorer 3EEPROM ou kits produzidos no Seeed Studio. Os PCBs custam cerca de US $ 10, os kits custam cerca de US $ 15, vendidos em todo o mundo. Precisamos organizar uma compra em grupo de 10 PCB ou 20 kits para começar.

Recomendado: