Ir ao conteúdo
  • Cadastre-se

Como usar 4 Bus I2C's num mesmo Atmega !


aphawk

Posts recomendados

Existem alguns casos onde precisamos de mais de um Bus I2c, por exemplo, usar vários CI's I2C's que possuem o mesmo endereço. No meu caso, estou montando um aparelho de som com vários amplificadores, e preciso controlar a tonalidade de todas as 6 entradas de áudio.

Uso 3 CI's de áudio antigos que só possuem um endereço no hardware, então não posso colocar mais de um no mesmo Bus.

Fiz um programa em Basic do Bascom que cria mais 3 Bus I2c , onde ligo um CI em cada um, e assim posso fazer o controle individual.

Fiquei com 4 Bus no total ( o nativo por hardware ! ) .....

A técnica para fazer a comunicação I2C é simples, e qualquer um pode ver e fazer as mesmas rotinas básicas em qualquer linguagem de programação.

Para quem precisar, segue o link :

http://forum.clubedohardware.com.br/showpost.php?p=6052877&postcount=44

Paulo

Link para o comentário
Compartilhar em outros sites

Dependendo do consumo do CI que for utilizar a comunicação voce pode tambem utilizar pinos de um PORT,se tiver sobrando,para controlar a alimentação do CI que for usar no momento da comunicação.

Eu ja utilizei esse método para controlar 4 Eerpom 24CXX com o mesmo barramento e mesmo endereçamento pois na época minha rotina estava interferindo nas outras e eu não tinha conseguido resolver este problema.

Link para o comentário
Compartilhar em outros sites

Boa ideia.... É que você usou EEprom, que podem ser desligadas depois do uso, eu estou usando circuitos de áudio, se desligar a alimentação somem dois canais do som, porisso tive de dar um jeito diferente.

A gente acaba acostumando de usar tudo prontinho .... E quando tem de reinventar a roda com as próprias mãos, vê a dificuldade que é.... Demorei um dia inteiro prá estudar os truquezinhos desse I2C, e ví algumas implementações com bit banging que eram simples e deveriam funcionar se fosse usado um bus muito curto, sem nenhum efeito capacitivo, mas preferí fazer algo mais "tolerante" com bus longos e mais carregados.

A parte mais chata foi ajustar o momento exato de ler ou mudar o SDA em relação ao sinal SCL, tive de usar o Proteus para ver e corrigir com pequenos waits para ficar o mais imune possível.

Paulo

Link para o comentário
Compartilhar em outros sites

... tive de usar o Proteus para ver e corrigir com pequenos waits para ficar o mais imune possível.

Esta é uma poderosa ferramenta!

Eu consegui sincronizar um circuito de Dimmer totalmente pelo Proteus ,e depois de montado testei num osciloscópio da empresa e bateu tudo!

Isso me economizou muitas horas de gravação num PIC real.

Link para o comentário
Compartilhar em outros sites

É uma ferramenta muito poderosa mesmo, e em termos de simulação puramente digital é bem preciso !

Pena que poucos sabem utilizar as várias ferramentas dele, talvez pelo preço que é bem salgado para um hobbysta.

Algo que eu já mandei mais de 10 sugestões para eles é criar um Led que mude o brilho, ia ser bem legal....

Paulo

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
Isso me economizou muitas horas de gravação num PIC real.

eu ia ficar apenas de vigia externo nesse tópico, mas quando vi essa frase resolvi contar minha experiencia,

na minha matriz de led's,eu regravei tanto um pic meu que ele parou de funcionar corretamente, ele passou a funcionar apenas depois de um reset. ou seja eu ligava ele e ele ficava la paradão sem funcionar, apenas depois de eu apertar o reset ele funcionava, ou seja fui obrigado a fazer um circuito externo para resetar ele toda vez que era ligada :(

floww

Link para o comentário
Compartilhar em outros sites

Vtrx,

Já tive um problema com um ATtiny2313 : a memória Flash funciona direitinho , mas a EEPROM não aceita gravação de dados .....

E um outro ATtiny2313 também é esquisito : se colocar o resistor de Reset, ele simplesmente não parte , nem pondo um capacitor , mas se deixar ele flutuando, funciona direitinho .....

Coisas da eletrônica .....

Paulo

Link para o comentário
Compartilhar em outros sites

Nossa, que fora...... :cry::cry::cry::cry:

Desculpa Mr. Nintendo ! Juro que lí seu comentário, mas responder via IPAD é uma porcaria, tem de ficar subindo e descendo a tela, e ví o nome do Vtrx logo acima e achei que era dele.....

Desculpe, amigos, foi mesmo coisa de velho gagá kkkkkk !

Paulo - o Velho ( parodiando Plínio, o Velho kkkkk )

Link para o comentário
Compartilhar em outros sites

Nossa, no CCS é tão fácil criar vários buses I2C. Apenas com 1 linha de código para cada bus. Depois é só ir chamando cada bus por um nome e pronto.

Isso teoricamente, pois nunca usei por falta de necessidade de minha parte.

Sobre o caso do Proteus, ele é bugadão com relação a LED.

Já entrei no fórum deles e eles nem me deram bola. Saca só o bug:

Só para ilustrar um circuito bobo que fico pé da vida que não funciona no Proteus. Acredito que os modelos usados pelo programa são mal feitos ou incompletos.

Escolho um LED vermelho da lista de componentes.

Fica assim: +5V ----> Resistor ----> LED ----> GND.

LED: RED 2.2V@350mA.

Resistor: (5-2.2)/0.35 = 8 ohms.

Então o amperímetro deveria ler 350mA, mas lê somente 255mA.

Look:

LED_config_error.png

LED_simu_error.png

Já publiquei exatamente esse problema no fórum oficial do programa, onde os próprios funcionários normalmente comentam. E pasmem, nem deram 1 retorno se quer.

Tópico no forum deles (Meu nick lá é Koala. Segundo cadastro, pois eles banem do nada. O tópico está trancado!): http://support.labcenter.co.uk/forums/viewtopic.php?f=9&t=5039

Falou

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...