VICON: Sistema de Visión configurable V1.0
Trabajo Fin de Master Carlos Manuel Gomez Jimenez
Loading...
Searching...
No Matches
i2c_controller.vhd File Reference

Go to the source code of this file.

Entities

i2c_master  entity
 
i2c_master.rtl  architecture
 

Detailed Description

Controlador I2C para comunicación con el sensor MT9V111. Protocolo MT9V111:

  • WRITE: S + ADDR_WR + ACK + REG_ADDR + ACK + DATA_H + ACK + DATA_L + ACK + [repetir DATA_H/DATA_L para más registros, auto-increment] + P
  • READ: S + ADDR_WR + ACK + REG_ADDR + ACK + Sr + ADDR_RD + ACK + DATA_H + ACK + ... + DATA_L + NACK + P

Timing SCL – 4 fases de CLKS_PER_PHASE ciclos de sistema cada una:

  • _0 SCL=0 → cambiar / preparar SDA
  • _1 SCL=1
  • _2 SCL=1 → muestrear SDA
  • _3 SCL=0 → transición

Bloques reutilizables en la FSM:

  • TX (ST_TX_*) envía 'tx_byte' MSB-first. Al completar el bit 0 pasa a ST_RACK_* para recibir el ACK del esclavo. Tras el ACK va a 'seq_next'.
  • RX (ST_RX_*) recibe un byte en 'rx_byte' MSB-first. Al completar el bit 0 pasa a ST_MACK_* donde el master envía ACK o NACK según 'send_nack'. Tras el ACK/NACK va a 'seq_next'.
  • START (ST_START_*) genera condición START o Repeated START. Tras completar carga tx_byte con la dirección y salta a TX. La señal 'start_rd_mode' indica si la dirección va con R/W='1'.
    Warning
    Los estados ST_LOAD_DATA_H y ST_LOAD_NEXT_DATA_H añaden un ciclo de latencia para que 'wr_word' se estabilice antes de cargarlo en 'tx_byte'. Sin este ciclo extra, ST_TX_0 arrancaba con el valor antiguo de tx_byte.

Definition in file i2c_controller.vhd.