7 votos

¿Existe un protocolo de bus I2C/SM estándar para las baterías de los ordenadores portátiles?

Estoy construyendo un portátil con un paquete de baterías personalizado. Sé que el pack tiene que comunicarse a través de un puerto I2C/SM en la placa base, pero no sé cómo hacer que la bios/os lo reconozca. ¿Existe una dirección I2C particular y un protocolo estándar sobre I2C para el intercambio de información sobre el estado de la batería? Si lo hay, ¿dónde puedo encontrar la documentación al respecto? Si no es así, ¿el protocolo es propiedad del fabricante de la bios y luego el SO lo lee de la bios? Yo voy a hacer un intercambio de bits I2C desde el microcontrolador que regula la batería para poder hacer lo que sea necesario.

9voto

afx Puntos 221

Puesto que ya conoces el SMBus, ¿por qué no buscas en el Especificación de datos de la batería inteligente o el Especificaciones del cargador de baterías inteligente ya que esto es lo que tendrás que simular. Sin embargo, esto no describirá si el chip de gestión del sistema tiene algunas características adicionales que no están documentadas ;-)

3voto

dim Puntos 618

No existe una norma real. [Edición: me equivoco - ver otra respuesta]

Sin embargo, la mayoría de las baterías se fabrican más o menos de la misma manera: Tienen algún chip I2C EEPROM (a menudo uno estándar de la industria) que contiene toda la información estática de la batería (modelo, número de serie, fecha de fabricación, capacidad, etc...), y otro chip llamado "battery gas gauge" o "battery fuel gauge" que monitoriza el nivel de carga real y todas las cosas dinámicas.

TI dispone de toda una gama de chips de medición de baterías: http://www.ti.com/lsds/ti/power-management/battery-fuel-gauge-overview.page . Lo más probable es que la batería de su ordenador portátil contenga un chip de este tipo.

Así que, básicamente, sólo el fabricante del portátil sabe exactamente cómo comunicarse con la batería, pero todo suele estar basado en chips ampliamente disponibles y documentados (bueno, también puede haber alguna MCU adicional con firmware propietario que se encargue de cosas adicionales, eventualmente). Así que si tienes que hacer ingeniería inversa de una batería, puedes tener alguna posibilidad de tener éxito. Aquí hay un documento que proporciona información interesante: Hackeo del firmware de la batería

Ahora, en cuanto a la parte del software: efectivamente, la empresa que hace la BIOS, basándose en la información proporcionada por el fabricante del portátil/batería, incluye toda la mensajería I2C relevante en la propia BIOS y el SO pregunta a la BIOS cuando necesita saberlo.

0 votos

Gracias, parece que tendré que hacer algo de ingeniería inversa en la batería de un portátil para averiguar qué paquetes envía realmente, pero al menos puedo estar bastante seguro de que funcionará con cualquier bios ya que los chips son estándar

0 votos

No estoy usando una batería de portátil estándar que ya tendría esos chips

0 votos

Parece que no tenía razón. Tom L encontró algunas especificaciones reales de las que yo no era consciente. Será mejor que aceptes su respuesta en lugar de la mía, se lo merece más.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X