
- •Организация микропроцессора
- •Организация входов-выходов
- •Регистры входов-выходов
- •Приборный интерфейс i2c
- •Состояние линии
- •Синхронизация
- •Форматы и режимы
- •Арбитраж
- •Организация контроллера
- •Тактовое питание
- •Регистры i2c
- •Векторы прерываний
- •Регистры адреса и масок
- •Регистры статусов
- •Регистры приема-передачи
- •Регистры режима
- •Режим цифровой петли
- •Другие регистры
- •Регистры идентификации
- •Аппаратурный сброс
- •Инициализация ведущего
- •Инициализация ведомого
Инициализация ведомого
Сброс I2C PRCR[I2C_RST]=1 и ожидание нуля.
Подача тактового питания PCGCR1[I2CCG]=1.
Запрет работы контроллера ICMDR[IRS]=0.
Задание разрядности адреса ICMDR[XA]=x.
Задание собственного адреса ICOAR.
Разрешение прерываний в ICIMR:
– AAS=1 (нулевой адрес или адрес ведомого);
– ICRRDY=1 (готовность приемника);
– ICXRDY=1 (готовность передатчика);
– SCD=1 (обнаружение STOP).
Настройка прескалера ICPSC (6,7-13,1 МГц).
Тактовая частота в ICCLKL и ICCLKH (400 кГц).
Конфигурирование ICMDR:
– MST=0 (ведомое устройство);
– DLB=0 (запрет цифровой петли);
– RM=1 (поддержка режима повторения);
– STP=0 (запрет обнаружения STOP );
– STT=0 (запрет обнаружения START);
– BC=0 (число бит в посылке 8).
Разрешение работы контроллера ICMDR[IRS]=1.
Очистка флагов прерываний ICSTR=ICSTR
Очистка вектора ICIVR=0 пока ICIVR!=0.
Разрешение обнаружения START ICMDR[STT]=1.
Ожидание приема или передачи данных:
– ICSTR[ICRRDY]==0 или ICSTR[ICXRDY] (опрос);
– ICIVR=={ICRINT, ICXINT, STOP} (прерывание).
Повторение ожидания приема или передачи.
Завершение обмена, если STOP.
Запрет работы устройства ICMDR[IRS]=0.
Снятие тактового питания PCGCR1[I2CCG]=0.