I2C™ – INTER-INTEGRATED CIRCUIT и PIC24


Для работы с периферийными устройствам I2C™ просто незаменим. Дисплеи, память, драйверы и много другое…

В нашем примере мы будем подключать дисплей RDX077 (на драйвере UC1601S) к нашей макетной плате. Почему RDX077 – пока на настоящий момент, это самый доступный индикатор (для меня) с приемлемой ценой. Схема подключения:

pic24-10

RDX0077 – графический индикатора с драйвером UC1601s. В этой главе научимся выводить информацию на индикатор. Описывать сам драйвер UC1601s здесь не будем, будем создавать библиотеку для работы с индикатором.

Первое что необходимо выбрать это модуль I2C, у нас подключен индикатор ко второму модулю. Индикатор может работать на скорости до 400 кГц, поэтому необходимо разобраться как настроить необходимую скорость в модуле. За скорость отвечает регистр I2C2BRG из описания мы можем видеть формулы для расчета скорости и таблица с приведенными расчетами.

pic24-11

 Для стандартных тактовых частот приведены расчетные данные:

Заданная частота шины Fscl

Fcy=Fosc/2 Значение в I2CxBRG Реальная частота Fscl
(Десятичное) (Hex)

100 kHz

16 MHz

157

9D

100 kHz

100 kHz

8 MHz

78

4E

100 kHz

100 kHz

4 MHz

39

27

99 kHz

400 kHz

16 MHz

37

25

404 kHz

400 kHz

8 MHz

18

12

404 kHz

400 kHz

4 MHz

9

9

385 kHz

400 kHz

2 MHz

4

4

385 kHz

1 MHz

16 MHz

13

D

1.026 MHz

1 MHz

8 MHz

6

6

1.026 MHz

1 MHz

4 MHz

3

3

0.909 MHz

Будем использовать максимальную возможную скорость шины 400 кГц.

Во всех новых моделях микроконтроллеров в основном по два модуля I2C. В нашем варианте подключение производиться к модулю 2. Для работы с  индикатором нам понадобиться написать 7 функций по работе с интерфейсом. Некоторое отличие от стандартных функций будет состоять в том, что они будут ориентированы на модуль 2, а также формирование состояния старт будет объедено с указанием для драйвера индикатора записью адреса и  инициализацию типа передачи и команды запись или чтение.

Для работы с многими устройствами I2C я обхожусь своими самодельными функциями, почему самодельными, потому что я знаю как они работают и что от них можно ожидать:

Команда начальной инициализации модуля

void I2C_Open (unsigned int FCLOCK);// инициализация, значение частоты шины в килогерцах (например, 100,150,200….400)
настраивает работу модуля.

Команда стоп

void i2c_stop (void); // формирование стоп

Две команды старт

unsigned char i2c_start (unsigned char adres, unsigned char C_D, unsigned char R_W); // адрес устройства и управление младшими битами
unsigned char i2c_restart (unsigned char adres, unsigned char C_D, unsigned char R_W);

Команда записи байта данных

unsigned char i2c_write (unsigned char data); //запись байта

И две команды чтения

unsigned char i2c_read_ack (void); //чтение с подтверждением
unsigned char i2c_read_noack (void); //чтение без подтверждения

Мое мнение такое чем их меньше тем проще. Для работы с индикатором необходимо сделать библиотеку которая бы упрощала вывод на дисплей символьной информации и графики. О создании библиотеки говорить не буду это не интересно скачать её можно из раздела библиотеки. В этой главе мы ограничимся примером для демонстрации вывода на индикатор текста и графических примитивов.

Первое, что всегда в таких вариантах появляется желание что бы на индикаторе, что нибудь отобразилось. В библиотеке есть функция вывода строк на дисплей String_LCD её формат, на примере:

Теперь все уже понятно и первая программа для работы с графическим LCD на драйвере на драйвере UC1601S будет выглядеть так:

Думаю для начала этого более чем достаточно.


Результат работы программы:

pic24-12

Теперь необходимо скачать проект и поэкспериментировавший с выводом сообщений и графики.


Описание библиотеки в разделе Библиотеки.  Демонстрационное видео функций библиотеки.

 


Файлы для загрузки

Демопроект с полным текстом + библиотека (графические примитивы и символы).

Значок

I2C™ - INTER-INTEGRATED CIRCUIT и PIC24 102.25 KB 785 downloads

I2C™ - INTER-INTEGRATED CIRCUIT и PIC24 ...



Это может быть интересно


  • Audio-bluetooth modules F-6188 (BK8000L)Audio-bluetooth modules F-6188 (BK8000L)
    Следующий модуль на чипе BK8000L. Заводское обозначение F-6188 также основным производителем не выпускается и отдан на тиражирование. с нижней стороны имеет маркировку В этом варианте мне попалась вроде полноценная прошивка. …
  • LED модуль P10C4V12LED модуль P10C4V12
    LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость панелей легко …
  • ESP8266  процедура получение данных даты и времени от серверов точного времени.ESP8266 процедура получение данных даты и времени от серверов точного времени.
    Эта функция доступна уже в версии 1.6.1. Для многих приложений, необходимо часы реального времени,  если в вашем проекте есть модуль WiFI ESP8266, то легко можно сделать следующим образом. Процедура описывает …
  • CAN – Controller Area NetworkCAN – Controller Area Network
    Controller Area Network (CAN) первоначально был создан немецким поставщиком автомобильных систем Робертом Бош в середины 1980-х для автомобильной промышленности как метод для обеспечения возможности надежной последовательной связи. Целью было сделать автомобили более надежными, безопасными и …
  • Бегущие огни (ch-bo-36)Бегущие огни (ch-bo-36)
    Проект на PIC-микроконтроллере PIC16F648A. Количество каналов 36. Для индикации используется подключение по матрице 6х6. Расположение светодиодов в одну линию. Все эффекты написаны для возможности увеличения количества светодиодов. Рекомендуется увеличивать кратно …
  • Цифровой тахометр для автомобиля CH-С3300Цифровой тахометр для автомобиля CH-С3300
     Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика холла автомобиля …
  • WiFi ESP8266 – AT команды связанные с функцией Wi-FiWiFi ESP8266 – AT команды связанные с функцией Wi-Fi
    AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание  1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 AT+CWMODE_CUR Проверка, …
  • Проект с использованием MCC часть 14Проект с использованием MCC часть 14
    С выводом данных на дисплей мы справились (но могу сразу сказать библиотеку графики к этой статьи пришлось доработать, поэтому в этом проекте она обновлена). У нас на текущем этапе имеется …
  • BMP280 – температура и атмосферное давление – учебный проектBMP280 – температура и атмосферное давление – учебный проект
    Учебный проект на PIC32 и светодиодной панели P5 (2121)-168-6432-80 (32*64). Проект позволяет ознакомиться с простой графикой и с чтением давления и температуры с датчика BMP280. Для тестирования необходимо собрать следующую …
  • Светодиоды со встроенным драйвером WS2812BСветодиоды со встроенным драйвером WS2812B
    Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery slider was …


Translate »