Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧПУ.Контроллеры электроавтоматики.doc
Скачиваний:
21
Добавлен:
17.09.2019
Размер:
6.86 Mб
Скачать

2.5.3. Подключение абонентов к шине i2c.

Для надежной работы шины необходимо выполнять определенные требования к абонентам по их нагрузочным характеристикам. На рис.23 приведена схема подключения устройств к шине.

Подтягивающие резисторы Rp определяются из условия минимально допустимого тока при наименьшем уровне напряжения на линии (уровень логического 0 – 0,4 в.).

Например:

VDD = 5в + 10%

VOL = 0,4 в

Rp min = (5,5 – 0,4)/ 0,003 = 1,7 кОм.

Максимальное значение входного резистора Rs определяется допустимым уровнем шума.

Устройства на шине I2C должны иметь один источник питания, к которым подключены подтягивающие резисторы.

С другими режимами работы модуля MSSP, например, с режимом синхронного последовательного интерфейса SPI можно ознакомиться в [ ].

В качестве примера рассмотрим задачу создания фрагмента системы управления, состоящую из нескольких ведомых и одного ведущего микроконтроллеров. Принципиальная схема фрагмента показана на рис.24

Настройка ведущего модуля:

Регистр SSPCON = 0x2E;

Что соответствует условиям:

      1. Модуль MSSP включен,

      2. Ведущий режим, 7-разрядная адресация, с разрешением прерываний.

Регистр SSPCON2 = 0x0F;

Что соответствует условиям:

  1. Режим общего вызова не используется,

  2. Прием разрешен,

  3. Бит STOP формируется,

  4. Бит повторный START формируется,

  5. Бит START формируется.

Регистр SSPSTAT = 0x00; - при передаче и SSPSTAT = 0x04; - при приеме.

Что соответствует условиям:

1.Включено управление длительностью переднего фронта импульсов,

2.Уровни входных сигналов соответствуют требования шины I2C,

Регистр SSPADD = 0x00; Что соответствует нулевому адресу ведущего модуля

Настройка ведомых модулей:

Регистр SSPCON = 0x36;

Что соответствует условиям:

  1. Модуль MSSP включен,

  2. Ведомый режим, 7-разрядная адресация,

  3. Тактовым сигналом не управлять, (можно записывать в бит CKR=1 при необходимости подготовки данных для передачи ведущему, с последующим сбросом данного бита).

Регистр SSPCON2 = 0x0F;

Регистр SSPSTAT = 0x00;

Регистр SSPADD = 0x01; - для первого ведомого модуля,

SSPADD = 0xnn; - для последующих ведомых модулей.

Настроечная часть программ работы системы микроконтроллеров будет иметь вид:

А. Ведущий модуль:

#define XTAL_FREQ 4MHZ

#define byte unsigned char

#define word unsigned int

#include <pic.h>

#include <stdio.h>

__CONFIG(HS & WDTDIS & PWRTEN & LVPDIS & DUNPROT & WRTEN);

void main() {

TRISC = 0xFF;

SSPSTAT = 0x00;

SSPCON = 0x2E;

SSPCON2 = 0x0F;

SSPADD = 0x 00;

Для ведомых модулей

TRISC = 0xFF;

SSPSTAT = 0x 04;

SSPCON = 0x36;

SSPCON2 = 0x0F;

SSPADD = 0xnn; //nn –соответствует адресу конкретного абонента

Рабочие части программ определяются фактическими задачами обмена информацией, включая конкретные диагностические фрагменты, (например, фрагменты контроля ошибок формата и т. п.).