Вход/Регистрация
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
вернуться

Пак Дэниэл Дж.

Шрифт:

DDRS2, DDRS0. Если контроллер SCI конфигурирован для работы в обычном двухпроводном режиме, то линии порта PS2 и PS0 будут выполнять функцию входов приемников двух модулей SCI независимо от значения битов DDR2 и DDR0.

DDRS3, DDRS1. Если контроллер SCI конфигурирован для работы в обычном двухпроводном режиме, то линии порта PS3 и PS1 будут выполнять функцию выходов передатчиков двух модулей SCI независимо от значения битов DDR3 и DDR1.

DDRS6…DDRS4. Если контроллер SPI активизирован и использует некоторые линии из PS6…PS4 для ввода данных, то эти линии будут работать в режиме ввода, независимо от значения соответствующих битов регистра DDRS. Если же по логике работы контроллера SPI некоторые линии из PS6…PS4 должны работать на вывод, то необходимо соответствующий бит регистра DDRS установить в 1.

DDRS7. Если контроллер SPI активизирован и работает в режиме ведомого, то линия PS7 будет выполнять функцию входа для выбора ведомого

, независимо от значения разряда DDR7. Если же контроллер SPI работает в режиме ведущего, то значение бита DDR7 определяет направление передачи линии PS7, независимо от того, используется ли она контролером SPI, или работает как линия ввода/вывода общего назначения (см. таблицу рис. 4.73 и примечание к ней).

Вопросы для самопроверки

1. Какова минимальная частота сигнала синхронизации SCK, если частота импульсной последовательности ECLK составляет 8 МГц?

Ответ: При значении кодовой комбинации битов SPR2…SPR0 = 111 частота SCK составляет 31,2 кГц.

2. Какова максимальная частота сигнала синхронизации SCK, если частота импульсной последовательности ECLK составляет 4 МГц?

Ответ: При значении кодовой комбинации битов SPR2…SPR0 = 000 частота SCK составляет 2 МГц.

3. Напишите выражение на Си для установки минимальной частоты SCK.

Ответ: SP0BR = 0x07

4. Каково назначение флага SPIF?

Ответ: Этот флаг устанавливается, когда контроллер SPI завершил выдачу на линию восьми бит данных. Чтобы сбросить бит SPIF необходимо сначала прочитать регистр состояния SP0SR, а затем выполнить операцию записи в регистр данных SP0DR.

4.19.4. Алгоритмы программного обслуживания контроллера SPI

Ранее в данном параграфе мы обсудили действия, которые необходимо совершить, чтобы инициировать пересылку одного байта с использованием интерфейса SPI. Эти действия отражены в блок-схемах алгоритмов, которые представлены на рис. 4.78. Далее мы покажем, как записать эти действия на Си.

Рис. 4.78. Блок-схемы алгоритмов программного обслуживания контроллера асинхронного обмена SPI

Микроконтроллер и периферийные интегральные схемы. Одна из основных функций интерфейса SPI в микропроцессорных системах — обмен данными между МК и установленными на той же печатной плате интерфейсными ИС. Контроллер SPI в составе МК 68HC12 может быть инициализирован для работы как в режиме ведущего (мастера), так и в режиме ведомого (подчиненного). В процессе обмена с интерфейса SPI — дополнительная функция линий PS7..PS4 порта S. Сигналы SPI распределяются между линиями PS7..PS4 в следующем порядке:

• PS7 — сигнал 

. Когда линия 
 установлена в 0, происходит передача данных из ведущего устройства SPI;

• PS6 — сигнал SCK;

• PS5 — сигнал MOSI. По этой линии передаются данные от ведущего устройства к ведомому;

• PS4 — сигнал MISO. По этой линии передаются данные от ведомого устройства к ведущему.

Регистры управления, используемый в примере. Ниже перечислены биты и регистры управления, которые используются в данном примере:

• DDRS — регистр направления передачи порта S. Разряды DDRS7…DDRS4 должны быть установлены соответствующим образом при работе контроллера SPI в режиме ведущего. Это необходимо для правильного формирования сигналов обмена на линиях порта S;

• SP0BR — регистр скорости передачи. Разряды SPR2…SPR0 этого регистра задают скорость обмена по шине SPI;

• SP0CR1 — регистр управления (первый). Задает режимы работы контроллера SPI;

• SP0CR2 — регистр управления (второй). Задает режимы работы контроллера SPI;

• SP0SR — регистр состояния. Отражает текущее состояние процесса передачи информации по шине SPI;

• SP0DR — регистр данных. В этот регистр записываются данные, подлежащие передаче в интерфейсную ИС.

Пример программирования контроллера SPI. В нашем примере мы будем использовать встроенный контроллер SPI в режиме ведущего. Контролер будет непрерывно посылать шестнадцатеричное число $F0 в «воображаемую» периферийную ИС. Работоспособность приведенного программного кода может быть проверена с помощью осциллографа. При желании Вы можете собрать простейшую периферийную ИС — последовательный регистр со светодиодами, подключенными к параллельным выходам (рис. 4.79). В примере не использованы прерывания, контроль за состоянием флага SPIF ведется методом полинга.

  • Читать дальше
  • 1
  • ...
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: