Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужен I2C "подглядыватель"
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
SWT-RUS
Проблема собственно в том что есть микросхема включенная по I2C, которую сколько не пинали растолкать не удалось. Пинает ее операционная система поэтому разбираться в коде на низком уровне тяжело. Есть подозрение, что то что ей посылают либо доходит криво либо выглядит некорректно. Было бы мило вцепиться в ее ноги и увидеть обмен в цифросимвольном виде где нибудь в экране гипертерминала. Очень лениво городить устройство на процессоре которое двумя ногами (входами) цепляется к I2C и выливает наловленное в UART. Если кто что то подобное встречал и "родил" для собственных нужд - сообщите - договоримся beer.gif
zltigo
Для начала годится штука которая называется цифровой "осциллограф" а уж если "логический анализатор", то там и некоторая расшифровочка может быть.
SWT-RUS
Цитата(zltigo @ Oct 7 2009, 12:53) *
Для начала годится штука которая называется цифровой "осциллограф" а уж если "логический анализатор", то там и некоторая расшифровочка может быть.

Анализатора нет к сожалению. Осциллограф есть. Но им удалось только констатировать что: обмен есть, фронты не завалены, мусора нет.
Помнится в молодости городил подобную штуку, чтобы понять в какие ячейки SEEPROM процессор базы радиотелефона (обычного - домашнего) прячет PIN. Надеюсь что такая светлая идея посетила не только мою голову но и еще несколько biggrin.gif и кто даже сгородил что-то подобное на продажу. Свое найти не получилось - давно это было...

PS раз уж мне модератор внимание уделил - спрошу почему у меня получилось создать новую тему и написать этот ответ только в мозиле? Эксплорер показывает окно овтета каким то обрезанным....
GetSmart
Цитата(SWT-RUS @ Oct 7 2009, 14:30) *
Проблема собственно в том что есть микросхема включенная по I2C, которую сколько не пинали растолкать не удалось. Пинает ее операционная система поэтому разбираться в коде на низком уровне тяжело.

Если тяжело, но всё-таки возможно, то надо дайти I2C прерывание и вставить в него в параллельном потоке отправку данных например в УАРТ. В терминале будет видна последовательность данных. Это так, первое что пришло в голову.
ASN
SWT-RUS
Посоветовал бы всё же найти на пару часов цифровой осциллограф. Вполне достаточно для декодирования обмена.
GetSmart
Если скорость обмена 400 кГц врядли что-либо увидеть можно. То, что гипертерминал правильно декодирует I2C формат даже для 100 кГц не уверен, он же по start биту синхронизируется.
rezident
Цитата(ASN @ Oct 12 2009, 22:58) *
Если скорость обмена 400 кГц врядли что-либо увидеть можно. То, что гипертерминал правильно декодирует I2C формат даже для 100 кГц не уверен, он же по start биту синхронизируется.
Хакеры автомагнитол в таком случае просто у МК кварц перепаивают, заменяя его на другой, с частотой раз в 10-20 меньшей оригинальной smile.gif
ASN
rezident
Дык, как я понял, тут пинает ее операционная система. Если можно понизить тактовую, тогда, конечно, проще. Но, IMHO, с цифровым осциллографом поудобнее будет.
rezident
Цитата(ASN @ Oct 12 2009, 23:24) *
Дык, как я понял, тут пинает ее операционная система.
ИМХО ОС не может напрямую управлять частотой тактирования I2C. Все равно есть какая-то вспомогательная логика, у которой свой тактовый генератор. Но даже, если ОС формирует диаграмму I2C "ногодрыганием", то теоретически есть (предусмотрена стандартом I2C) возможность "растягивания" "низкой" части импульсов SCL. Правда трудности все равно могут возникнуть, если реализация I2C далека от стандарта.
GetSmart
Цитата(ASN @ Oct 12 2009, 22:58) *
Если скорость обмена 400 кГц врядли что-либо увидеть можно. То, что гипертерминал правильно декодирует I2C формат даже для 100 кГц не уверен, он же по start биту синхронизируется.

(Гипер)Терминал будет декодировать RS232-формат. На скорости до 921 Кбит (обеспечивают почти все USB-232 преобразователи). Я вроде ясно написал, что из прерывания I2C нужно передавать два одинаковых потока, один на I2C, другой на UART.
ren5
все очень просто, http://www.monitorlab.ru/port3.shtml
здесь есть и схема и программа
rezident
Цитата(ren5 @ Nov 17 2009, 01:29) *
все очень просто, http://www.monitorlab.ru/port3.shtml
здесь есть и схема и программа
Поскольку я непосредственно участвовал в разработке и тестировании этого устройства, то немного прокомментирую. Во-первых, работает Port3 только с I2C до 100кГц (ограничение PCF8584). Во-вторых, поскольку я уже давно не работаю в сервисе, да и Sergant (Сергей Полежаев) еще раньше меня ушел в другую область занятий, то к сожалению, этот проект так и остался сырым изделием sad.gif Затачивался он на "подглядывание" за I2C в мониторах, для программирования и восстановление прошивок EEPROM (I2C и Microwire) в них же. Тестировалось это все еще на Win95. Как-то худо-бедно потом прикрутили для WinNT 4. Были какие-то нюансы с LPT: режимы EPP 1.7 и EPP1.9 чем-то там отличаются и Port3 работал не с любыми I/O чипсетами. В общем попробовать повторить можно, но не стоит возлагать больших надежд на Port3.
P.S. Исходники (естественно) утеряны за давностью лет. laughing.gif
Mik174
Посмотрите на логический анализатор по ссылке:
http://minila.sourceforge.net/sw/sw.php?id=sw
В том числе заявлена возможность декодировать i2c:
"Description: Complete program including communication with miniLA, waveform/text viewer, full triggering support, declaration of buses, protocol decoders (RS-232, I2C, SPI, PWM) and more."
Открытый проект - имеется вся информация для того, чтобы изготовить его самостоятельно.
Лично я для себя такой собираюсь изготовить - уже заказал плату для него smile.gif
rezident
Цитата(Mik174 @ Nov 17 2009, 02:41) *
Лично я для себя такой собираюсь изготовить - уже заказал плату для него smile.gif
Надеюсь для варианта с USB-интерфейсом? wink.gif Если бы я разрабатывал Port3 сейчас, то не стал бы связываться с LPT.
Mik174
Цитата(rezident @ Nov 17 2009, 02:03) *
Надеюсь для варианта с USB-интерфейсом? wink.gif Если бы я разрабатывал Port3 сейчас, то не стал бы связываться с LPT.


Пока вариант с LPT, но в дальнейшем еще сделаю платку с куском схемы для подключения по USB.
Когда все расположено в корпусе, несущественно, на одной или двух платах расположена схема прибора.

Причина - мне показалось что разведенная плата с LPT более "красиво" сделана, чем присланная кем-то плата где совмещены обе части.
В авторском варианте линии между памятью и ПЛИС более короткие, их длины более равномерные.
Так как цель - сделать себе прибор для его применения в работе, то мне показалось более правильным повторить авторский вариант, тем более, что наличие второй ревизии платы и нескольких ревизий программы для ПК дает основания надеяться, что такая связка достаточно неплохо протестирована и пригодна для использования.
Ozelot
Посмотрите по ссылке: http://www.evodbg.com/index.php?option=com...79&Itemid=1
backa
Цитата(rezident @ Nov 17 2009, 02:03) *
Надеюсь для варианта с USB-интерфейсом? wink.gif Если бы я разрабатывал Port3 сейчас, то не стал бы связываться с LPT.

Рекомендую посмотреть в сторону USBee - на KAZUSе - хит сезона...
ecos-rtos_in_ua
Цитата(Ozelot @ Nov 17 2009, 11:27) *
Посмотрите по ссылке: http://www.evodbg.com/index.php?option=com...79&Itemid=1

А прошивка и софт к ней есть?
Ozelot
Цитата(ecos-rtos_in_ua @ Nov 20 2009, 22:42) *
А прошивка и софт к ней есть?


Читайте по ссылке - там все написано
ecos-rtos_in_ua
Цитата(Ozelot @ Nov 23 2009, 13:18) *
Читайте по ссылке - там все написано

Читал, но про софт там было только упоминание о названии программы. Пришлось писать автору статьи. Так что софт берем с http://www.saleae.com/logic/. Про прошивку, каюсь, не доглядел (слишком маленький код smile.gif )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.