Beruflich Dokumente
Kultur Dokumente
Parte 1
Formato
Serial Assncrona Serial Assncrona Serial
Aplicao modem
Controle de Sistema
PC Vdeo
Instrumentao
Serial Paralela Serial sncrona Serial loop de corrente Serial sncrono Paralela Serial sncrono Serial Assncrona
USART
Protocolo universal: sncrona e assncrona.
Conceitos bsicos
Linguagem de Programao
A programao de uma interface serial pode usar qualquer linguagem, e a linguagem no tem que ser a mesma em cada computador. A nica exigncia que os dois computadores devem concordar com as regras estabelecidas para a comunicao. Programas escritos em microcontroladores acessam os registros diretamente ou usam funes da biblioteca do programa.
O barramento SPI e I2C usam os mesmo recursos do microcontrolador (registradores e pinos). Portanto, o uso de um deles, inibe o uso do outro.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 5 / 40
Para comunicao com mais de um dispositivo necessrio utilizar o pino SS (RA5) e o processador implementar um mapeamento de I/O para habilitar somente um dispositivo ao mesmo tempo.
6 / 40
Tornou-se o padro mundial para comunicao entre CIs, na mesma placa; Atualmente existem mais de 150 dispositivos cmos e bipolar, que implementam o protocolo I2C (memrias, LCDs, RTCs, microcontroladores, etc); No barramento I2C no se pode colocar dispositivos que no implementam I2C.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 8 / 40
9 / 40
Funcionamento do I2C
Cada dispositivo conectado ao barramento tem o seu prprio endereo, no importa se uma CPU, excitador do LCD, memria, RTC, LCD, etc; Cada um destes chips podem funcionar como receptor e / ou transmissor, dependendo da funcionalidade. Obviamente, um controlador de LCD apenas um receptor, enquanto que uma memria ou I / O chip pode ser o transmissor e receptor.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 11 / 40
Funcionamento do I2C
O barramento I2C um barramento multi-mestre. Isso significa que mais de um IC capaz de iniciar uma transferncia de dados; O protocolo I2C determina que o CI que inicia uma transferncia de dados no barramento considerado o mestre. Por conseguinte, nesse momento, todos os outros CIs so configurados para ser escravos do barramento. Os mestres so geralmente os microcontroladores; Normalmente o mestre quer sempre enviar ou ler dados de um escravo; Condies possveis: start, stop, re-start, acknowledge, transmisso de endereo, transmisso de dados e pausas;
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 12 / 40
13 / 40
14 / 40
Procedimentos no I2C
1. 2. 3. 4. 5.
6.
O dispositivo mestre ajusta a condio inicial (start). O dispositivo mestre envia 7 bis de endereamento. O dispositivo mestre envia o 8 bit, RW/ O dispositivo escravo envia o sinal de ACK (Acknowledge) O dispositivo mestre (ou escravo) envia pacotes de 8 bits de dados, sempre seguidos de um sinal ACK enviado pelo dispositivo escravo (ou mestre) confirmando a recepo. O dispositivo mestre encerra a comunicao (stop).
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 16 / 40
Procedimentos no I2C
O endereamento default feito com 7 bits, mas existe o modo estendido que possibilita o uso de 10 bits de endereamento (1024 dispositivos); A quantidade de pacotes de transmisso controlada pelo dispositivo mestre, no possuindo um valor mximo definido. Este um ponto importante a ser observado, pois como os dados so transmitidos serialmente, na utilizao de memrias, perde-se os limites de endereamento que existem nos dispositivos paralelos; A comunicao pode ser suspensa, simplesmente travando-se o sinal de clock. Isto pode ser til para efetuar o tratamento de interrupes ou derivados, sem, no entanto, corromper os dados transmitidos.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 17 / 40
Procedimentos no I2C
O endereamento default feito com 7 bits, mas existe o modo estendido que possibilita o uso de 10 bits de endereamento (1024 dispositivos). Neste caso, utiliza-se 2 bytes para envio do endereo, e neste caso, no segundo byte, enviado 1110 para os bits de 7 a 3; O ltimo bit (LSB) do primeiro byte usado como flag. Se zero, indica que o mestre vai enviar dados ao escravo e se 1, o contrrio; A quantidade de pacotes de transmisso controlada pelo dispositivo mestre, no possuindo um valor mximo definido. Este um ponto importante a ser observado, pois como os dados so transmitidos serialmente, na utilizao de memrias, perde-se os limites de endereamento que existem nos dispositivos paralelos; A comunicao pode ser suspensa, simplesmente travando-se o sinal de clock. Isto pode ser til para efetuar o tratamento de interrupes ou derivados, sem, no entanto, corromper os dados transmitidos.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 18 / 40
Procedimentos no I2C
Depois do trmino da transferncia da parte relacionada ao endereo, o mestre ou escravo (a depender do flag), deve transmitir um ou mais dados; Caso seja o escravo que esteja transmitindo, o mestre deve responder com ack=1, no trmino do ltimo byte recebido e depois enviar uma condio de stop; Com isso, o mestre informa ao escravo que no deseja receber mais nenhum dado, tornando o protocolo mais robusto.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 19 / 40
I2C no 18F4520
Preparado para trabalhar com multi-master Deve-se configurar iniciar os pinos do barramento como entrada (set_TRIS) para que fiquem em alta impedncia; Se na comunicao o PIC estiver como master, configurar o pino SCL como sada; A tabela a seguir detalha os registradores envolvidos na comunicao I2C; Um destaque ao registrador SSPAD, que tem dupla funcionalidade:
Slave: contm o endereo do dispositivo Master: contm a taxa de comunicao
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 20 / 40
I2C no 18F4520
Pinos usados: Serial clock (SCL) RC3/SCK/SCL Serial data (SDA) RC4/SDI/SDA Registradores: MSSP Control Register 1 (SSPCON1) MSSP Control Register 2 (SSPCON2) MSSP Status Register (SSPSTAT) Serial Receive/Transmit Buffer Register (SSPBUF) MSSP Shift Register (SSPSR) Not directly accessible MSSP Address Register (SSPADD)
O mdulo MSSP implementa completamente todas as funes mestre e escravo, prev interrupes ao iniciar e no fim da comunicao, bem como, o modo de endereamento de 7 bits e 10 bits.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 21 / 40
I2C no 18F4520
SSPSTAT : MSSP STATUS REGISTER
22 / 40
I2C no 18F4520
SSPCON1: MSSP STATUS REGISTER
23 / 40
I2C no 18F4520
SSPCON2 : MSSP STATUS REGISTER
24 / 40
O CCS possui drivers instalados que podem ser utilizados ou se construir novos drivers.
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 25 / 40
27 / 40
RTC DS1307
DS1307 , um chip RTC completo e que por utilizar interface de comunicao I2C, permite uma fcil integrao aos sistema que implementam esta interface. Consome menos de 500nA e com uma bateria de Ltio de 48mAh, consegue-se uma autonomia de 10 anos; O custo do circuito integrado DS1307 de R$ 5,00, que adicionado a um cristal oscilador de 32.768 kHz e bateria (com soquete), o custo total do relgio completo fica menos de R$ 20,00. Configurao dos 5 pinos no esquema de ligaes do RTC-DIP8:
8: 5V utilizada para alimentar o chip RTC. Se faltar o sinal de 5V, o chip vai dormir usando a bateria; 4: GND para a bateria e o terra da placa; 5: SCL pino do clock do I2C; 6: SDA o pino de dados do I2C; 7: SQW a sada de uma onda quadrada configurada :1Hz, 4 Khz, 8 Khz e 32 Khz ; 1 e 2: X1 e X2 so os pinos para ligao do cristal de 32.768 kHz, que gera 1Hz; 3:Vbat pino para ligao do lado positivo da bateria
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 28 / 40
RTC DS1307
Endereo do DS1307 no barramento I2C: 0x68 (1101000X); A memria RAM do CI vai de 0x00 a 0x3F, sendo os 7 primeiros endereos reservados para os registradores de configurao do chip; Os valores so armazenados em BCD no RTC e portanto devem ser convertidos para ASCII antes de serem enviados para a serial ou LCD.
29 / 40
RTC DS1307
End 0x07 bit7 OUT bit6 0 bit5 0 bit4
SQWE
bit3 0
bit2 0
bit1 RS1
bit0 RS0
30 / 40
RTC DS1307
End 0x00 0x01 bit7 CH 0 1224 bit6 bit5 Seg (x10) Ampm H(x10) H(x10) bit4 bit3 bit2 bit1 bit0 Seg (x1) H (x1)
O registro do endereo 0x00 contm os valores de segundos e o bit de controle CH que liga (0) e desliga o relgio (1). O bit 6 e 5 do endereo 0x01 define o formato do relgio: Se 1224=0 seleciona o modo 24h e o bit 5 guarda Hx10. Quando 1224=1, seleciona o modo 12h, e neste caso, se ampm=1 indica PM e qdo ampm=0, indica AM.
31 / 40
RTC DS1307
Os 3 bits menos significativos do registro do endereo 0x03 so reservados para entrada do dia da semana (1 a 7): 7=domingo, 1 =segunda, etc; Os bits 5 e 4 do registro do endereo 0x04 so reservados para entrada de dezena do dia do ms (10xdia) e os bits 3, 2, 1 e 0 para entrada de unidades do dia do ms (1xdia); Os bits 4 do registro do endereo 0x05 reservado para entrada da dezena do ms (10xms) e os bits 3, 2, 1 e 0 para entrada de unidades do ms(1xdia); Os bits 7, 6 5 e 4 do registro do endereo 0x06 reservado para entrada da dezena do ano(10xano) e os bits 3, 2, 1 e 0 para entrada de unidades do ano (1xano);
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 32 / 40
Eeprom 24C04
Capacidades: 512x8 Tempo escrita (total): 10ms Durao: 1 milho escritas Velocidade (I2C): at 400KHz Consumo: 2mA (ativa) / 8uA(SB) A0 (no conectado eletricamente) WC=0 normal, WC=1 Protege
33 / 40
write_ext_eeprom(adr, byte);
Escreve um byte no endereo adr
d = read_ext_eeprom(adr);
Faz a leitura de um byte no endereo adr
b = ext_eeprom_ready();
Retorna verdadeiro se a eeprom est disponvel para uso;
IFPB Engenharia Eltrica - Prof. Dr. Ilton Luiz Barbacena - 2011 34 / 40
36 / 40
38 / 40
39 / 40
Fontes consultada
http://www.esacademy.com/en/library/technical-articles-anddocuments/miscellaneous/i2c-bus.html http://www.robot-electronics.co.uk/acatalog/I2C_Tutorial.html http://www.best-microcontroller-projects.com/i2c-tutorial.html http://tronixstuff.files.wordpress.com/2010/05/example7p33.pdf
http://microcontroladores-c.blogspot.com/2010/11/usando-rtc-ds1307.html
Livros:
Sousa, R. D. e outros; Desbravando o Microcontrolador PIC18 Recursos Avanados, Editora rica, 2010 Miyadaira, N. A; Microcontroladores PIC18 Linguagem C, Editora rica, 2009.
40 / 40
Obrigado
41 / 40