Tabla de contenido:

Diseño de I2C Master en VHDL: 5 pasos
Diseño de I2C Master en VHDL: 5 pasos

Video: Diseño de I2C Master en VHDL: 5 pasos

Video: Diseño de I2C Master en VHDL: 5 pasos
Video: I2C - Bus Master - Step 2 2024, Noviembre
Anonim
Diseño de I2C Master en VHDL
Diseño de I2C Master en VHDL

En este instructable, se discute el diseño de un maestro I2C simple en VHDL.

NOTA: haga clic en cada imagen para ver la imagen completa

Paso 1: Descripción general del bus I2C

• Significa Circuito Integrado Inter.

• Sincrónico, semidúplex.

• Interfaz de dos cables: SDA y SCL.

• SDA: línea de datos en serie controlada por maestro y esclavo

• SCL - Reloj serial generado por Master

• Protocolo multimaestro, multiesclavo.

• Dos modos: 100 kbits / seg y 400 kbits / seg: lento y rápido.

Paso 2: Diseño RTL en VHDL

Especificaciones de diseño de nuestro I2C Master

  • Trama de datos de 8 bits.
  • Control unidireccional SCL solamente.
  • Dirección de esclavo de 7 bits.
  • Admite los modos lento y rápido.
  • Maestro único, esclavo múltiple.
  • Cumple con las especificaciones I2C originales de Philips.

Se utiliza código RTL puro. Por lo tanto, la IP es fácilmente portátil en todos los FPGA. El diseño compacto basado en FSM que utiliza un reloj generado internamente garantiza un área y un rendimiento óptimos.

Paso 3: simulación y prueba

Entorno de prueba

  • Simulación y pruebas funcionales utilizando IP esclava I2C de terceros.
  • Sintetizado con el conjunto de herramientas Xilinx Vivado.
  • Implementado y probado en la placa FPGA Artix-7.
  • Diseño de temporización verificada para 100 MHz.
  • Formas de onda probadas en DSO / CRO.
  • Comunicación probada con éxito con Arduino UNO como esclavo I2C.

Paso 4: notas importantes

  • Mientras prueba Master usando I2C Slave IP, configure el código esclavo según sus requisitos. Es posible que desee cambiar la frecuencia de reloj predeterminada y la dirección esclava. La frecuencia del reloj también debe configurarse en el código maestro.
  • Durante las pruebas a bordo, no olvide las resistencias pull-up ya que la línea SDA es una salida de drenaje común. Consulte en Google la resistencia pull-up recomendada para diferentes velocidades de i2c. Usé 2.2K para 100 kHz.
  • Si no utiliza el banco de pruebas y simula el maestro de forma independiente, simule cuidadosamente la señal SDA, ya que es una señal bidireccional (inout). Tiene dos controladores, el lado maestro y el lado esclavo. Debe saber cuándo "forzar" y cuándo "desforzar".
  • SCL es una línea unidireccional. No es necesario hacer dominadas.
  • Por favor, revise la Documentación de IP detenidamente.

Paso 5: archivos adjuntos

  • Todos los códigos RTL de I2C Master.
  • Banco de pruebas, códigos esclavos I2C también, para pruebas.
  • Documentación de propiedad intelectual.

Para cualquier consulta, no dude en ponerse en contacto conmigo:

Mitu Raj

sígueme:

Para consultas, contactar: [email protected]

Recomendado: