Лекция № 8 (1085703)

Файл №1085703 Лекция № 8 (Лекции МП)Лекция № 8 (1085703)2018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

ЛЕКЦИЯ № 8.

Из схемы демонстрационной отладочной платы KIT-03 видно, что микроконтроллер связан с клавиатурой и ЖКИ через промежуточную микросхему СE110, которая используется для экономии ножек. (Так как для того, чтобы управлять ЖКИ необходимо 8 линий передачи (можно сократить и управлять через 4 линии) и 3 линии для управления. Кроме этого, клавиатура тоже требует повесить на микроконтроллер 88 линий. Таким образом, у микроконтроллера просто не хватит ножек.)

Микроконтроллер и микросхема СE110 связаны между собой шиной I2C.

Для передачи данных в интерфейсе I2C используются две линии: SDA (передаются адреса и данные, а принимаются данные) и SCL (тактовые синхроимпульсы). В то время, когда передача данных на шине I2C отсутствует, сигнал синхронизации (SCL) и данных (SDA) имеют высокий уровень за счет подтягивающих резисторов. Биты START и STOP формируются ведущим для определения начала и окончания передачи данных. Бит START формируется переходом сигнала SDA из высокого уровня в низкий при высоком уровне сигнала SCL. Бит STOP формируется переходом сигнала SDA из низкого уровня в высокий при высоком уровне сигнала SCL. При передаче данных сигнал SDA может изменяться только, когда SCL имеет низкий логический уровень.

Каждое устройство на шине I2C имеет уникальный адрес. Когда ведущий инициирует передачу данных, то сначала передается адрес устройства, к которому выполняется обращение. Остальные устройства проверяют переданный ведущим адрес. В состав байта адреса устройства входит бит направления передачи данных (если R/W = 1, то выполняется чтение из ведомого, если R/W = 0, то выполняется запись).

Ведомый и ведущий шины всегда находятся в противоположном режиме работы, что можно представить в виде двух состояний:

  • Ведущий передатчик – ведомый приёмник.

  • Ведомый передатчик - ведущий приёмник.

В обоих случаях ведущий формирует тактовый сигнал.

Простой 7 – разрядный формат адреса:

где: S – START;

R/W – чтение / запись;

ACK – подтверждение.

При передаче данных, после каждого переданного байта, приёмник должен подтвердить получение байта сигналом ACK низкого уровня. Если ведомый не подтвердит получение байта адреса или данных, ведущий должен прервать передачу сформировав сигнал STOP (ведомый должен отпустить SDA для формирования STOP ведущим).

Подтверждение приёма ведомым:

Когда ведущий шины принимает данные, то на каждый принимаемый байт формируется бит подтверждения, если принятый байт не последний. Для сообщения ведомому о том, что ведущий прекращает принимать данные по приёму последнего байта – ACK не формируется. Ведомый отпускает SDA, чтобы ведущий смог передать бит STOP. Ведущий может формировать бит STOP на месте бита подтверждения. Если ведомому необходимо задержать передачу данных, то он может удерживать SCL в низком логическом уровне. Передача данных продолжится, когда ведомый отпустит SCL. Это позволяет ведомому подготовить новые данные для передачи.

I2C может быть с чисто программной поддержкой, но большинство микроконтроллеров имеют аппаратную поддержку I2C. В отличие от универсального синхронно – асинхронного приемопередатчика (USART), передача в режиме I2C ведется старшими разрядами вперед. Режим I2C – один из двух режимов работы (есть еще режим SPI) модуля ведущего синхронного последовательного порта (MSSP), который имеет аппаратную поддержку I2C во всех режимах (как ведущего так и ведомого).

Для управлением модулем MSSP в режиме I2C используется шесть регистров:

  • SSPCON, регистр управления MSSP;

  • SSPCON2, регистр управления 2 MSSP;

  • SSPSTAT, регистр состояния MSSP;

  • SSPBUF, буфер приемника/передатчика. Примечание: физически – это разные регистры, но они имеют один адрес и одно название, так как в один все время загружаем, а из другого все время выгружаем;

  • SSPSR, сдвиговый регистр (пользователю не доступен);

  • SSPADD, регистр адреса (если ведомый)/задания частоты (если ведущий).

Если используется режим прерывания, то дополнительно используются регистры:

PIR1 (регистр запросов прерываний) и симметричный ему регистр PIR2 (регистр разрешения запросов прерываний).

Есть еще модуль BSSP, который работает только в режиме передачи ведущего.

Сопрягать можно с устройствами, где есть внутренняя шина. У всех периферийных устройств должен быть модуль, поддерживающий шину I2C. Все устройства на шине I2C должны работать с частотой меньшей или равной 100 кГц, так как микроконтроллер может создать большую скорость, а периферийное устройство - нет.

Задание:

Определить номер кнопки, нажатой на клавиатуре демонстрационной отладочной платы KIT-03 микроконтроллера семейства PIC, и вывести на экран ЖКИ.

Структурная схема:

Подпрограмма инициализации I2C.

INIT_ I2C:

BANKSEL SSPADD ; отыщем банк, где наход. регистр задания частоты SSPADD.

MOVLW .99 ; пересылка в W знач. 99 (в десятичной системе счисления). MOVWF SSPADD ; пересылка значений из W в регистр SSPADD.

BANKSEL SSPCON ; отыщем банк, где нах. регистр управления MSSP (SSPCON).

MOVLW B'00101000' ; запрограммируем как ведущий режим I2C и запишем в W. MOVWF SSPCON ; пересылка значений из W в регистр SSPCON.

BANKSEL TRISC ; отыщем банк, где находится регистр направ. данных TRISC.

BSF TRISC ,3 ; уст.бит в 3 разр. рег. TRISC, т.к. I2C орган. на 3, 4 разрядах.

BSF TRISC ,4 ; уст.бит в 4 разр. рег. TRISC, т.к. I2C орган. на 3, 4 разрядах.

RETURN ; возврат из подпрограммы.

Пояснения:

Мы будем организовывать передачу по I2C в режиме ведущего с аппаратной поддержкой. Поэтому в подпрограмме INIT_I2C в регистр управления модуля MSSP (SSPCON) устанавливаем:

7 6 5 4 3 2 1 0

WCOL

SSPOV

SSPEN

CKP

SSPM3

SSPM2

SSPM1

SSPM0

0 0 1 0 1 0 0 0

WCOL - Бит конфликта записи.

Ведущий режим:

1 = запись в SSPBUF была выполнена при не выполнении условий шины I2C.

0 = конфликта не было.

Ведомый режим:

1 = была предпринята попытка записи в SSPBUF во время передачи

предыдущего байта.

0 = конфликта не было.

SSPOV - Бит переполнения приемника.

SPI режим:

1 = принят новый байт в то время как SSPBUF содержит предыдущие данные (байт в SSPSR будет потерян). В ведомом режиме пользователь должен прочитать содержимое регистра SSPBUF даже, если только передает данные. В ведущем режиме бит в '1' не устанавливается, т.к. каждая операция инициализируется записью в SSPBUF (сбрасывается в '0' программно).

0 = нет переполнения.

I2C режим:

1 = принят новый байт в то время как SSPBUF содержит предыдущие данные. Значение бита не действительно при передаче данных (сбрасывается в '0' программно).

0 = нет переполнения

SSPEN - Бит включения модуля MSSP.

Когда модуль включен, соответствующие порты ввода/вывода настраиваются на выход или вход.

SPI режим:

1 = модуль MSSP включен, выводы SCK, SDO, SDI, -SS используются модулем MSSP.

0 = модуль MSSP выключен, выводы работают как цифровые порты ввода/вывода.

I2C режим:

1 = модуль MSSP включен, выводы SDA, SCL используются модулем MSSP.

0 = модуль MSSP выключен, выводы работают как цифровые порты ввода/вывода.

CKP - Бит выбора полярности тактового сигнала.

SPI режим:

1 = пассивный высокий уровень сигнала.

0 = пассивный низкий уровень сигнала.

Ведомый режим I2C:

Управление тактовым сигналом SCK.

1 = не управлять тактовым сигналом.

0 = удерживать тактовый сигнал в низком логическом уровне (используется для подготовки данных).

Ведущий режим I2C:

Не имеет значения.

SSPM3 - SSPM0 - Режим работы модуля MSSP.

0000 = ведущий режим SPI, тактовый сигнал = FOSC/4.

0001 = ведущий режим SPI, тактовый сигнал = FOSC/16.

0010 = ведущий режим SPI, тактовый сигнал = FOSC/64.

0011 = ведущий режим SPI, тактовый сигнал = выход TMR2/2.

0100 = ведомый режим SPI, тактовый сигнал с вывода SCK. Вывод - SS подключен к MSSP.

0101 = ведомый режим SPI, тактовый сигнал с вывода SCK. Вывод - SS не подкл. к MSSP.

0110 = ведомый режим I2C, 7-разрядная адресация.

0111 = ведомый режим I2C, 10-разрядная адресация.

1000 = ведущий режим I2C, тактовый сигнал = FOSC/(4 ∙ (SSPADD + 1)).

1011 = программная поддержка ведущего режима I2C (ведомый режим выключен).

1110 = программная поддержка ведущего режима I2C, 7 - разрядная адресация с разрешением прерываний по приему бит START и STOP.

1111 = программная поддержка ведущего режима I2C, 10 - разрядная адресация с разрешением прерываний по приему бит START и STOP.

1001, 1010, 1100, 1101 = резерв.

Подпрограмма формирования START – условия I2C.

I2CSTART:

BANKSEL SSPCON2 ; отыщем банк, где нах. регистр управ. MSSP (SSPCON2). BSF SSPCON2, SEN ; устан. в рег.SSPCON2 бит SEN =1 (аппар. сбрас. в '0').

BTFSC SSPCON2, SEN ; пров. знач. бита SEN: если '1', то $+1, если '0', то $+2.

GOTO $ -1 ; переход на предыдущую команду.

RETURN ; возврат из подпрограммы.

Подпрограмма формирования повторного START – условия I2C.

I2C_RESTART:

BANKSEL SSPCON2 ; отыщем банк, где нах. регистр управ. MSSP (SSPCON2). BSF SSPCON2, RSEN ; устан. в рег.SSPCON2 бит RSEN =1 (аппар. сбрас. в '0').

BANKSEL PIR1 ; отыщем банк, где нах. регистр флагов прерываний PIR1.

BTFSS PIR1, SSPIF ; пров. знач. бита SSPIF: если '1', то $+2, если '0', то $+1.

GOTO $ -1 ; переход на предыдущую команду.

RETURN ; возврат из подпрограммы.

Примечание:

Формат регистра управления модуля MSSP (SSPCON2):

7 6 5 4 3 2 1 0

GCEN

ACKSTAT

ACKDT

ACKEN

RCEN

PEN

RSEN

SEN

GCEN - Бит разрешения поддержки общего вызова (только для ведомого режима I2C).

1 = разрешить прерывания при приеме в регистр SSPSR адреса общего вызова (0000h).

0 = поддержка общего вызова выключена.

ACKSTAT - Бит статуса подтверждения (только для ведущего режима I2C).

Передача ведущего I2C:

1 = подтверждения не было получено от ведомого.

0 = подтверждение от ведомого было получено.

Характеристики

Тип файла
Документ
Размер
295,5 Kb
Материал
Тип материала
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов лекций

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее