Índice:

Projeto do Mestre I2C em VHDL: 5 etapas
Projeto do Mestre I2C em VHDL: 5 etapas

Vídeo: Projeto do Mestre I2C em VHDL: 5 etapas

Vídeo: Projeto do Mestre I2C em VHDL: 5 etapas
Vídeo: I2C - Bus Master - Step 1 2024, Novembro
Anonim
Projeto de I2C Master em VHDL
Projeto de I2C Master em VHDL

Neste instrutível, é discutido o projeto de um mestre I2C simples em VHDL.

NOTA: clique em cada imagem para ver a imagem completa

Etapa 1: Visão geral do barramento I2C

• Significa Circuito Integrado Inter.

• Síncrono, Half duplex.

• Interface de dois fios - SDA e SCL.

• SDA - Linha de dados seriais controlada por Mestre e Escravo

• SCL - Relógio Serial gerado pelo Mestre

• Protocolo Multi-master, Multi-slave.

• Dois modos - 100 kbits / seg e 400 kbits / seg: lento e rápido.

Etapa 2: Projeto RTL em VHDL

Especificações de design do nosso mestre I2C

  • Quadro de dados de 8 bits.
  • Somente controle unidirecional SCL.
  • Endereço escravo de 7 bits.
  • Suporta modos lento e rápido.
  • Único mestre, multi-escravo.
  • Em conformidade com as especificações I2C originais da Philips.

O código RTL puro é usado. Portanto, o IP é facilmente transportável em todos os FPGAs. O design compacto baseado em FSM usando relógio gerado internamente garante área e desempenho ideais.

Etapa 3: Simulação e teste

Ambiente de teste

  • Simulação funcional e teste usando I2C Slave IP de terceiros.
  • Sintetizado usando o conjunto de ferramentas Xilinx Vivado.
  • Implementado e testado na placa Artix-7 FPGA.
  • Projeto de temporização verificada para 100 MHz.
  • Formas de onda testadas em DSO / CRO.
  • Comunicação testada com sucesso com Arduino UNO como I2C Slave.

Etapa 4: notas importantes

  • Ao testar o mestre usando I2C Slave IP, configure o código do escravo de acordo com seus requisitos. Você pode querer alterar a frequência do relógio padrão e o endereço do escravo. A frequência do relógio também deve ser configurada no código mestre.
  • Durante o teste on-board, não se esqueça dos resistores pull-up, pois a linha SDA é uma saída de dreno comum !!! Verifique no google o resistor pull-up recomendado para diferentes velocidades i2c. Usei 2,2K para 100 kHz.
  • Se não estiver usando a bancada de teste e simular o Master de forma independente, simule cuidadosamente o sinal SDA, pois é um sinal bidirecional (inout). Possui dois drivers, lado mestre e lado escravo. Você deve saber quando 'forçar' e quando 'desforçar'.
  • SCL é uma linha unidirecional. Não há necessidade de puxar para cima.
  • Por favor, vá até a Documentação IP completamente.

Etapa 5: arquivos anexados

  • Todos os códigos RTL do I2C Master.
  • Bancada de teste, códigos I2C Slave também, para teste.
  • Documentação IP.

Para qualquer dúvida, sinta-se à vontade para entrar em contato comigo:

Mitu Raj

siga-me:

Para dúvidas, entre em contato: [email protected]

Recomendado: