Вопрос по I2C

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Аватара пользователя
Gerik_PP
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский
Контактная информация:

Вопрос по I2C

Сообщение Gerik_PP »

Друзья, всем доброго здравия. Не сочтите за труд, подскажите...
Соединяю два ПИКа по I2C (аппаратный). Пока эмулирую в Proteus. Ведущий - PIC16f877A, ведомый PIC16F1823. При несовпадении адреса последний уходит в прерывание...
Вопрос: Должен ли ведомый генерировать аппаратное прерывание от MSSP при несовпадении адреса? Или это несовершенство Proteus?
P.S. При инициализации регистра SSPCON3 у ведомого, Proteus выдаёт предупреждение: Only bits PCIE, SCIE, SBCDE and BOEN are modelled. I2C will work in legacy mode only for remaining bits.
Аватара пользователя
Gerik_PP
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский
Контактная информация:

Re: Вопрос по I2C

Сообщение Gerik_PP »

И ещё, при совпадении адреса микросхемы ведомый (PIC16F1823) ведёт себя очень странно (во вложении сриншот с информацией от протеусовского I2C Debugger):

0. Мастер "Start"
1. Ведомый принял свой(!) адрес микросхемы с битом Write - выдаёт "Nack"(?)
2. Затем принимает байт с адресом ячейки и опять "Nack"(?),
3. Затем после ReStart (от мастера) принимает свой(!) адрес микросхемы с битом Read - выдаёт опять "Nack"(?)
4. Ну и после всех своих "Nack" ведомый исправно передаёт мастеру нужные 8 байт (с "Ask" от мастера) + последний 9-й байт с "Nack".
5. Мастер "Stop"

По мойму Proteus здесь точно чудит. Исправно принимая байты ведомый их не подтверждает. Люди знающие, скажите, глючит ведь ОН, а не Я???

Изображение
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Вопрос по I2C

Сообщение dosikus »

Gerik_PP писал(а):Никто не знает что-ли? Невольно вспоминается старый анекдот.


Весьма странно читать ваш пост после созерцания дублей на куче форумов .
Вы коллекционируете ответы ?
Вам же сам Протеус дал ответ - смоделировано не все.
Хотите большего - на казусе есть Тень , разработчик Протеус.
Есть I2C debugger , в которых можно забить работу слэйва .
Аватара пользователя
Gerik_PP
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский
Контактная информация:

Re: Вопрос по I2C

Сообщение Gerik_PP »

dosikus писал(а):Вы коллекционируете ответы?
Вам же сам Протеус дал ответ - смоделировано не все.


В каком-то смысле да. Информации совсем не могу найти по своей проблеме. До сих пор так никто толком и не сказал - должен ли ведомый PIC уходить в прерывание при несовпадении адреса микросхемы? Подобные вопросы уже были разных форумах, но все без ответа...
Аватара пользователя
Gerik_PP
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский
Контактная информация:

Re: Вопрос по I2C

Сообщение Gerik_PP »

Сегодня запустил в железе. Всё Ок! Рекомендую всем железный debugger.
iGraphicsS
Нашел транзистор. Понюхал.
Сообщения: 193
Зарегистрирован: Ср фев 16, 2011 22:58:23

Re: Вопрос по I2C

Сообщение iGraphicsS »

Любой пик-микро с новой инициализацией MSSP (PIC12F1840, PIC16F1825 ИТД), у которых есть регистр SSP1CON3, Proteus-ом пока не поддерживаются. (источник http://www.labcenter.com/products/vsm/pic16.cfm).
Сам наступил на грабли, долго мозг е-л этот факт. По этому аппаратных I2C в новых PICmicro не будет моделироваться.
Ответить

Вернуться в «PIC»