Boa noite, amigos!
Estou desenvolvendo um projeto onde o arduino trabalha como um gravador e leitor de memórias e estou com uma dúvida: como ler e gravar arquivos em hexadecimal. Ler e gravar em um cartão SD até que é fácil, mas como fazer para gravar na memória? Como ler o arquivo do cartão SD separando cada endereço de memória para gravar? Espero ter sido claro em minha pergunta.
Tags:
Boa noite JFMA,
já que vc perguntou, a minha resposta é : Não, pra mim vc não foi claro.
1. Vc fala em ler e gravar memória. Que tipo, de memória?
2. Gravar arquivos hexadecimais. Arquivo tem formatos.ex: txt, ino, doc, etc. E todos dados lá são h exadecimais.
Detalhe melhor sua dificuldade para que possamos ajudá-lo.
RV
Vou tentar explicar melhor. São arquivos em memória do tipo 27C256 que possuem informações de veículos como chassis, codes. Geralmente estes arquivos tem extensão .bin. Estou um pouco confuso. Dá para gravar e ler com o arduino arquivos com esta extensão?
Ler de uma memória é só endereçar a informação, mas de um arquivo, que não tem endereços, como ler e gravar?
Olá.
A principio arquivos binários quando vão ser gravados em uma memória vão na sequencia. Primeiro byte do arquivo é o primeiro byte da eprom e assim vai.
O hex segue um formato que descreve o endereço, os dados a gravar e um checksum, vide:
https://en.wikipedia.org/wiki/Intel_HEX
Ler os arquivos acredite, é o fácil.
Se vc pretende gravar uma Eprom (UVPROM) se prepare para tabelas com tensões, larguras de pulso, acompanhamento pelo osciloscópio de larguras e alturas de pulsos, queimas, mau funcionamento quando troca o fornecedor,, novas tabelas, etc. Elas usam um processo meio arcaico de escrita (sem falar no processo de apagamento...).
Sugiro comprar um gravador de eprom, posso recomendar um, ligado no PC.
Caso precise mesmo gravar acredito que um bom upgrade seria usar memorias com a mesma pinagem mas tecnologia mais moderna como uma flasheprom. Acho que o codigo seria 29C256 ou coisa assim.
Enfim, fazer um gravador de eprom é realmente um desafio. Mas a net está cheia de esquemas.
A dúvida é apenas uma, quando eu leio uma memória vou endereçando cada posição de memória, mas quando leio o arquivo um arquivo do cartão SD como endereçar posições de memória?
Sobre como usar um cartão SD, sugiro essas leitura para entender como:
https://www.sdcard.org/downloads/pls/
https://en.wikipedia.org/wiki/SD_card
Os dados de um SD card são agrupados em Blocos de Bytes e não em posições de memória.
Os blocos são endereçados, para poder ler ou gravar.
Boa tarde José Francisco,
Já gravei memórias UV-EPROM na década de 1980. Tenho bastante conhecimento dessas EPROMs.
Mas você precisa detalhar exatamente o que precisa. Favor responder as perguntas.
1) Porque usar essas EPROMs antigas? E porque não usar outro tipo de memória mais moderna, com maior capacidade?
2) Você já tem o formato definido do que precisa gravar? Informe os detalhes.
3) Se for gravar cartão SD com Arduino, já existe tudo pronto. O formato da gravação é você que define. Não serve?
4) Nas memórias (todos os tipos) são gravados os bits! Se vai ser em hexa ou se vai ser em ASCII(texto), o jeito de ler/gravar é você que define. Qual a sua necessidade?
Sr. José Gustavo,
trabalho com centrais de injeção eletrônica e muitas possuem memórias antigas, os arquivos são em binário (extensão .bin).
Boa tarde José Francsico,
Agora começa a aparecer uma luz no fim do túnel.
Quanto mais informações puder nos dar, ficará mais fácil para ajudá-lo.
1) Você pretende copiar as EPROMs ?
2) Qual ou quais modelos pretende ler? Por exemplo, um modelo você já citou - 27C256.
https://www.jaapsch.net/psion/pdffiles/Eprom032k_datasheet_27C256...
3) Quais módulos de injeção você trabalha? Fabricante, modelo do carro, etc.
Você tem sorte. Conheço a fundo EPROMs e já trabalhei com módulos de injeção a mais de 20 anos atrás.
Algumas dicas:
1) Identifique, se possível, o processador do módulo de injeção. Sabendo o processador, você terá uma ideía do formato que o fabricante usa, por exemplo formato Intel, Motorola, etc.
2) Sabendo o modelo do processador, se quiser aprender mais, poderá usar um disassembler para entender o código do programa.
3) Faça um levantamento dos componentes e outros chips que o módulo possui.
Minha história com os módulos de injeção:
- A quase 20 anos(talvez mais), um amigo meu que tinha um ferro-velho de carros importados me procurou. Ele comprava de seguradoras, Citroens ZX e Xantia com perda total. Desmontava os carros e vendia as peças.
Esse modelos de Citroen, tinham um teclado numérico para acionar o carro. O código ficava gravado no módulo de injeção. Cada módulo custava bem caro, mas ficava travado com a senha.
Resumindo, eu conseguia identificar os códigos e liberava os módulos para que ele pudesse comercializá-los! Liberei mais de 20 módulos naquela época.
Boa noite, José Gustavo!
Obrigado pelas informações. Eu já consegui gravar alguma coisa na 27C256 com o Arduino. Eu quero entender como acessar as posições de memória do cartão SD como em uma memória comum.
Sr. José Gustavo!
Como o sr. já teve contato com arquivos gravados em memórias em carros você deve saber ler os arquivos com um programador de eprom. Eu quero exatamente conseguir faze isto com o Arduino. Eu quero ler um arquivo de memória, gravar em um cartão SD, editar e gravar novamente na memória. Como eu endereço em um arquivo no cartão SD as informações lidas da memória de forma a poder retorná-la na memória nas mesmas posições?
Sr José Francisco,
Como o amigo Eduardo já citou, um formato de dados de Eprom muito usado é o Intel HEX.
Sugiro que use esse formato para ler e gravar Eproms.
https://en.wikipedia.org/wiki/Intel_HEX
https://www.embarcados.com.br/formato-de-arquivo-intel-hex/
Traduzido pelo Google:
Um registro (linha de texto) consiste em seis campos (partes) que aparecem em ordem da esquerda para a direita: [1]
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por