I2C slave compatible con el protocolo SMBus?

1

Tengo algunas preguntas con respecto al uso de un controlador esclavo I2C (de Arria 10 FPGA).

Actualmente estamos evaluando el soporte del protocolo MCTP en nuestro dispositivo, cuya capa física se basa en SMBus / I2C, de acuerdo con las especificaciones de MCTP. Nuestro punto de partida sería utilizar el controlador I2C incorporado en nuestro procesador fijo dentro del fpga. Nuestro dispositivo solo actuaría como esclavos I2C, lo que significa que no inicia ninguna comunicación.

Entiendo que SMBus e I2C tienen similitudes en su mayoría en el nivel de la señal eléctrica, excepto en las velocidades (SMBus solo alcanza el reloj de 100 KHz, mientras que I2C es compatible con relojes más altos; una preocupación). Sin embargo, más adelante en las especificaciones de MCTP, describe el comportamiento de MCTP solo en términos del protocolo SMBus, como la escritura de bloque SMBus que no veo protocolo equivalente exacto en I2C. También recomendó el uso de ARP, que creo que no está especificado en I2C y solo en SMBus. Así que espero que el host MCTP me envíe, el dispositivo, los comandos en términos del protocolo SMBus. Ahora, si tenemos un controlador SMBus en Arria 10, esto no será un problema, pero solo tenemos I2C, y no estoy seguro de si nuestro controlador "esclavo" I2C entenderá el protocolo SMBus. He tratado de investigar en línea, pero tengo puntos de vista contradictorios. También le he preguntado a Altera pero todavía estoy esperando su respuesta. Lo que seguí leyendo es que "SMBus es un subconjunto de I2C".

Estoy más preocupado por las transacciones de múltiples bytes (escritura de bloque, lectura, escritura de múltiples bytes, sean cuales sean sus nombres), ya que el host enviará paquetes y responderé con cierto número de bytes de datos. ¿Funcionará nuestro controlador I2C con el protocolo SMBus? Déjame saber lo que piensas.

    
pregunta ubermensch

1 respuesta

1

Eso depende de la cantidad de protocolo I2C implementado en su controlador Arria. Si solo está informando los "eventos" al programa (como "STOP detectado", "START detectado", "ACK recibido", "Dirección recibida", etc.), lo más probable es que pueda implementar la mayoría de los SMBus, excepto quizás ARP, que requiere, AFAIR, responder a una dirección de transmisión (para la cual su controlador puede no tener soporte). La otra preocupación es el tiempo de espera. Las PYMES tienen tiempos de espera más estrictos, especialmente en lo que respecta al alargamiento del reloj. La compatibilidad dependería en gran medida de la medida en que el maestro utilice el protocolo SMBus y espere su conformidad.

Por otra parte, si su Arria proporciona una abstracción de mayor nivel (como "Enviar byte I2C"), lo más probable es que sea un factor de frenado.

Si tiene una placa de evaluación para su Arria 10 FPGA, recomendaría probar el concepto utilizando esa placa antes de utilizar este chip para el diseño y la producción.

    
respondido por el Alexander Amelkin

Lea otras preguntas en las etiquetas