Freescale I2C Driver
Итак, продолжаем эксперименты с собранным ранее (который, как вы помните, у нас реализован на ATTiny2313). В этой статье мы рассмотрим полностью программную реализацию режима I2C-Slave, который позволит нашему девайсу из терминальной программы персонального компьютера прикидываться любым Slave-устройством, а также просто подглядывать за обменом данными на шине I2C (то есть работать как сниффер). Прога, как всегда, на асме, в конце статьи, как всегда, исходники (с комментариями) и прошивка.
Для создания драйвера в ядре Linux предусмотрены вспомогательные макросы. Если Вам не нужно ничего выполнять при инициализации модуля, можно воспользоваться макросом module_i2c_driver. #define module_i2c_driver(__i2c_driver). Что использовать решать Вам, я воспользуюсь макросом module_i2c_driver. Как мы помним у меня в качестве подопытного часы ds1307. В Linux уже есть драйвер для них, но мы же не ищем легких путей!? Freescale является лидером на рынке 32-раз. Драйвер сенсорных клавиш. Дополнительная информация: www.freescale.com/Kinetis/Eseries. Производители: Freescale, TI, Intel, Atmel, Элвис Процессорные. Полноценный драйвер. Включение питания.
Протокол обмена шлюза с компьютером состоит из однобайтных сообщений, в которых передаются служебные (команды шлюзу - что нужно делать или сообщения компьютеру о том, что сделано) или информационные данные (информация, которую нужно передать или которая получена по шине I2C). 1) Несмотря на то, что шина I2C позволяет slave-устройствам растягивать обмен, удерживая линию Clock на низком уровне, необходимо понимать, что для большинства master-устройств неприемлемо ждать ответа до бесконечности (хотя есть и такие), поскольку им, в большинстве случаев, необходимо решать ещё и другие задачи (помимо обмена данными со slave-устройствами). Для нас это выражается в том, что мы не можем три часа сидеть перед терминалкой и думать, - что же мы хотим отправить нашему мастеру. Время ожидания у всех мастер-устройств разное, но оно практически у всех есть (у тех, что я видел, оно было порядка 0,5-1,5 секунд). По истечении этого времени, мастер, не дождавшись ответа от slave-устройства, вне зависимости от того, продолжаем ли мы удерживать clock на низком уровне, решит, что с линией что-то не так и прекратит обмен. Единственная возможность избежать такого развития событий - это автоматизировать ответы компьютера, то есть написать на компьютере полноценный эмулятор slave-устройства (чтобы не вы вручную из терминалки посылали мастеру нужные байты и подтверждения, а это это автоматически делал сам компьютер).
2) Как сделать, чтобы наш девайс работал в качестве I2C-сниффера? Да очень просто. I2C-cниффер должен всегда читать байт c шины (и никогда не должен отправлять), а после чтения байта он всегда должен посылать на шину NoAck.
Другими словами, он никогда и ни при каких условиях не должен трогать линию Data (ему можно только читать с неё данные, чтобы никому не мешать, но зато читать он должен всё, не зависимо от направления передачи данных). Ну и, естественно, ту часть программы, которая реинициализирует шлюз в случае посылки NoAck после принятия от мастера первого после старт-условия байта, придётся удалить, поскольку снифферу должно быть абсолютно пофиг на адрес устройства, к которому обращается мастер (то есть, опять же, читать он должен весь обмен по шине, не зависимо от адреса). 3) Да и ещё одно, чуть не забыл про скорость. С кварцем 20 МГц эта программа позволяет шлюзу общаться с мастер-устройствами, работающими на скорости до 575 кбит/с.
Естественно, скорость работы со шлюзом будет меньше, поскольку шлюз будет растягивать обмен (удерживая clock на низком уровне, пока не сделает все свои дела), здесь речь не об этом, а о том, что если мастер будет пытаться работать на скорости более 575 кбит/с, то шлюз просто не будет успевать ничего удержать и принять. Источник: Возможно, Вам это будет интересно.
08:50 Могу лишь сказать что 'колбасить' для меня -это не имея сервиса (и не зная когда его будешь иметь) с помощью подключения к шине в режиме реального времени пытаться включить SECAM/DK имея для этого естесвенно 1.Компьютер 2.Переходничек. Мощное' программное обеспечение для этих целей.
Кстати в современных 100HZ TV уже предусмотрен коннектор именно для мониторинга аппарата Вот только программное обеспечение для них так просто не валяется А иногда продефектовать такой аппарат 'простым дедовским' способом отнимает очень много времени Это хорошо когда все поломки знакомы,но с новыми тв сейчас проблемы частенько бывают нетипичные. Вот такие мысли вслух. 23:20 Я так понимаю-при наличии специального программного обеспечения заточенного под конкретные цели все проблемы не будут казаться такими страшными. Я считаю что телевизор, каким бы он совершенным не был,но при помощи компа потратив определенное количество времени, можно 'разложить по полочкам' А тему я открыл только для обмена мнениями и если есть какие то наработки-проанализировать их и сделать определенные выводы. Если одному не под силу определенные проблемы решить, то уж навалившись всем ремонтным миром и этот орешек расколится. И вообще хотелось бы понять-меня отговаривают от этой темы чисто с технической точки зрения или уже кто то безуспешно определенное время уже безрезультатно потратил?
09:03 Вот вся загвоздка и заключается в отсутствии свободного времени -гении они много достигают в том возрасте когда их родители кормят. А обычные люди к которым бы я хотел себя причислить они все время делают что то не так и не вовремя.
Когда 'обрастаешь' семьёй и работа никаким образом не связана с исследованиями (то есть зарплату за это не получишь),то времени на это катастрофически не хватает. Даже в иннете посидеть пару часов в день для многих это роскошь. Вот поэтому и хочется использовать чужой опыт. Постараюсь поискать круглые углы в квадратной шине. 09:11 PAYALNIK Цитата: Достаточно вставить NVM в программатор,а затем в телевизор.
Это же сколько раз нужно вставлять, чтобы, например, изменить размер, не имея доступа к сервисному режиму и не зная, в какой ячейке это хранится? Цитата: Каким же это способом в режиме реального времени вы собираетесь включать СЕКАМ в телевизоре?Для начала было бы неплохо спросить у центрального процессора поддерживает он или нет MultiMaster протокол?
Во-вторых: в режиме реального времени не то что колбасить,а просто нормально анализировать у Вашего компа скорости не хватит. Гость Цитата: Ну ну хотелось бы посмотореть как это у вас получится. Это надо знать адреса всех слейвов и их регистров и в потоке непрерывных данных это всё пытаться отлавливать.
Шина I2C - это двунаправленная асинхронная шина с последовательной передачей данных и, соответственно, обладает достаточно НИЗКОЙ пропускной способностью.Ограничения только по скорости работы порта ввода/вывода компьютера. Я думаю, что монитор шины, работающий по USB, решит эту проблему. Режим multi-master предполагает работу нескольких master-устройств по определенному алгоритму для исключения шинных конфликтов. Это реализованно программно в устройстве 'PORT3'. Он отслеживает все происходящее на шине, НЕ МЕШАЯ ее работе, а данные передает в то время, когда шина нажодится в режиме 'ожидания', а потом опять освобождает ее.
При включении ТВ после системного сброса происходит считывание констант из м/сх памяти и занесение их в соответствующие регистры процессора. После этого шина находится в режиме 'ожидания' до появления каких-либо команд со стороны пользователя.
Например, при переключении канала в регистр заносится код номера программы, из памяти считывается несколько байт, соответствующих параметрам настройки этой программы. В памяти в определенной ячейке пропишется значение, соответствующее включенной в настоящий момент программе. То же самое происходит при изменении громкости, яркости и т.д., то есть изменяются значения регистров, значения ячеек памяти, и после очередного включения ТВ он работает с данными, внесенными пользователем.
Согласно спецификации шины, каждому устройству назначен определенный адрес. Он задается при разработке м/схемы и не может быть изменен в дальнейшем. Сведения о slave-адресах можно посмотреть в 'Assigned I2C-BUS addresses General, IC12, Philips, 1997.' А также в даташите на м/схему. Как включить SECAM? Например, видеопроцессор TDA8842. Адрес устройства 8А.Субадреса регистров 00 - 1В.
В регистр с субадресом 01 заносим значение ххххх111- принудительно SECAM, либо ххххх000 - выбор системы из пользовательского меню. Регистр 09, младшие 5 бит - размер по вертикали. Меняя значение в этом регистре при помощи PORT3, видим на экране ТВ изменение размера. То есть, изменяя значения регистров монитором непосредственно в устройстве, мы производим действия, аналогичные действиям, производимым в сервисном режиме ТВ, в режиме такого же реального времени. Так что, kulek, не нужно ничего изобретать, все уже есть. Осталось собрать PORT3 или IIClabium, подключиться к компьютеру и к ТВ, изучить I2C и даташит на используемую м/схему.
14:12 Что же наконец agal без всяких амбиций отразил истинное положение вещей в данной теме. Еслс честно то вообще имея минимум информации по работе I2C все равно понятно что общение центрального проца с другими микросхемами 'cидящими' на шине просходит в определенном адресном 'поле' и адресное поле определенной микросхемы оно одно и то же в не зависимости с каким центральным процем она работает. Я не могу брать на себя смелость утверждать что старший разряд обращения в разных тв одинаков-наоборот я думаю он как раз и разный,но. Это не столь важно работая в режиме реального времени можно быстренько определиться 'А где же тут кто живет?'
ВОТ С вхождением в сервис мне вообще то совсем ничего не понятно-в некоторых тв можно прописать во FLASH в определенном месте кое что и аппарат при включении уже будет в сервисе и пока это не удалишь он в сервис и будет включаться. ЭТО конечно исключение из правил,но.есть о чем подумать Еще В Сервис многие знают я надеюсь в одном и том же аппарате можно войти разными путями-ничего здесь интересного нет,НО. Вхождение в сервис(Код) все же где то должен лежать в явном виде ВОт интересно было бы послушать мысли вслух Я думаю он лежит ПЗУ-больше негде либо самого проца-если аппарат без внешнего ПЗУ Либо именно во внешнем ПЗУ,НО. ОБъем хранимой там информации велик если не сказать огромен для того чтобы его колбасить даже в режиме реального времени В КОнечном итоге вот именно это мне дествительно очень интересно потому что новые тв идут потоком а сервис на них отстает на определенное время (можно годами его ждать) С нетерпением жду посещения темы!/b Anonymous. 00:11 agal agal писал: После этого шина находится в режиме 'ожидания' до появления каких-либо команд со стороны пользователя. Например, при переключении канала в регистр заносится код номера программы, из памяти считывается несколько байт, соответствующих параметрам настройки этой программы.
ИМХО вы желаемое выдаёте за действительное или нам разные телевизоры попадаются. Возмите ЛЮБОЙ Испанский Шарп с диагональю более 54 не старше 5 лет и посмотрите что твориться на квадратной шине.
Agal писал: Сведения о slave-адресах можно посмотреть в 'Assigned I2C-BUS addresses General, IC12, Philips, 1997.' А также в даташите на м/схему. На новые видеопроцессоры полный даташит найти не так просто. Agal писал: Далее. Как включить SECAM? Например, видеопроцессор TDA8842.
Адрес устройства 8А.Субадреса регистров 00 - 1В. В регистр с субадресом 01 заносим значение ххххх111- принудительно SECAM, либо ххххх000 - выбор системы из пользовательского меню. Попрбуйте при помощи этой / / / / / информации переделать на SECAM телевизоры SHARP 63DS-03S, 70DS-03S, 70ES-05S. В них как раз TDA884Х.
Agal писал: Регистр 09, младшие 5 бит - размер по вертикали. Меняя значение в этом регистре при помощи PORT3, видим на экране ТВ изменение размера.
То есть, изменяя значения регистров монитором непосредственно в устройстве, мы производим действия, аналогичные действиям, производимым в сервисном режиме ТВ, в режиме такого же реального времени. Тут согласен, заменить пульт ДУ компьютером можно, но зачем? - AlexM Anonymous. 00:22 kulek писал: Что же наконец agal без всяких амбиций отразил истинное положение вещей в данной теме. Он отразил только свое мнение. Kulek писал: Еслс честно то вообще имея минимум информации по работе I2C все равно понятно что общение центрального проца с другими микросхемами 'cидящими' на шине просходит в определенном адресном 'поле' и адресное поле определенной микросхемы оно одно и то же в не зависимости с каким центральным процем она работает. Я не могу брать на себя смелость утверждать что старший разряд обращения в разных тв одинаков-наоборот я думаю он как раз и разный,но.
Для начала почитайте документацию на шину. Kulek писал: в определенном месте кое что и аппарат при включении уже будет в сервисеи пока это не удалишь он в сервис и будет включаться. ЭТО конечно исключение из правил,но.есть о чем подумать Еще В Сервис многие знают я надеюсь в одном и том же аппарате можно войти разными путями-ничего здесь интересного нет,НО. Вхождение в сервис(Код) все же где то должен лежать в явном виде Весьма специфическое представление о сервисном меню.
AlexM ВОт интересно было бы послушать мысли вслух Я думаю он лежит ПЗУ-больше негде либо самого проца-если аппарат без внешнего ПЗУ Либо именно во внешнем ПЗУ,НО. ОБъем хранимой там информации велик если не сказать огромен для того чтобы его колбасить даже в режиме реального времени В КОнечном итоге вот именно это мне дествительно очень интересно потому что новые тв идут потоком а сервис на них отстает на определенное время (можно годами его ждать) С нетерпением жду посещения темы!/b/quote PAYALNIK.
06:24 AlexM Цитата: ИМХО вы желаемое выдаёте за действительное или нам разные телевизоры попадаются. Возмите ЛЮБОЙ Испанский Шарп с диагональю более 54 не старше 5 лет и посмотрите что твориться на квадратной шине. Скорее второе. Значит там постоянно рефреш. Цитата: На новые видеопроцессоры полный даташит найти не так просто. С этим соглашусь.
Цитата: Попрбуйте при помощи этой / / / / / информации переделать на SECAM телевизоры SHARP 63DS-03S, 70DS-03S, 70ES-05S. В них как раз TDA884Х. Я говорил не переделать, а включить. Александр, из Ваших же уст постоянно звучит:'После замены м/сх и фильтров необходимо в памяти в ячейке такой-то изменить значение на такое-то'. Изменение регистра с ххххх010 на ххххх111, например, равносильно изменению содержимого ячейки памяти с последующим ее чтением. Знаки х означают, что старшие биты остаются без изменения.
Примеры показывают как заставить мигать кнопку. Элементы управления Windows:: Visual Basic.NET. + Контроль подключения к интернет. Готовые примеры кодов: как небольшие примерчики, показывающие, как сделать что-то на VB, так и полномасштабные приложения с исходным кодом. Vb net в примерах.
Цитата: Тут согласен, заменить пульт ДУ компьютером можно, но зачем? Использование PORT3 целесообразно при невозможности по каким-либо причинам входа в сервисный режим. PAYALNIK Цитата: Вы сами включали где-нибудь СЕКАМ в работающем телевизоре при помощи Вашего монитора или как там его?
Монитор не мой, у него есть автор - sergant. А Вы изменяли опции в сервисном режиме, чтобы включить SECAM? С монитором - тот же результат. Цитата: Как вы собираетесь анализировать например LOEWE PLANUS в котором я насчитал 3 IIC-шины? Три шины работают с разными устройствами. Подключайтесь к нужной. Кстати, есть такое понятие, как останов процессора.
С освобождением шины. Цитата: Сдается мне,что Вы что-то не дочитали или у Вас несколько упрощенное понятие о принципах работы шины? Объясните более детально. Еще раз повторюсь, монитор используется при невозможности входа в сервисный режим.
21:18 agal agal писал: Значит там постоянно рефреш. Можно и так назвать, только что это меняет. Цитата: Я говорил не переделать, а включить.
Эксплуатировать ТВ вместе с компьютером зашибись решение проблем переключения стандартов цвета. Цитата: Александр, из Ваших же уст постоянно звучит:'После замены м/сх и фильтров необходимо в памяти в ячейке такой-то изменить значение на такое-то'. Изменение регистра с ххххх010 на ххххх111, например, равносильно изменению содержимого ячейки памяти с последующим ее чтением. Знаки х означают, что старшие биты остаются без изменения.
Уже писал, проверьте эту, вашу версию на упомянутых мной ТВ. Перечитайте тему 'SHARP 54AT-15S - Цвет'. Человек даже поленился разобраться поддерживает ли видеопроц SECAM, фильтр на плате найти не может, а вы предлагаете для решения задачи подробно разобраться в регистрах видеопроцесора, протоколе шины, сделать девайс, анализировать лог. Нет, думаю, новым мастерам поможет только софт с меню: ОТРЕМОНТИРОВАТЬ ТВ - Yes / No Включить SECAM - Yes / No Включить DK звук - Yes / No Цитата: Три шины работают с разными устройствами.
Подключайтесь к нужной. Кстати, есть такое понятие, как останов процессора. С освобождением шины. Обьясните, пожайлуста, ну ЗАЧЕМ. Как это поможет быстрее или лучше отремонтировать ТВ. AlexM Andrew. 23:06 Не понимаю о чем спор?
Практический интерес в том, что-бы знать абсолютно точно как центральный процессор инициализирует всю периферию устройств со Slave адресами. Подключив I2C - монитор к телевизору можно анализировать управление всеми органами телеприемника, например слетевшую прошивку гораздо проще дефектовать по отсутствующим данным на шине.
А что касается быстродействия, то его вполне достаточно. А СЕКАМ не надо включать дистанционно, прочитав шину вы без труда узнаете включает его процессор или нет, нужно ли менять при этом данные во флэше. Лично я испытал IICLabium, подключил его к SHARP 70CS03S, и прочитал шину, расшифровал данные, в режиме реал-тайм просмотрел отработку всех функций, и убедился в диагнозе. Так же с помощью этой программы восстановил запоротый дамп в автомагнитоле, думаю что это только начало.!mpulse.
00:08 Запись в регистр видеоконтроллера любого необходимого значения будет бессмысленной в случае с постоянным циклическим обновлением (процессор просто 'сбрасывает' весь буфер, отведенный для хранения опций и настроек которые могут быть подвергнуты оперативному изменению не зависимо от того менялись они или нет, в видеоконтроллер) и конечно, ЭТО ничего не даст, т.к. Предыдущее значение измененного регистра будет переписано в следующем цикле. Возможно, и скорее всего визуально даже не будет возможности определить а включался ли SECAM вообще, поскольку именно он взят за основу в качестве примера. В этом случае нужен уже не просто мониторинг шины с возможностью единичной записью в выбранный регистр необходимого байта с клавиатуры, а перехват шины с корректировкой в нужных 'местах', а это, возможно, не говорю о практичности и сложности, если только совсем тупиковая ситуация. Мне приходилось делать подобное под конкретную ситуацию, без компа и даташита на микросхемы, после полного анализа всех регистров микроконтроллера врезки и действий мастера. Вплоть до смены адреса чипа в потоке. SDA9488 имеет два аппаратно выбираемых адреса D6 или DE, SDA9088 - адрес 2E, так вот при смене пришлось перехватывать и конвертировать все действия мастера относящиеся к данной микросхеме, был доволен такой идеей и результатом.
Но и это не дает однозначного ответа нужны ли такие проекты как PORT3 и IICLabium. К сожалению хорошо не знаком с этими проектами и их возможностями, поэтому вопросы о практичности следовало бы задавать авторам этих проектов. Я лично считаю, что нужны оба проекта, и на мой взгляд они могут быть полезными (хотя бы только для мониторинга) и имеют право на существование.
По поводу: Цитата: Нет, думаю, новым мастерам поможет только софт с меню: ОТРЕМОНТИРОВАТЬ ТВ - Yes / No Включить SECAM - Yes / No Включить DK звук - Yes / No Так это проблема ТАКИХ мастеров, которым уже ничего другое не поможет. Agal Цитата: есть такое понятие, как останов процессора. С освобождением шины. Понятие как бы известное, но телевизионные процессоры все ли согласны с таким понятием? Сомневаюсь что все.
Теперь уже встречаются аппараты с постоянно 'живой' шиной даже в дежурном режиме. Интересно, что процессор делает в этом случае, наверное, сторожит шину, вдруг микросхемы разбегутся как тараканы. Будет время, постараюсь выяснить. 00:22 Andrew писал: Не понимаю о чем спор? Практический интерес в том, что-бы знать абсолютно точно как центральный процессор инициализирует всю периферию устройств со Slave адресами. Подключив I2C - монитор к телевизору можно анализировать управление всеми органами телеприемника Вы часто встречаете дефекты которые требуют такой анализ? Цитата: например слетевшую прошивку гораздо проще дефектовать по отсутствующим данным на шине.
Слетевшую прошивку проще дефектовать по OSD графике. Не факт что данные будут отсутствовать. Да, и очень многие ТВ позволяют произвести инициализацию EEPROM. Цитата: Лично я испытал IICLabium, подключил его к SHARP 70CS03S, и прочитал шину, расшифровал данные, в режиме реал-тайм просмотрел отработку всех функций, и убедился в диагнозе.
Так же с помощью этой программы восстановил запоротый дамп в автомагнитоле, думаю что это только начало. Отремонтирвал несколько сотен ТВ этой модели, потребности в мониторе IIC не возникло. Хотя есть IICLabium и PORT3 и Филипс итерфейс. AlexM PAYALNIK. 01:13 Цитата: Вы вешались на шину вторым мастером или как-бы делали 'врезку-конвертер'команд для данного чипа Да, именно врезку, уже после того как изучил и понял что и как происходит, но это скорее было временным увлечением и больше в качестве познания. Сейчас бы этим точно уж не стал бы заниматься.
Цитата: Под рукой лежит анализатор шины польского производства.Автономный device на батарейке,с LCD Примерно такое мне и приходилось создавать (как смог, конечно) для всего этого не особо оттачивая и совершенствуя прибор. Поэтому скорости хватало вполне. По поводу компьютерных проектов я уже сказал, что сам пока не знаком, но думаю все-таки пользу извлечь можно и не малую и не обязательно в TV. 01:38 Кхе, кхе. Ну, наверно, пора сказать и мне, как автору IICLabium.
Проект этот сырой, но рабочий. Мониторить позволяет. Даже фильтровать на лету опрашиваемые девайсы. По скорости - стандартная скорость шины 100 Кбит/с, повышенная 400 квит/с. Отсюда следует, что мониторить налету на компе можно: на СОМ порту с трудом, так как макс. Скорость 115 Кбит/с, а передавать надо еще и служебную инфу; на LPT - запросто (скорость до 500-700 КБайт/с); на USB - даже на медленном 1.5 Мбит/с.
IICLabium сделал на Сом порт потому, что, на мой взгляд, само устройство получилось намного проще Port3 (вообще я его давно собрал, а когда появился Port3, я и свой девайс опубликовал). Идея проекта была – именно: регулировать сервисные настройки прямо в телевизоре. Но: - оказалось, что далеко не во всех телевизорах происходит правильный останов процессора. При останове процессора телевизор переходит в дежурку Чего уж тут регулировать. Значит, надо искать способ включения питания, инициализировать подчиненные девайсы и т.д.
Тогда вопрос - зачем все эти проблемы? - если питание не выключается, то можно попробовать порегулировать какой-нибудь девайс (у меня в проге есть даже слайдер, который можно мышкой тягать).
Очень хорошо! Добивался я такого.
А что дальше? А дальше надо знать, куда девать это значение. А знает это проц!
Теперь надо мониторить шину и искать, откуда берутся эти значения из памяти, а потом туда писать новые. Опять проблемы! По поводу Секам, раз уж об этом заговорили. Да, мы можем из Datasheet на конкретный Jungle (видеопроц), узнать какой регистр отвечает за опознавание цвета. Ну и что дальше? Опять-таки, а куда его девать? Проц при запуске считывает до 40-50 ячеек памяти.
Пусть 10-15 - это регулировки геометрии, еще 5-10 - на громкость, яркость, канал и т.д. Остается от 15 до 25 ячеек неизвестного назначения.
Конечно, поиск уже сокращен до минимума (это не в 2000 искать), но это все равно многовато с учетом того, что за СЕКАМ может отвечать один бит. А есть и еще подводные камни, которые резко осложняют анализ. Так, в одном телеке видел такую картину: при запуске происходит считывание до 100 ячеек из памяти, а потом проц начинает инициализировать девайсы.
При этом данные для девайсов имеют очень слабое сходство с тем, что было считано из памяти. И самый плохой случай - многошинные ящики.
Тут надо уже монитор с возможностью анализа их всех сразу, иначе найти хоть какое-то соответствие очень тяжело. Память сидит на одной шине, тюнер на другой, видеопроц на третьей. Самый плохой вариант. В общем, для ремонта телевизоров такие устройства не совсем подходят. Вернее, они подходят, но без информации от производителя они мало применимы. Не забывайте, что сейчас почти у всех телевизоров есть сервисный разъем. Значит, что-то производитель хотел через него делать!
Ему хорошо - он ЗНАЕТ, что он хотел, и соответственно может. После печальной судьбы в телевизорах, оказалось, что монитор шины ОЧЕНЬ упрощает жизнь раскодировщикам автомагнитол с IIC шиной. На шину вешается монитор, включается магнитола, из лога выбирается код и тут же прошивается в память. Очень удобно. По моему мнению, такое устройство стоит собирать людям, которые хотят вникнуть в проблему шины в телевизорах или раскодировщикам. Ну и всем остальным, в крайнем случае, когда нет возможности войти в сервис подровнять геометрию, а сделать тв надо. Еще можно использовать такие устройства для прошивки памяти прямо в телеке в StandBy режиме, но с этой задачей прекрасно справляется и любой программатор (об этом уже писалось).
PAYALNIK, Не стоит в таком тоне говорить о том, чего Вы не собирали и не видели как работает. 01:42 У меня слава Богу или наоборот дело закончилось размышлениями над проектом.Однако знания полученные голову к земле сильнее не тянут.По крайней мере кое-какая польза даже в ремонте имеется. Когда сам что-то сделаешь,напишешь программу на какой-нибудь MCU,легче понять что-то чужое.Когда я говорил о скоростях,то имел в виду,что у железа конечно скорости хватает.Но как я понял в том проекте они железо минимизировали,а переложили все на комп. Если делать красивый мониторинг с автоматическим определением device ов,кто куда что пишет или читает,вплоть до названий регистров, то в реальном времени скорости не хватит.Да это в принципе и не нужно. 01:50 PAYALNIK, специально для Вас пример лога режима 'поиск станции' телевизора Sharp (модель к сожалению не записана). Это к разговору о 0 и 1 и быстродействии. Учтите, что данные в СОМ порт передаются именно в текстовом формате.
02:56 Пожалуйста не надо на меня сильно обижаться.Ведь это не я собирался Вашим монитором 'колбасить'телевизоры.Просто надо трезво оценивать какие вещи в проекте будут реально и универсально работать?На мой взгляд пытаться с помощью монитора что-либо делать в рабочем телевизоре занятие безсмысленное.Отсюда требование к монитору работать в реальном времени как бы отпадает. На чем тогда стоит остановиться? 1)Чтобы четко и без сбоев работала система.2)Чтобы монитор мог определять состояние шины(нет ли неисправности на шине,тормозится ли шина slave ом и т.д). 3)Чтобы монитор мог распозновать различные типы трансферта данных. 4)Чтобы монитор в удобоваримом виде,а не в том который Вы представили отображал происходящее на шине(для этого предстоит создать капитальную базу данных device ов с их адресами sub адресами и способами получения и передачи данных).Вот и все требования реально мыслящего человека к Вашему проекту. И никто от Вас не требует совершать какие-то чудеса типа нажал кнопку-вот вам СЕКАМ.А вся ирония больше относится к 'профессионалам',у которых шина освобождается или есть режимы ожидания пользователя.Можете конечно не считаться с моим мнением, но по крайней мере я как потребитель изложил свои пожелания и то, я хотел бы иметь как пользователь.
03:30 PAYALNIK, Да я на Вас как-то не обижался, и даже не сильно не обижался. Кто-то просто не посмотрев даже на девайс сказал, что быстродействия не хватит и нолики и единички будут. Так я показал, что без ноликов обходимся. И хорошо что Цитата: никто от Вас не требует совершать какие-то чудеса типа нажал кнопку-вот вам СЕКАМ а то я уже испугался и стал datasheets на видеопроцы в одну папочку складывать.
А тут еще Цитата: 3)Чтобы монитор мог распозновать различные типы трансферта данных. Это, извините, куда пойти?
Да не пойду я! А еще тут Цитата: Вот и все требования реально мыслящего человека к Вашему проекту. Вы уж меня, грешного, извините, но я Вам ничем не обязан, чтобы Вы от меня чего-то требовали. Ну неужели нельзя посмотреть, вникнуть, а потом уже заявления делать.
Мужики, ну неужели я такая сволочь, чтоб со мной так?. И за Serganta (Port3) обидно. 11:46 Kondor писал: Да я на Вас как-то не обижался, и даже не сильно не обижался. Кто-то просто не посмотрев даже на девайс сказал, что быстродействия не хватит и нолики и единички будут. Так я показал, что без ноликов обходимся.
Kondor писал: Мужики, ну неужели я такая сволочь, чтоб со мной так?. И за Serganta (Port3) обидно. Cаша, я нигде не писал, что программы плохие, только выражал сомнения в целесообразности их использования для ремонта современных ТВ.
Но всё равно, извини, если где-то мои высказывания показались не корректными. С Уважением, ALexM. 12:26 PAYALNIK Судя по Цитата: Если делать красивый мониторинг с автоматическим определением device ов,кто куда что пишет или читает, Ваш Цитата: анализатор шины польского производства.Автономный device на батарейке,с LCD. Этого не делает.
Соглашусь с Kondor, что Цитата: неужели нельзя посмотреть, вникнуть, а потом уже заявления делать. PORT3 представляет информацию в следующем виде(цветом выделил для наглядности): W A0 00 R A1 92 21 0D 09 1F 1B; W 8A 24 00; Процессор обращается к устройству А0 и с адреса 00 считывает значения 92 21 0D 09 1F 1B. Далее в устройство 8А по адресу 24 записывает значение 00.
И что-то не услышал я от Вас ни одной вразумительной фразы о работе шины. Объясните мне, как называется состояние шины, когда обе линии установлены '1'??? PS По поводу 'режима ожидания пользователя' - не нужно выкидывать слова из моих фраз, смысл искажаете.
23:59 kulek писал: неужели свет клином сошелся на PCF8584? И про USB хотелось бы побольше узнать есть ли уже какие то конкретные решения. Тут не совсем понял что имелось ввиду про 8584, в моем проекте ее нет. По возможностям USB, конечно, превосходит все остальные порты у компа, но именно с этим связаны и проблемы с ним. Протокол намного сложнее СОМ порта, не говоря уже о LPT. Писать программу на комп с использованием USB в идеале надо писать драйвер для своего устройства USB. Проще переточить уже имеющийся драйвер, но с этом тоже надо разбираться.
Пока очень мало микроконтроллеров с аппаратной поддержкой USB, а писать самому программный протокол USB, ну это вообще высший пилотаж. Все это решаемо, но требует одного - времени, а его то как раз и нет. Возможно кто-то нашел или найдет готовое решение проблемы, но пока лично мои поиски на эту тему в Инете ничего не принесли. И наконец, а надо ли? Я уже излагал свои мысли на эту тему. Я считаю, что использование монитора шины для ремонта телевизоров нецелесообразно.
Лично я своим устройством пользуюсь сейчас редко. В крайних случаях. Было пару раз, что надо подправить геометрию, а сервисного пульта нет.
13:50 Реальные примеры использования шины.В 100 Гц Грундиках пока проц не опросит по 20 раз каждую микросхему он дальше не сдвинется.Если какая-нибудь микр. По шине не отвечает он стоит и опрашивает ее до потери пульса.Можно по очереди менять все микросхемы ( в Фюче боксе это очень весело) а можно подключить анализатор шины и узнать кто не овечает.
Все методы надо использовать,но с умом. Когда приходят и говорят что RFT надо подключить к компютеру -слов нет, но крутой апарат легче делать с анализатором шины-если есть понятие что человек делает и что он хочет получить. 13:05 PAYALNIK писал 'для этого предстоит создать капитальную базу данных device ов с их адресами sub адресами и способами получения и передачи данных).Вот и все требования реально мыслящего человека к Вашему проекту.'
Да ничего это не даст! Представим, что по субадресу 8А необходимо изменить ячейку 01.Процессор может это сделать 2 способами - 1- выдает 8А, затем 01 и затем содержимое ячейки. 2- 8А, 00, содержимое 0 ячейки и затем содержимое 1-й ячейки, которое необходимо изменить. В первом случае это 3 байт, во втором -4. Допустимы оба обращения.
Подстраиваться под каждый телевизор? 11:32 Цитата: верхняя планка на 400 кГц 100, а реально и того меньше. Но всё равно много для звуковой карты. По теории Найквиста частота преобразования должна минимум должна вдвое превышать измеряемый сигнал. А сколько полоса в звуке???!!! Vladik, нихрена себе проще- что-то во что-то переделать, потом вычислить результат из полученной химии.А как наоборот, иммитировать работу 'мастера'.???
Подключать к квадратной шине выход на колонки??? Порт в компе работает с цифровыми данными. Задача то всего из последоательной цепи данных нарезать колбасу побайтно( и наоборот, из байтов выложить последовательную цепь).
В шине всё есть: и старт/стоп условия, и подтверждение конца передачи/приёма AlexM. 08:41 PAYALNIK, да была такая мысль - поставить параллельное ОЗУ типа РУ17 данными к пику, а на адрес навесить счетчик 561ие10, при каждой записи от пика делать инкремент адреса. Был такой компьютер 'Ириша', там по этому принципу считывалось внешнее ПЗУ.
В таком варианте 400 кГц - легко. Но, раз люди говорят, что порт3 уже все позволяет, попробую его, осталось микросхему достать.
Не получится - куплю какой-то ПИК из продвинутых, где много оперативной памяти.Не надо будет с логикой возиться - я стал ленивый, как ушел в программирование. 16:00 kulek писал: Огромная просьба-у кого есть в электронном варианте схемки для подключения к квадратной шине в режимах master and slave и все по этой теме оставляйте пож-та ссылки,всю инфу которую в результате получу-выложу в конфе. Года два назад в 'Чип&Дейл' заинтересовался интерфейсной платой К8000. (На с ходу её уже не нашел ) Пока спаял - размял пальчики, пока разобрался как программировать 'квадрат' - с удовольствием размял мозги.
(Последовательная связь с РС симулируется через LPT) Если заинтересует - могу выложить инфо по плате. Тем более, что кое-что на ней надо замутить, а значит - опят все вспоминать. 01:36 Да что тут сомневаться возьмём к примеру китайское шасси ETA-5, проц 8896, телек почти новый, слетела прошивка, экран сжался. Ну допустим виноват был сам проц, был с дефектом заводским. Заменил проц.
Память прогнал в сервисе. Но там стоял аналоговый тюнер, обычный не 2 а 3 вывода vl, vh, u, да ещё логотип сатурн на экране. Естественно его прошивали под своё на заводе. И причём память стоит не тронутая.
На заводе их подключают к сервисному разъёму (+5, sda, scl, gnd), который имеется на большинстве плат и прошивают память. Ну я поменял тюнер на родной китайский, логотип так и не удалось найти в сервисе.
В сервис мануалах шасси есть (ссылка) описание подключения к пк. Так что эта тема важна не только для секама. Даже в некоторых украинских (китайских) тв например Rainford, последние модели, вообще не подходит родной китайский пульт для этого шасси, завод перепрошил свои (пульты), опять таки не выпаивая память. Будем дальше искать способы подключения к шине.