SMBus utilizando Silicon Labs C8051F560

1

Estoy tratando de comunicar un arduino con una Tarjeta auxiliar Silabs F560 Toolstick.

En Arduino (Master)

He cargado el programa de escáner i2c de enlace que básicamente hace ping a todas las direcciones posibles (0x00 a 0x7F) en el bus tratando de obtener un ACK.

En C8051F560 (esclavo)

He cargado el código Slave de ejemplo dado por Silicon Labs de la dirección 0x78. He cambiado la frecuencia de SMBus a 100000 (ya que Arduino funciona en 100kHz)

El Arduino no pudo reconocerlo en el autobús. He intentado resistencias pull-up de diferentes combinaciones 3.3k, 6.6k, 10k ohms. Eso no hizo ninguna diferencia.

Cuando intenté analizar el bus con un analizador lógico, la SiUabs MCU estaba interrumpiendo el SCL conducido por Arduino.

Creo que un código de ejemplo dado por un fabricante debería funcionar bien.

¿Hay algo que me esté perdiendo? ¿O es el H / W que está dañado?

    
pregunta Mugilan

1 respuesta

0

El problema fue con el F560 DC donde el Pin P0.0 (VREF) está conectado a GND por defecto. Se especificó en el esquema del F560DC. He cambiado los pines utilizados por el periférico SMBus a P0.2 y P0.3 y todo funcionó bien.

    
respondido por el Mugilan

Lea otras preguntas en las etiquetas