Autor Tema: Bus expander MCP23017  (Leído 1968 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado acerdgr82

  • PIC10
  • *
  • Mensajes: 14
Bus expander MCP23017
« en: 15 de Septiembre de 2009, 19:10:49 »
Hola,

Estoy simulando en proteus 7.2 SP2 el bus expander MCP23017. Quiero simlarlo en modo "Byte Mode" de manera que por cada dato enviado me incremente el puntero de dirección.  Mi problema es que en la simulación el puntero no se incrementa de manera que no consigo sacar ningún dato por el puerto B y no sé si es un error del simulador o algún error de programación.

El código que le envío es el siguiente (escrito en CCS 4.088):

i2c_start();     // Start condition
i2c_write(0x40); // Device address
i2c_write(0x00);    // Se accede al registro IODIRA
i2c_write(0x00);   // Port A como salida
i2c_write(0x00);   // Port B como salida. Aquí se debería escribir sobre IODIRB pero sobreescribe IODIRA
i2c_stop();// Stop condition

i2c_start();     // Start condition
i2c_write(0x40); // Device address
i2c_write(0x12);    // Se accede al registro GPIOA
i2c_write(0x55);   // En el puerto A se escribe 0x55
i2c_write(0x66);   // En el puerto B se escribe 0x66. Aquí se debería escribir sobre GPIOB pero sobreescribe GPIOA
i2c_stop();// Stop condition


Gracias,