Перейти к содержанию
    

C672x I2C Slave Interrupt Polling - есть ли у кого пример?

Нет ли у кого примера реализации на TMS320C672x I2C в слейве при обработке через прерывание. В фирменной документации SPRU877e есть "Figure 26. Using Interrupts for Slave-Transmitter/Receiver Operation, Repeat Mode (RM = 1)" где разрисована очень простая схема. Но что-то не работает. Чувствую, что у ТИ, как всегда, опущены мелкие важности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет ли у кого примера реализации на TMS320C672x I2C в слейве при обработке через прерывание. В фирменной документации SPRU877e есть "Figure 26. Using Interrupts for Slave-Transmitter/Receiver Operation, Repeat Mode (RM = 1)" где разрисована очень простая схема. Но что-то не работает. Чувствую, что у ТИ, как всегда, опущены мелкие важности.

На сайте Spectrum Digital были примеры для EVM DM6437 (и для других) по использованию I2C, только в режиме мастера. Слейв уж очень необычно, не аудиочип же мастер? :)

 

OAR проинициализирован? Адрес сдвигается на бит в левую сторону, 0х10 - будет 0х20 или что-то в этом роде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я использую два канала I2C. Один в мастере, смотрит на подконтрольные устройства. Он работает бит поллингом и хорошо. А второй смотрит на ARM процессор, который всем рулит. Вот для него и потребовалось.

В документации приведена такая простая схема его обслуживания, но что-то не достказано. Мастер и слейв по реализации очень сильно отличаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

второй смотрит на ARM процессор, который всем рулит. Вот для него и потребовалось.
Понятно. Можно ещё посмотреть описание контроллера I2C для DM6437/DM6446/DM6467 (SPRU991/SPRUE27/SPRUER0), в этих документах расписан алгоритм в режиме слейв. SPRU991C.pdf - 2.11.2 Configuring the I2C in Slave Receiver and Transmitter Mode.

 

Главное - это правильный адрес в OAR, и настройка контроллера для начала работы всегда режим слейв-ресивер. Получив команду от мастера (AAS) в ISR принимается решение, что делать - принимать данные - тогда настройки режима ресивера остаются, данные принимаются, иначе если команда на предачу данных, контроллер перепрограммируется в режим трансмиттера и данные передаются мастеру.

 

В обоих случаях ISR должна сообщить программе, что запрошена передача данных по IIC - флажком или семафором.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо, Андрей за советы. Проблема решилась - был непропай в ноге контроллера и SCL не доходил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решилась - был непропай в ноге контроллера и SCL не доходил
:) Спасибо, и я теперь повеселился :)

(А сколько раз себе говорил - спроси сначала "ток включили?")

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...