Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры v3.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.6 Mб
Скачать

16. Последовательный интерфейс i2c.

Inter Integrated Circuit (Philips)

SCL – синхронизация, SDA – прием и передача данных. Мастер и ведомый – мастер синхронизирует, начинает и прекращает передачу/прием

Все начинается со старт-бита, заканчивается стоп-битом

Старт бит – SCL=1, SDA – перепад с 1 в 0.

Стоп бит – SCL = 1, SDA – перепад с 0 в 1

SCL = 1 – любые изменения на SDA – старт или стоп

SCL = 0 – установка бита данных, SCL = 0 – выборка бита данных

Ведомый может 1) ack, 2) nack, 3) шина SCL = 0, если не успевает принимать данные от мастера

Все данные передаются пакетами в 9 бит – 8 бит данных, 1бит ack/nack

1 пакет – 1старт бит, 7бит адреса ведомого, 1бит R/неW

Ведомый подтверждает прием ACK, если не подтверждает – не услышал, потом когда-нибудь попробуем еще раз

7бит адреса – может быть 127 устройств

Если передача от мастера – то просто пакет – ACK от ведомого – пакет – ACK от ведомого и т.д., пока масте не отправит стоп бит

Если передача от ведомого – то то же самое, только когда мастер получил все, что надо – он отправляет ведомому после пакета NACK и потом стопбит

Арбитраж – кто первый, тот молодец

Если одновременно – то они выдают 0 или 1 – кто из них первых выдаст 0 – тот молодец (т.к. монтажное И,и если 0 – то ниче сделать уже нельзя)

Если ведомый – микросхема памяти, то после первого пакета с адресом мастер отправляет еще один пакет – с адресом, по которому находятся необходимые ему данные

17. Последовательный интерфейс spi (Serial Periferial Interface).

MOSI – Master Out, Slave In, только для Data;

MISO - Master Input, Slave Output;

SCK – синхронизация, Serial Clock;

SS – Slave Select (выбор по сигналу);

(В I2C выбор устройства был по адресу. Здесь – по отдельному сигналу).

SCL

Pol=0

D ATA

MOSI

MSB LSB

MSB – старший бит первый

LSB – младший бит первый

Данные считываются по высокому уровню SCL.

Мастер может стать слэйвом и слэйв может стать мастером. Мастер – инициатор передачи. Для управления есть 2 регистра: SPDR – регистр данных, SPCR – регистр управления для SPI.

SPIE SPE DORD MSTR CPOL CPH SR0 SR1

7 6 … 0

SPIE – разрешение прерывания по готовности преобразования.

SPE – переопределение выводов порта Р1 (4, 5, 6, 7).

1 – для SPI он будет использоваться.

0 – для обычн.

DORD – старшим или младшим битом вперед.

1 – LSB,

0 – MSB.

CPOL – меняет полярность синхросигнала.

CPH – меняет фазу синхросигнала.

SR1, SR0 – выбираем скорость передачи (fт/4, fт/16, fт/64, fт/128).

MSTR – выбирается мастер/слэйв.

Интерфейс очень гибкий:

  1. Изменение направления битов DATA (Можно сначала младшие биты, потом старшие).

  2. Изменение уровня SCL (Считывать данные по низкому уровню, а менять – по высокому).

SPI сейчас широко применяется для внутреннего схемного программирования контроллеров(не вынимать МК, чтобы вставить в программатор). Но это в случае, если для память программ есть flash-память.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]