Hola, estoy tratando de comunicar que está usando SMBus. Entonces, cuando intento enviar datos que eran 0x0D y la dirección del dispositivo era 0x16. Veo algo así en la línea de datos:
Y así es como se ve el pin de mi reloj (SCL):
Entonces mis preguntas son:
En la ficha técnica de la batería que trato de comunicar, dice:
Así que pensé que podría usar 20 k ohmios como resistencias pull-up (para ser honesto, no pude entender realmente lo que dicen en el documento).
Y así es como se ven juntas las señales SCL/SDA
Este es el esquema del circuito (uso RB1 y RB2 para la comunicación SMBus).
Este es el diagrama de pines de la batería. Me estoy comunicando con la primera sección, PINS 1-4:
El bus I2C en realidad no requiere 2 cables, sino 3: SCL, SDA y tierra . Por lo general, solo se asume porque I2C está destinado a la comunicación en la misma placa. Si realmente solo está conectando SCL y SDA desde su PIC a su batería, y no hay una conexión a tierra común entre ellos, es posible que vea algo como esto.
La tierra de su PIC debe estar conectada a la tierra del circuito de monitoreo de la batería. No es necesariamente la conexión a tierra real de la batería; pueden proporcionar un pin de tierra separado destinado a la comunicación. ¿Cuál es el pinout de su batería inteligente?
Ninguna forma de onda parece normal para una transmisión SMBus. En una situación ideal de transmisión de la forma de onda del reloj durante el período de transacción, debería tener un ciclo de trabajo aproximado del 50%.
Dudo que las resistencias pullup sean el problema, pero me gustaría comentar que tratar de usar resistencias en el rango de 15K a 20K es muy poco convencional. Las aplicaciones SMBus del mundo real utilizan resistencias pull-up en el rango de 2,2 K a 4,7 K.
Será difícil sugerir más pasos de depuración porque no sé cómo está generando su tráfico (bloqueo de IP de SMBus o bit-banged). También se desconocen factores como las conexiones de pines de MCU, las configuraciones de pines, los controladores aplicados o incluso los traductores de nivel.
Estaba tratando de hacer una referencia cruzada de su imagen con algunas capturas que he guardado para juzgar la base de tiempo y cómo debería verse.
Creo que lo que sucede a 100us/div es que se ven inicios repetidos que no se reconocen. Además, su tiempo de subida parece horrible, intente dominadas más pequeñas.
Aquí hay una captura a 50us y me imagino que 100us se vuelve una resolución bastante pobre pero aún así puede mostrar el 50% de servicio en el reloj.
Tampoco importa la medición de frecuencia de 66,7 kHz, no calcula bien las cosas en una captura como esta, el bus era de 100 kHz.
Hogar
r_ahlskog
Pedro Smith
Günkut Ağabeyoğlu
justin
Günkut Ağabeyoğlu
brahans
Günkut Ağabeyoğlu
brahans
Günkut Ağabeyoğlu
justin
Günkut Ağabeyoğlu
justin
Günkut Ağabeyoğlu