Página 1 de 1

Problemas com Serial EEProm e RTC no mesmo barramento I2C

MensagemEnviado: 08 Dez 2006 21:02
por gabriel_paz
Oi pessoal.

Estamos utilizando um AT89S8253 controlando em um mesmo barramento I2C uma serial EEprom (24CXX), um RTC (PCF8583) e um Conversor A/D-D/A (PCF8591), mas parece haver uma certa incompatilibidade entre o RTC e a serial EEprom, pois com ela no circuito (mesmo que não esteja sendo usada) não estamos conseguindo ler o RTC, acho que não é problema de endereçamento, pois fixamos por hardware os seguintes endereços:

Serial EEprom: 00H
RTC: 01H
Conversor: 02H

Álguem já se deparou com esse tipo de coisa? Se algém tiver alguma dica eu agradeço.

Gabriel

MensagemEnviado: 09 Dez 2006 06:19
por jeanfernandes
Gabriel, para que se possa "visualizar" teu circuito, poe aqui o pinout das linhas de controle dos chips, tipo :

MCU
Px.y - SDA
Px.y - SCL

EEPROM (poe o part e o fabricante)
Pino x - SDA
.....

Bom peguei os links aqui pra facilitar os amigos
http://www.aurel32.net/elec/pcf8591.pdf
http://www.aurel32.net/elec/pcf8583.pdf


Você está usando o Write Protect da bixinha ?
Já tentou tirar ela do endereço 0 e por em outro (tal com A0...A2 = VCC), ou seja no endereço 7 ?
Resistores de Pull up ok ?

Observe, tambem, uma coisa importante, quando voce envia algo para um SLAVE, após enviar o último BIT, voce precisa escrever "1" na porta de saida do MCU, para que ele possa liberar a linha para receber o ACK do SLAVE no proximo clock....onde esse ACK é um bit pra baixo no proximo clock do MCU.....

Enfim, essa condicao de ACK se assemelha muito com a condição START (Clock em ALTO e SDA transição negativa).

Tem uma referencia de hardware de uma placa da grifo...
http://www.grifo.it/MANUAL/K51AVR.PDF

No site da própia griffo tem as referências BASIC para alguns periféricos....




Eu vi uma discussao semelhante em
http://www.svet-el.si/phpBB2/viewtopic. ... f6af235274
Tá parecendo "grego" ....mas dá pescar alguma coisa....



Bom eu imagino que voce fez A0...A2 (na eeprom) = 0,
Colocou o pino A0 do RTC = 1
E fez Ao..A2 = 010 no A/D correto ?
Pelo menos é que imagino que seja

MensagemEnviado: 12 Dez 2006 00:21
por gabriel_paz
Oi Jean.

Primeiramente muito obrigado pela ajuda, e pelas dicas.

A pinagem do microcontrolador que estou usando para o canal I2C é:

P1.5 = SDA
P1.6 = SCL

E a serial EEPprom é 24C04 6; fabricante ST; 90A828; mas já tentamos outras e continua o mesmo problema.

A configuração de hardware é como você colocou no final de sua resposta mesmo.

Como usamos o BASCOM então usamos os comandos prontos de uso do I2C, então primeiro vou estudar as dicas e links que você passou e também modificar o endereçamente como você sugeriu, se não der certo então vamos criar as rotinas na unha, para ver o que está ocorrendo.

Obrigado pela ajuda.

Gabriel

MensagemEnviado: 12 Dez 2006 05:58
por sandei
Usou o Comando para colocar as Linhas do BUS IC em Alta Impedância

Config Sda = Portb.2
Config Scl = Portb.3

I2cinit '''inicializa BUS!

MensagemEnviado: 12 Dez 2006 12:08
por Maurício
sandei !!

acho que vc tá confundindo os fóruns.
esse daqui é do 8051.

[]'s

RETI.

MensagemEnviado: 12 Dez 2006 12:13
por sandei
Nossa realmente me confundi por um momento pensei que estivesse utilizando o BAscom 8051!

Fabio

MensagemEnviado: 12 Dez 2006 14:15
por andre_luis
Já me deparei com um problema em que usava 2 dispositivos I2C: EEPROM e RTC, porem o RTC usava o barramento I2C de 8 bits, enquanto a EEPROM usava 16 bits. A solucao q encontri foi implementar um Chipselect via I/O do uC.

+++