- •Организация микропроцессора
- •Организация входов-выходов
- •Регистры входов-выходов
- •Приборный интерфейс i2c
- •Состояние линии
- •Синхронизация
- •Форматы и режимы
- •Тактовое питание
- •Арбитраж
- •Организация контроллера
- •Регистры i2c
- •Векторы прерываний
- •Регистры адреса и масок
- •Регистры статусов
- •Регистры приема-передачи
- •Регистры режима
- •Режим цифровой петли
- •Другие регистры
- •Регистры идентификации
- •Аппаратурный сброс
- •Инициализация ведущего
- •Инициализация ведомого
Регистры режима
Рис.23. – Регистры режимы
Режимов несколько (см. рис.23):
NACKMOD – No-acknowledge (NACK) mode (режим без подтверждения)
FREE – Free emulation mode (работа в точке останова эмулятора)
STT – START condition (генерация или обнаружение START)
STP – STOP condition (генерация или обнаружение STOP)
MST – Master mode (режим ведущего/ведомого (1/0) устройства)
TRX – Transmitter mode (режим передачи)
XA – Expanded address (режим расширенного адреса)
RM – Repeat mode (режим повторения, число повторений в ICCNT)
DLB – Digital loopback mode (режим цифровой петли, чтобы данные не через другое устройство передавались, а в ручную подавать данные (для тестирования))
IRS – I2C reset (разрешение работы контроллера I2C)
STB – START byte mode (режим удлиненного стартового состояния)
FDF – Free data format mode (режим свободных данных)
BC – Bit count (число бит: 0 – 8 бит, 2 – 2 бита, ..., 7 – 7 бит)
Режим цифровой петли
Рис.24. Режим цифровой петли
Другие регистры
Рис.25. Другие регистры
INTCODE – Interrupt code (код прерывания:
0 – нет прерывания;
1 – потеря арбитража (AL);
2 – нет подтверждения (NACK);
3 – готовность доступа к регистру (ARDY);
4 – готовность приемника (ICRRDY);
5 – готовность передатчика (ICXRDY);
6 – состояние STOP (SCD);
7 – адрес как у ведомого устройства (AAS))
IGNACK – Ignore NACK (игнорировать отсутствие подтверждения)
BCM – Backward compatibility (обратная совместимость – прерывание готовности передатчика генерируются при копировании ICDXR в ICXSR)
IPSC – I2C prescaler divide-down (делитель прескалера)
Регистры идентификации
Рис.26. – регистры идентификации
Class – Класс устройства (01h)
Revision – Версия (06h)
TYPE – Тип (05h)
Аппаратурный сброс
Рис.27. – регистр управления сбросом
Запись нуля без эффекта, запись единицы запускает сброс, чтение единицы сигнализирует о состоянии сброса, чтение нуля сигнализирует об окончание сброса.
Инициализация ведущего
Сброс I2C PRCR[I2C_RST]=1 и ожидание нуля.
Подача тактового питания PCGCR1[I2CCG]=1.
Запрет работы контроллера ICMDR[IRS]=0.
Конфигурирование ICMDR:
– MST=1 (ведущее устройство);
– TRX=x (прием – 0, передача – 1);
– XA=x (адресация 7 бит – 0, 10 бит – 1);
– RM=0 (запрет повторения);
– DLB=0 (запрет цифровой петли);
– FDF=0 (адресный формат);
– BC=x (число бит в посылке x).
Задание адреса ведомого ICSAR.
Настройка прескалера ICPSC (6,7-13,1 МГц).
Тактовая частота в ICCLKL и ICCLKH.
Разрешение прерываний ICIMR[ICRRDY]=1.
Очистка прерываний ICSTR=ICSTR, ICIVR=0.
Разрешение работы контроллера ICMDR[IRS]=1.
Ожидание освобождения шины ICSTR[BB]==0.
Запуск передачи (START) ICMDR[STT]=1.
Ожидание приема данных:
– ICSTR[ICRRDY]==0 (опрос);
– ICIVR==ICRINT, ICSTR[ICRRDY]=1 (прерывание готовности приемника, сброс флага прерыв.);
Чтение данных из ICDRR.
Повторение запуска передачи, ожидания приема и чтения данных.
Завершение обмена (STOP) ICMDR[STP]=1.
Запрет работы устройства ICMDR[IRS]=0.
Снятие тактового питания PCGCR1[I2CCG]=0.
