Помогите разобраться с I2C на USI

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
Xrust
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Чт сен 26, 2013 11:31:29

Помогите разобраться с I2C на USI

Сообщение Xrust »

С праздником всех!
Задача в общих чертах такая. Есть микроконтроллер и звуковой процессор. Между собой они, заразы, втихаря по I2С что-то темное замышляют. Даташитов на процессор НЕТ. А мне во что бы то ни стало нужно им порулить. Для этого решил поснифить секретные переговоры. Уверен, что нужный мне режим МК включает, но только не тогда, когда он мне нужен. Т.е. подслушав то, что мне надо я в нужный момент вывалю это аудиопроцессору и PROFIT!!!
Для снифа решил воспользоваться Attiny85. В нем есть USI, который должен существенно облегчить дело. В теории вроде все понятно. Ловим прерывание USI_START и записываем все что слышно в память. Затем переписываем добычу в EEPROM и программатором извлекаем оттуда и анализируем.
На словах-то просто, а вот с чего начать... Голова пухнуть начала. Я так понимаю, сначала USI как-то инициировать нужно? Сказать ему, что он должен работать в режиме TWI, обработчик прерываний сделать. Или я что-то не правильно понял. Подскажите, как это в atmel studio 6 сделать. Поверните хотя бы в нужную сторону и пинка дайте. Опыта у меня еще совсем мало в МК.
Alkul
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Re: Помогите разобраться с I2C на USI

Сообщение Alkul »

Xrust писал(а):Я так понимаю, сначала USI как-то инициировать нужно?

Я думаю, что аппаратный I2C Вам ничем не поможет. Он проигнорирует все посылки, кроме бродкастовых - широковещательных с адресом 0х00, предназначенных для всех устройств на шине. А таких посылок, скорее всего, и не окажется. А целевого I2C-адреса аудиопроцессора Вы не знаете.
На Вашем месте я бы посмотрел в сторону программной реализации I2C, в инете этих библиотек полно, даже у меня где-то есть (на ассемблере). Для программного I2C подойдет абсолютно любой AVR контроллер.
Брать эти подпрограммы, править их так, чтобы убрать проверку адреса, а также дорабатывать, чтобы все "выловленные" пакеты МК отправлял туда, где Вам будет удобней их читать и анализировать.
Аватара пользователя
Xrust
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Чт сен 26, 2013 11:31:29

Re: Помогите разобраться с I2C на USI

Сообщение Xrust »

Alkul писал(а):Я думаю, что аппаратный I2C Вам ничем не поможет. Он проигнорирует все посылки, кроме бродкастовых - широковещательных с адресом 0х00

Нет, USI это не аппаратный I2C, который так же в некоторых моделях реализован. Это универсальный интерфейс. Просто часть функций - например прерывания по старту или переполнению регистра сдвига специально запилены.
Последний раз редактировалось Xrust Вс янв 12, 2014 21:35:57, всего редактировалось 1 раз.
Alkul
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Re: Помогите разобраться с I2C на USI

Сообщение Alkul »

Xrust писал(а):Нет, USI это не аппаратный I2S

Да какая разница? Вам-то придется использовать его именно в режиме I2C, коль скоро у Вас
Xrust писал(а):Между собой они, заразы, втихаря по I2С что-то темное замышляют.
Аватара пользователя
Xrust
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Чт сен 26, 2013 11:31:29

Re: Помогите разобраться с I2C на USI

Сообщение Xrust »

Так проверка адреса, о которой вы говорите, на этом уровне (USI) не реализована. Это программно делается. Единственное, он состояние старт и стоп опознает и генерирует прерывания, имеет регистры буферный и сдвиговый и счетчик для облегчения считывания данных. Это чтобы не писать все это вручную и не возиться с состоянием выводов.
Аватара пользователя
Xrust
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Чт сен 26, 2013 11:31:29

Re: Помогите разобраться с I2C на USI

Сообщение Xrust »

Нашел библиотеку для моего случая - http://code.google.com/p/codalyze/
Если чуть допилить - будет то, что надо. Но вообще-то решил отказаться от первоначальной идеи и заказал анализатор как советовали. Дело в том, что посмотрел осциллографом, что там на шине происходит, а там постоянно ураганный обмен. Так что все сложнее, чем я предполагал. Но впоследствии библиотека, думаю, пригодится.
Ответить

Вернуться в «AVR»