Sei sulla pagina 1di 4

Campus Maracana Indstria

Automao Industrial
Dispositivos Perifricos
Prof. Pedro Pedrosa

Aula 8 - Memria EEPROM


Prtica 19

1. Memria EEPROM
Memria EEPROM memria de dados que no se apaga ou no perdida mesmo ao inicializar ou
resetar o MCU. Os Microcontroladores da famlia PIC j possui 256 bytes de memria EEPROM, o que
pouco dependendo da aplicao. Nestas aplicaes pode-se utilizar uma memria externa para aumentar a
quantidade de memria EEPROM disponvel na sua aplicao.
Dentre as memrias externas disponveis no mercado, uma das mais utilizadas a 24LC256 que
possui 32K bytes de memria e funciona utilizando a comunicao serial com protocolo i2c. O uso deste
componente simples visto que basta montar o hardware de acordo com o datasheet do fabricante e utilizar
a biblioteca fornecida pelo prprio CCS para manipular este dispositivo.
Hardware bsico do 24LC256 com PIC 18F
Como pode ser observado, deve-se aterrar os
pinos de 1 a 4. O pino 8 a alimentao que deve ser
5V. O pino 7 o pino de habilitao de escrita na
memria externa, onde 0V habilita escrita e 5V
desabilita.
Os pinos 5 e 6 sero conectados no MCU, em
que o pino 6 (SCL) o pinos de clock do funcionamento
do dispositivo e serve para o MCU controlar a
velocidade do seu funcionamento. J o pino 5 (SDA) o
pino de dados e este serve para comunicao entre MCU
e memria EEPROM, sendo por onde passam os dados
propriamente ditos.
Os pinos 5 e 6 devem ser conectados aos pinos especficos de comunicao i2c do MCU usado. No
caso do 18f2550 os pinos so B0 e B1, e para identific-los basta procurar no datasheet as funcionalidades
SCL e SDA. Para quem usa o software Proteus para simulao isto j est descrito na identificao dos pinos
B0 e B1.
Aps identificar os pinos
SCL e SDA do MCU deve-se
conectar estes pinos ao seu
correspondente no 24C256, em
outras palavras conectar SCL com
SCL e SDA com SDA. Alm disto
deve colocar dois resistores de
PULL-UP de 2K nestes dois pinos
para que o dispositivo funcione
corretamente.
Abaixo
est
demonstrado o Hardware montado
no Proteus (No esquecer da
alimentao e do terra que existem
no circuito real nos pinos 8 e 4,
respectivamente).
___________________________________________________________________________________________
Prof. Pedro Pedrosa - link lattes: http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1
IFCE - Av. Contorno Norte, 10 Parque Central Distrito Industrial Maracana CE

Os pinos A0, A1 e A2 do 24C256 so utilizados para identificar o endereo da memria externa. Para
mais informaes, acessar o site abaixo, pois neste link (http://lusorobotica.com/index.php?topic=461.0),
visto que neste site existe uma discusso bastante rica sobre esse assunto.
Biblioteca "24256.c" fornecida pelo CCS
Para adicionar esta biblioteca na sua aplicao basta inserir a linha de incluso da mesma logo abaixo
da identificao do MCU. Deste modo, a incluso deve ser feita com a seguinte linha de comando:
#include <18f2550.h>
#include <24256.c>

//identificando MCU
//incluindo a biblioteca da memria EEPROM

Algumas vezes ao instalar o CCS esta biblioteca vm com os pinos trocados. Para verificar se os
pinos esto configurados corretamente na biblioteca faa os passos abaixo:
Passo 1: Inclua a biblioteca na sua aplicao conforme foi indicado anteriormente.
Passo 2: Aperte com o boto direito do mouse sobre os nmeros da linha de comando #include <24256.c> ,
ir aparecer uma janela com vrias opes. Escolha a opo "Open File at cursor" que na verso que estou
usando a segunda opo de cima para baixo. Se tiver feito tudo certo ir abrir o arquivo 24256.c. Se no
abriu repita o passo 2 at abrir.
Passo 3: Com o arquivo 24256.c aberto procure as linhas de comando abaixo, na minha verso esto logo no
comeo do arquivo.
#define EEPROM_SDA PIN_B1
#define EEPROM_SCL PIN_B0
Se o arquivo estiver indicando que SDA o pino B1 e SCL o pino B0 ento est trocado. Deve-se trocar
estas linhas de comando por, que somente trocar B0 com B1 e B1 com B0.
#define EEPROM_SDA PIN_B0
#define EEPROM_SCL PIN_B1
Funes da Biblioteca "24256.c" fornecida pelo CCS
Funes da Memria Externa.
Funo de inicializao da EEPROM externa:
Funo para escrever na EEPROM externa:
Funo para ler na EEPROM externa:

init_ext_eeprom();
write_ext_eeprom(posio da memria, valor);
read_ext_eeprom(posio da memria);

Funes da Memria Interna.


Funo para escrever na EEPROM interna:
Funo para ler na EEPROM interna:

write_eeprom(posio da memria, valor);


read_eeprom(posio da memria);

Abaixo apresentado um exemplo utilizando a memria externa do MCU, explicando na


prtica o uso destas funes citadas acima.
Ressalta-se tambm que caso no tenha feito a alterao dos pinos da biblioteca, basta trocar os
pinos de conexo do MCU com a memria EEPROM e ligar SDA com SCL e SCL com SDA no
hardware.
___________________________________________________________________________________________
Prof. Pedro Pedrosa - link lattes: http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1
IFCE - Av. Contorno Norte, 10 Parque Central Distrito Industrial Maracana CE

Arquivo de exemplo
#include <18f2550.h>
#fuses HS
#use delay(clock = 20000000)
#include <24256.c>
void main()
{
int dado;
printf("Start\n\r");
init_ext_eeprom(); //Inicializando a memria externa, deve sempre ser chamada no inicio do main
delay_us (200); //Tempo necessrio para inicializar corretamente a EEPROM
write_ext_eeprom(0x20, 0x40); //Escrevendo o valor hexadecimal 0x40 na posio 0x20
delay_ms(200); //Tempo necessrio para escrita na EEPROM
write_ext_eeprom(30, 0xAA); //Escrevendo o valor hexadecimal 0xAA na posio 30
delay_ms(200); //Tempo necessrio para escrita na EEPROM
write_ext_eeprom(100, 10); //Escrevendo o valor 10 na posio 100
delay_ms(200); //Tempo necessrio para escrita na EEPROM
dado= read_ext_eeprom(4); //Lendo o valor da posio 4 e guardando na varivel dado
delay_ms(200); //Tempo necessrio para leitura da EEPROM
dado = read_ext_eeprom(100); //Lendo o valor da posio 4 e guardando na varivel dado
delay_ms(200); //Tempo necessrio para leitura da EEPROM
while(1);
}
Hardware de simulao do exemplo

___________________________________________________________________________________________
Prof. Pedro Pedrosa - link lattes: http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1
IFCE - Av. Contorno Norte, 10 Parque Central Distrito Industrial Maracana CE

2. Prtica
Prtica 19 - A prtica proposta escrever e ler a memria EEPROM, que pode ser a interna ou uma
externa. O hardware abaixo mostra o uso de uma memria EEPROM externa.
Os componentes do Proteus so: Pic 18f2550, 1 memria externa (FM24C256), 1 hiperterminal para visualizar a leitura da
memria pela serial, e 2 resistor de 2 k. Lembrando que este circuito abaixo no possui alimentao e clock por se tratar
de apenas uma simulao, o que necessrio para rodar a aplicao no circuito real.

___________________________________________________________________________________________
Prof. Pedro Pedrosa - link lattes: http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1
IFCE - Av. Contorno Norte, 10 Parque Central Distrito Industrial Maracana CE

Potrebbero piacerti anche