Проблема с I2C шлюз для ПК (через com-порт) на ATTiny2313

Всё об интерфейсах, протоколах, подключении к МК разных устройств, подключении контроллеров к ПК...
Ответить
Dima_SPb
Читатель
Читатель
Сообщения: 5
Зарегистрирован: 08 янв 2016, 21:49

Проблема с I2C шлюз для ПК (через com-порт) на ATTiny2313

Сообщение Dima_SPb »

Уважаемый автор разработки, при изучении вашего очень интересного для любителей I2C шлюза для компьютера (через com-порт) на ATTiny2313 у меня возникли проблемы.
1. При подаче первой после включения питания команды воздействия на линию CS (15h или 16h) происходит формирование старт-условия на шине и выдача на шину какого-то байта. Сама линия CS не управляется.
Ситуация нормализуется только при подаче повторной любой команды 15h или 16h, но некий паразитный байт уже ушел.
2. Вне зависимости от п.1 команда формирования старт-условия (10h) в шину сразу улетает какой-то байт. Шлюз отвечает вместо 10h - 12h 10h, то есть признается, что отправил целый байт, о котором его не просили.
3. После первого воздействия шлюзом тактовая линия Clock остается в низком состоянии. Разве это правильно?
Может на странице программы оказалась не самая последняя актуальная прошивка?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Проблема с I2C шлюз для ПК (через com-порт) на ATTiny2313

Сообщение rhf-admin »

Очень может быть... Я конечно покопаюсь в своих архивах (это ещё в 12-м году писалось)... :-?
а ты пока попробуй эту прогу перекомпилить, добавив куда-нибудь в секцию Init команду clr I2C_flags, возможно это поможет.

Update. Даже не так. Это почти наверняка поможет. Судя по логу, шлюз при старте сразу попадает в режим ожидания байта для передачи, поэтому и получается, что когда ему присылают 10h, он этот байт посылает в шину и присылает в ответ 12h 10h.

Кстати, а вот в этом случае:
При подаче первой после включения питания команды воздействия на линию CS (15h или 16h) происходит формирование старт-условия на шине и выдача на шину какого-то байта.
приходит что-то от шлюза в терминалку?
С уважением, администрация сайта.
Dima_SPb
Читатель
Читатель
Сообщения: 5
Зарегистрирован: 08 янв 2016, 21:49

Re: Проблема с I2C шлюз для ПК (через com-порт) на ATTiny2313

Сообщение Dima_SPb »

Кстати, а вот в этом случае:
При подаче первой после включения питания команды воздействия на линию CS (15h или 16h) происходит формирование старт-условия на шине и выдача на шину какого-то байта.
приходит что-то от шлюза в терминалку?[/quote]

Попробовал. При подаче самым первым кодом 16 шлюз послал в терминалку 12 16.
И еще одна загадка. При одном включении питания сегодня утром шлюз отработал как надо. Старт условие было правильным, нужные байты пошли от шлюза в шину. Но вот прочитать исследуемый чип не успел-нормальный запуск шлюза не повторился.
Снял логическим анализатором момент запуска шлюза по питанию. ИМХО, там очень много импульсной грязи на шине. Не исключен ложный старт шины. Не разобрался еще как выложить сюда файл скрина.
Повесил на ногу РЕСЕТ Тини2313 0,1 мкф на землю, чтобы удлиннить сигнал РЕСЕТа, усилил развязку МК по питанию. Не помогло.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Проблема с I2C шлюз для ПК (через com-порт) на ATTiny2313

Сообщение rhf-admin »

При подаче самым первым кодом 16 шлюз послал в терминалку 12 16
Да, всё правильно. При включении в регистрах общего назначения может быть что угодно случайным образом. Соответственно, если во втором бите регистра I2C_Flags окажется единица - первый же принятый байт будет послан в шину, если там окажется ноль - всё отработает как надо.
Как я уже и сказал, - добавление команды clr I2C_Flags в секции Init решит проблему.
С уважением, администрация сайта.
Ответить

Вернуться в «Интерфейсы / Протоколы / Периферия»