Estoy intentando conectar una Raspberry Pi con el mini-box OpenUPS . Pretende implementar las especificaciones de Smart Battery SMBus .
Puedo leer datos del dispositivo usando la función tal como se define en los documentos del núcleo de Linux .
Por lo tanto, mi problema básico es el siguiente: cuando se arranca el dispositivo por primera vez y realizo la primera lectura, todos los datos se desordenan. Obtengo números negativos, y nada de eso tiene sentido.
Pero, si realizo una lectura de un solo byte, entonces todas las siguientes palabras leen los datos correctos.
Es casi como si el orden de bytes se estropeara en un búfer en algún lugar, y se necesita una lectura de un solo byte para enderezarlo. Pero, ¿por qué no funciona la primera vez?