Entrar    Registrar

Dado que não apaga ao desenergizar

Software e Hardware para linha ARM

Moderadores: guest2003, 51, Renie, gpenga

  • Autor
    Mensagem

Dado que não apaga ao desenergizar

Mensagempor EduardoLenz » 13 Abr 2020 19:59

Boa noite colegas,

Estou com uma dúvida. Um tanto quanto básica, porém será de grande ajuda se puderem esclarecê-lá para mim.

A situação é: preciso cadastrar um dispositivo no microcontrolador ARM. No caso, com ele ligado, vou através de um teclado inserir uma informação. Quando ele for desligado, não pode perde esse cadastro.

Esta variável na qual o dado cadastrado vai ser armazenado, pode ser programada de uma forma padrão? Ou, por exemplo, eu precisaria programar essa variável em um outro tipo de memória.

Meu dispositivo é um LPC1768.

Novamente, peço desculpas por publicar uma dúvida básica como essa. Porém, esclarecendo-a vai me tirar um grande trabalho das costas.

Obrigado desde já.
EduardoLenz
 
Mensagens: 1
Registrado em: 13 Abr 2020 19:55

Re: Dado que não apaga ao desenergizar

Mensagempor eliveltonpsantos » 13 Abr 2020 22:19

A primeira e mais fácil alternativa é utilizar a Memória EEPROM do microcontrolador. Contudo, pelo o que eu analisei do datasheet, esse microcontrolador não possui Memória EEPROM.

Uma outra alternativa é você adicionar um CI de Memória EEPROM Externa comunicando via I2C, por exemplo, com o microcontrolador.

A terceira alternativa que eu conheço é utilizar uma parte da Memória Flash, a memória onde fica armazenada seu código dentro do microcontrolador, para ser utilizada como uma "Memória EEPROM" emulada, dado que ela não se apaga quando você desenergizá-lo.

Em relação à segunda, a terceira alternativa tem a vantagem de não precisar de um CI a mais; contudo, sua implementação no código é bem mais complexa. Não sei em detalhes seu nível de conhecimento/experiência, nem a opinião dos demais colegas do fórum, mas eu te aconselho a ficar com a segunda alternativa.
eliveltonpsantos
Bit
 
Mensagens: 40
Registrado em: 30 Jun 2017 09:14

Re: Dado que não apaga ao desenergizar

Mensagempor tronico » 27 Abr 2020 08:56

A segunda alternativa do amigo é uma boa (utilizar uma memória externa).

A terceira além da complexidade tem um detalhe, as interrupções devem ser desligadas durante a gravação da Flash interna, isso pode ser um problema dependendo o projeto.
tronico
Nibble
 
Mensagens: 80
Registrado em: 08 Set 2011 07:48
Localização: Blumenau SC

Re: Dado que não apaga ao desenergizar

Mensagempor xultz » 27 Abr 2020 09:11

EduardoLenz, o microcontrolador mais próximo do LPC1768 que trabalhei foi o LPC2106, e ele não possui memória EEPROM (como é o caso de outros microcontroladores, geralmente menores), porém é possível usar a flash interna para guardar dados não voláteis. No datasheet do LPC2106 inclusive tinha uma rotina em C de exemplo para armazenar dados na memória flash.
É altamente provável que se você pesquisar a respeito, vai encontrar códigos de exemplo fazendo isso, porque essa tua necessidade é muito comum (por exemplo, neste exato momento estou tendo que fazer isso, mas no caso estou usando um microcontrolador ATSAME54P20A da Microchip, ele é um ARM, e a Microchip disponibiliza uma biblioteca para usar este microcontrolador chamado Harmony, e ele tem rotinas que eles chamam de SmartEEPROM com exatamente esta finalidade).

Desculpe não ter esclarecido de forma mais direta tua dúvida, mas é que não trabalho com LPC já fazem mais de 10 anos...
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 2957
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: Dado que não apaga ao desenergizar

Mensagempor denis » 27 Abr 2020 10:07

Dá pra usar o que o xultz comentou, esse processo chama-se IAP (In-Application Programming).

acho que neste link tem mais detalhes:
http://tinystudy.blogspot.com/2012/04/i ... c1768.html
denis
Byte
 
Mensagens: 229
Registrado em: 06 Mar 2007 12:29
Localização: Americana - SP

Re: Dado que não apaga ao desenergizar

Mensagempor dreher » 30 Abr 2020 09:20

Eu Uso muito a linha STM32 e tambem não possuem EEPROM, então reservo a ultima pagina do banco de memoria flash para isso.
não é tão complexo, porem alguns cuidados:
Para reescrever voce sempre tem que apagar a memoria toda, então tem que ter um buffer de tudo
Desligar as interrupções
Os endereços são de 4 em 4 posições
dreher
Byte
 
Mensagens: 474
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron