Hola a todos, he conseguido que me funcione el driver sw_i2c, el mismo que trae el compilador c18, al final era una chorrada por lo que no me funcionaba.
una cosa curiosa para el que quiera jugar con estos dispositivos y no se estalle como yo y pierda tiempo.....
a la hora de programar la memoria en modo secuencial tiene que ser en páginas de 64bytes, no podemos empezar la programación donde queramos, bueno corrijo donde queramos si, pero sin superar el tamaño de la página ya que si lo superamos, el contador de la memoria se va ha cero dando un salto para atrás, al principio de la página donde estamos trabajando y machacará otra información que tengamos almacenada y dispersará la que estamos añadiendo. voy a subir unas imágenes para que quede más claro:
memoria respetando la página de 64 bytesSi cuentan desde la posición 0x0000 a la 0x0040 pueden comprobar que la 0x0040 es la posición 65, con lo cual ahí empieza una nueva página
y cuando no se respetan los 64 bytes sucede esto:Por supuesto y que no quepa duda, que haré un tutorial cuando tenga todo bien documentado de esto para compartir los conocimientos.
saludos y gracias por la ayuda