Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Automao Industrial
Dispositivos Perifricos
Prof. Pedro Pedrosa
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);
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