Página 1 de 1

Emular Eeprom no STM32F10X

MensagemEnviado: 26 Abr 2019 20:55
por vtrx
Alguem ja emulou uma Eeprom com este micro usando Keil?
Gravar e ler dados na Flash como se fosse uma Eeprom interna.

Re: Emular Eeprom no STM32F10X

MensagemEnviado: 09 Nov 2019 20:19
por Guri
Eu já tinha pensado nisso...

Me deparei com um problema de entendimento do funcionamento da flash, e abandonei a ideia...Mas é interessante.

Re: Emular Eeprom no STM32F10X

MensagemEnviado: 09 Nov 2019 22:22
por julian camargo
Oi Guri, dá pra fazer isso em qualquer chip de arquitetura ARM, e em todos os ARM da ST também.
Entretanto vc deverá levar em consideração que a memória flash do ARM é dividida em páginas de 4K Bytes.

Se a EEPROM que precisa emular for de 128 Bytes (por exemplo), vc não poderá usar o que sobra pra mais nada pois toda vez que for atualizar sua EEPROM, vc deverá apagar antes todos os 4K da pagina usada.

Se o chip que vc esta usando tiver bastante memória flash, talvez perder uma pagina de 4K não seja inconveniente mas, se o arm que estiver usando for de 16KB de flash, perder 4K só pra salvar algum bytes na sua EEPROM artificial pode não sobrar espaço para o seu programa pois vc terá apenas 12KB para isso.

Basicamente é isso.

Os comandos para ler e gravar na flash do arm são muito simples, se precisar me avise que eu coloco aqui.

Re: Emular Eeprom no STM32F10X

MensagemEnviado: 10 Nov 2019 10:44
por Rodrigo_P_A
na verdade dá pra emular sim, mesmo a página sendo de 4K, tem que copiar pra RAM, alterar o que quer, e regravar tudo.

Re: Emular Eeprom no STM32F10X

MensagemEnviado: 13 Nov 2019 15:42
por tronico
Porém, pelo que me lembro as interrupções devem desabilitadas durante a gravação...

Re: Emular Eeprom no STM32F10X

MensagemEnviado: 17 Jan 2020 23:04
por Guri
julian camargo, obrigado pela dica...entendi perfeitamente o raciocinio, agora que você ensinou. :D

É uma pena na veir eepron internamente no stm m0 e m3...

Eu acabei utilizando eeprom externa, funciona legal sem problemas, só tive um problema uma vez, onde o fw dava umas travadas doidas, quando jogava na interrupção a eeprom (o módulo), mas depois descobri que o erro era meu, e não poderia ser diferente, :lol:

Obrigado,