O Maxim DS2431 1K EEPROM é um gadget de 1 fio que adiciona armazenamento a uma tarefa que utiliza um único pino de microcontrolador. Nostramos anteriormente um termômetro de 1 fio, no entanto, este EEPROM é um pouco diferente, uma vez que desenha a energia diretamente do barramento de 1 fio. Obtenha a folha de dados (PDF), bem como cumprir, enquanto checamos, bem como compor essa fácil memória de 1 fio.
DS2431 1-fio 1k EEPROM (Digikey # DS2431 + -ND, $ 1,67)
Utilizamos nossa interface serial Universal Pirate Universal para demonstrar o EEPROM DS2431, cobrimos as conexões apropriadas, bem como as opções de configuração em nossa postagem anterior de 1 fio. O DS2431 precisa de apenas duas conexões: Ground (PIN 1), bem como 1 fio / potência (PIN 2). PIN 3 permanece desconectado. Como da última vez, utilizamos um resistor de pull-up 2K com o barramento de 1 fio.
Primeiro, utilizamos o comando de navegação do Pirate Browse para determinar dispositivos de 1 fios vinculados.
1-fio> (240) <-search rom de macro 1Wire ROM Command: Browse (0xf0) Encontrou gadgets em: Endereço de 1 fio macro 1.0x2D 0x54 0xD2 0xef 0x00 0x00 0x00 0x2b <-Address * DS2431 1K EEPROM <- TIPO 2.0x2D 0xfe 0x8D 0x43 0x01 0x00 0x00 0x52 * DS2431 1K EEPROM 3.0x2D 0x2b 0xed 0xef 0x00 0x00 0x00 0x7C * DS2431 1K EEPROM Encontrado 0x03 dispositivos. Os primeiros 10 IDs de gadget são oferecidos por macro, veja (0). 1 fio>
O comando da ROW da navegação expõe que existem 3 eeproms ligados ao barramento de 1 fio. O pirata de ônibus armazena os endereços de 1 fio de 64 bits em macros, para que não tenhamos que digitá-lo todas as vezes. Trabalharemos com o primeiro dispositivo, determinado por macro (1).
Escrever para o DS2431 leva três etapas:
Escreva dados para o tampão EEPROM ‘PLOQUE’ EEPRO
Verifique o conteúdo do bloco de arranhões, bem como obter o acesso de ganho compor à chave
Copie os dados da almofada de risco para o EEPROM para armazenamento a longo prazo.
Comando 0x0f compõe ao bloco de arranhões. O scratch pad é um buffer de 8byte que contém dados antes de salvá-lo permanentemente no EEPROM.
1-fio> (85) (1) 0x0f 0x00 0x00 0 1 2 3 4 5 6 7 <-Command 1wire Bus Reset Ok 1Wire Compose ROM Command: Match (0x55) * Siga com endereço de 64 bits 1wire Macro 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b 1wire escrever: 0x0f <-write para coxidar 1wire escrever: 0x00 <-begin endereço byte 1 1wire escrever: 0x00 <-begin endereço byte 2 1wire escrever: 0x00 <-data 1wire escrever: 0x01 1wire escrever: 0x02 1wire escrever: 0x03 1wire escrever: 0x04 1wire escrever: 0x05 1wire escrever: 0x06 1wire escrever: 0x07 1 fio>
A macro da ROM de match, (85), isola o primeiro dispositivo, (1). 0x0f é o comando para compor ao scratch pad, cumprido pelo endereço de início, 0 0. Finalmente, enviamos oito bytes de dados para economizar no scratch pad. A almofada de arranhões é oito bytes de comprimento, assim como todos os oito bytes serão copiados da almofada de arranhões para o EEPROM de uma só vez.
1 fio> (85) (1) 0xaa R: 3 R: 8 R: 2 R: 2 <-Command 1wire Bus Reset Ok 1Wire Compose ROM Command: Match (0x55) * Siga com endereço de 64 bits 1wire Macro 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b 1wire escrever: 0xaa <-read scratch pad 1wire ler a granel, 0x03 bytes: <-access code 0x00 0x00 0x07. 1wire Leitura a granel, 0x08 bytes: <- Verifique nossos dados 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 1wire Leitura a granel, 0x02 bytes: <- CRC invertido 0x44 0x67. 1wire a granel ler, 0x02 bytes: <- todos os 1s daqui 0xff 0xff. 1 fio>
Para copiar dados da almofada de arranhões para o EEPROM, devemos primeiro recuperar um acesso de três bytes para o código da almofada de risco com o comando 0xaa. Os primeiros três bytes são o acesso a ganho ao código (0x00 0x00 0x07), cumprido pelos dados contidos no bloco de arranhões.
1 fio> (85) (1) 0x55 0x00 0x00 0x07
1wire Bus Reset Ok
1Wire Compose ROM Command: Match (0x55) * Siga com endereço de 64 bits
1wire Macro 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b
1wire escrever: 0x55 <-copia ao comando eeprom
1wire escrever: 0x00 <-access code (3 bytes)
1wire escrever: 0x00
1wire escrever: 0x07
1 fio> !!!! <-Read bits.
1wire check-out bit: 0
1wire check-out bit: 1 <-bits alternados, feitos
1wire check-out bit: 0
1wire check-out bit: 1
1 fio>
Comando 0x55 Com o acesso de ganho apropriado ao código copiará a almofada de arranhões para os dados EEPROM. Leituras de bit (!!!!) alternando entre 0 e 1 quando a cópia é concluída.
1 fio> (85) (1) 0xf0 0x00 0x00 R: 8 R: 8
1wire Bus Reset Ok
1Wire Compose ROM Command: Match (0x55) * Siga com endereço de 64 bits
1wire Macro 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b
1wire escrever: 0xf0 <-read memer
1wire escrever: 0x00 <-start endereço (2 bytes)
1wire escrever: 0x00
1wire ler a granel, 0x08 bytes: <-read de dados de volta
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
1wire ler a granel, 0x08 bytes: <-read além dos nossos dados
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
1 fio>
O comando 0xf0 cumprido por um endereço de memória de dois bytes (0x00 0x00) inicia o processo de saída de dados. Os primeiros oito bytes (R: 8) são os valores que compusemos anteriormente. As leituras não incluem o scratch pad, bem como não têm um limite de 8byte, portanto, mais leituras continuam até o final da memória.
Não Fa.Para lembrar-se de acompanhar qualquer tipo de mensagens de peças que você possa ter perdido.