Перейти к содержанию
    

ATmega8 + PIC18F4525 TWI_BUS_ERROR в меге

Здравствуйте, помогите разобраться, даташит на мегу уже до дыр прокурил.

Есть девайс в котором PIC - master, ATmega8 - slave, помимо этого на шине висит DS1307 и EEPROM, проблема только с мегой.

При включении TWI в меге, она ловит TWI_BUS_ERROR, ну и после обработки отключает TWI.

На осцилле видно, что Мега не выдает АСК. Адрес правильный, бит TWEA в меге установлен.

Мега работает от внутреннего генератора 8Мгц. Частота SCL - 200 кГц.

 

Над кодом поэксперементировал, попробовал просто примеры из библиотек, та же картина.

Аппаратно - стандартная схема, подтяжки по 5.1 кОм, сигнал чистый, 3 день не могу въехать где проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еррату почитайте

 

Это документированный глюк 8 и вроде 88 мег

 

Ещё у них сторожевой таймер иногда глючит

 

Рекомендую связать ПИК и МЕГУ по SPI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еррату почитайте

 

Это документированный глюк 8 и вроде 88 мег

 

Ещё у них сторожевой таймер иногда глючит

 

Рекомендую связать ПИК и МЕГУ по SPI

Чуш не советуйте человеку, всё там прекрасно работает. У меня была похожая задача правда вместо PICa at89c5131. На atmega 88/48 часы и ещё несколько задач. Связь с 51 по TWI – всё прекрасно работает. Даже и не знаю чем помочь, так как 1 раз на макетке сделал так оно сразу заработало. Уже не 1 сотня штук – полёт нормальный. Нет там ни каких проблем. Разбирайтесь…

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте в Mege писать код стауса в массив, а по окончанию операции выбрасывайте его через

UART. Мне неоднократно это помогало выгрести баги из собственной программы.

Удачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы, вроде дело сдвинулось, видимо нужно вводить задержки у PIC между старт и стоп посылками, так как если начать опрос с Меги, то она корректно отрабатывает старт условие. Разберусь до конца, тогда напишу в чем трабл был. :smile3046:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еррату почитайте

Это документированный глюк 8 и вроде 88 мег

Испугался и скачал свежий даташит.

В разделе "эррата" про I2C (пардон, TWI!) ни слова.

 

Уточните, пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы, вроде дело сдвинулось, видимо нужно вводить задержки у PIC между старт и стоп посылками, так как если начать опрос с Меги, то она корректно отрабатывает старт условие. Разберусь до конца, тогда напишу в чем трабл был. :smile3046:
скорее всего Вы не корректно обрабатываете все состояния шины i2c,

или просто не "успеваете" за Вашим мастером который не поддерживает корректно "удержание шины"...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...