Proteus + PIC + MCP23016 расширитель портов IO

Обсуждаем цифровые устройства...
Ответить
Родился
Сообщения: 3
Зарегистрирован: Вт июл 15, 2014 18:06:45

Сообщение Smosia »

Добрый день.

Бьюсь над задачей совместить PIC18 и MCP23016 по протоколу I2C.
Уже всю голову поломал, да не выходит каменный цветок.
Эмулирую схему в Proteus 8.1.

Пытаюсь совершить самое простое действие - записать в регистры IODIR (отвечают за направление портов ввода вывода).
ACK-и приходят, да в регистры не пишет.

Код: Выделить всё

OpenI2C(MASTER, SLEW_OFF);
SSPADD = 39;

StartI2C();
IdleI2C();
Delay10TCYx(8);
putcI2C( 0b01000000 );
IdleI2C();
Delay10TCYx(8);
putcI2C( 0x06 );
IdleI2C();
Delay10TCYx(8);
putcI2C( 0x00 );
IdleI2C();
Delay10TCYx(8);
StopI2C();

CloseI2C();
Что не так? Подскажите пожалуйста.
Спасибо

Вот что твориться на осциллографе
Изображение

даташит http://www.bristolwatch.com/pdf/mcp23016.pdf
Реклама
Родился
Сообщения: 3
Зарегистрирован: Вт июл 15, 2014 18:06:45

Сообщение Smosia »

Все, проблема решена. Выход int надо было посадить на землю. Спасибо
Реклама
Ответить

Вернуться в «Цифровая техника»