INT 21h

Домашняя страница самого страшного прерывания

Отладчик\программатор I2C устройств

№ 3152 В разделах: Программирование Электроника от July 30th, 2011,

Как-то мучился я с одним I2C датчиком. Пока мучился пришла в голову идея собрать специальную железку для отладки I2C устройств + софтинку для управления с компьютера по UART.

Идея такова: есть некий микроконтроллер с I2C шиной, который через UART-USB адаптер подключен к компьютеру, где специальная программа по своему протоколу дает МК команды и читает ответы. МК передает эти команды в шину для отлаживаемых I2C устройств и принимает ответы, отправляя назад в UART.

Первое, что необходимо сделать это протокол работы программы. Необходимо принять некоторые условности, описанные ниже. Протокол I2C состоит из 4 функций с кучей всевозможных состояний. Мы не будем заходить слишком глубоко и я опишу самые простые случаи.

Правила, которые мы примем для протокола:

  • данные для МК всегда передаются по 2 байта
  • в ответ на любую команду МК посылает 2 байта
  • МК выступает в роли master, а отлаживаемое устройство slave

Примем следующую таблицу передаваемых последовательностей через UART к MK:

Последовательность Функция I2C Описание
0x00 0xA0 Start и Send SLA+R\W Посылка стартовой последовательности с указанием адреса назначения
0x10 0x01 Send 0x01 Посылка байта 0x01
0x20 0x00 Receice & ACK Принять байт и сказать ACK – продолжить приём
0x20 0x01 Receice & NACK Принять байт и сказать NACK – прервать приём
0x30 0x00 Stop Стоповая последовательность. Второй байт игнорируется.

Примем следующую таблицу передаваемых последовательностей через UART к компьютеру:

Последовательность Функция I2C Описание
0x01 0x00 ACK Сказать мастеру ACK и содержимое регистра состояния
0x02 0x01 NACK Сказать мастеру NACK и содержимое регистра состояния
0x20 0x07 Send 0x07 Послать мастеру байт 0x07

Сама схема отладчика предельно проста и доходчива:

Микроконтроллер можно взять самый простой с памятью от 4 Кб и частотой не менее 12 МГц. На схеме mega48. Я использую mega8 на частоте 16 МГц. Схема подключения к USB вполне традиционная и ее можно спокойно брать из проекта подключения LCD дисплея через USB:

Далее после подключения к USB нам понадобятся всего 2 ножки: SCL, SDA. Это и есть шина I2C, куда надо подключать ваши отлаживаемые устройства (можно несколько, если их адреса разные). Не забудьте линию подтянуть к плюсу через резисторы на 4.7 кОм! На схеме это не показано!

Думаю, что идея передана достаточно подробно. Ждите удобненькую программу и прошивку для МК. К середине августа точно будет ;)

6 комментариев »

6 комментариев »

Comment by VladimirM | November 15, 2011 @ 01:08:44

А где Софтина и прошивка?

Comment by 21h | November 15, 2011 @ 01:36:25

нету пока. работы много работаю и поэтому постоянно откладываю. может к нг будет.

Comment by VladimirM | November 16, 2011 @ 02:09:38

Очень жду…

Comment by ibiza11 | December 26, 2011 @ 17:06:14

Как будет время попробую написать что нибудь. Какие требования к интерфейсу? Вопросы на мыло ibiza11@rambler.ru поскольку сюда попал из поисковика и не появлюсь больше.

Comment by МВлад | February 22, 2016 @ 23:50:54

Как-то починял магнитолку алпайн, в ней от конденсата сгнил радиомодуль. Вот там как раз помогло бы такое устройство, жаль в руках не нашлось ничего подходящего. Чем закончилась ваша история с устройством?

Comment by 21h | February 22, 2016 @ 23:58:33

собрал. лежит где-то. но десктопную прогу так и не написал. через консольку все смотрел.

Форма отправки комментария

*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть более благие цели, вы просто ответьте на мой вопрос,...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно сделать? Допустим я купил данную рацию себе, мне...
  • 21h: слушать никто не запрещает. нет закона, который запрещает слушать. те, кто говорит иначе нагло врут. а если...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng uv-5r, допустим на объект, ну или вообще...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете можно скачать инструкцию к вашей модели рации,...
  • Серегй: Добрый день! Хотелось бы задать пару вопросов по поводу раций, у Вас есть куда можно обратиться ТАТ.
  • 21h: потому, что нейросетью проще. яркость светофора меняется в зависимости от времени суток от маленькой красной...
  • Михаил: А зачем нейросеть? Почему цвет светофора определить без нейросетей?