Чтение онлайн

на главную - закладки

Жанры

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

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

Шрифт:

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

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

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

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

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

• SP0DR — регистр данных.

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

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

Рис. 4.79. Функциональная схема периферийного устройства для тестирования обмена по SPI

/*--------------------------------------------------------------------*/

/* filename: SPI.c */

/* МAIN PROGRAМ: Эта программа реализует непрерывную посылку кода */

/* символа "S" с скоростью 9600 бод в 8-разрядном формате (кадр 10 бит)*/

/* с битом паритета */

/*--------------------------------------------------------------------*/

/*подключаемые файлы*/

#include <912b32.h>

#include <stdio.h>

/*используемые функции*/

void initialize_spi(void);

void send_data(unsigned int);

void main(void) {

 int i, j;

 unsigned int data;

 initialize_spi; /*инициализация модуля SCI*/

 data = 0xF0;

 while(1) /*передавать данные непрерывно*/

 {

send_data(data);

 }

}

/* Функция initialize_spi производит инициализацию модуля SPI. */

void initialize_spi(void) {

 SP0BR = 0х04; /*установить скорость обмена*/

 SP0CR1 = 0x18; /*запретить прерывания от SPI, назначить режим*/

/*ведущего, старшим битом вперед*/

 SP0DR = 0x00; /*очистить регистр данных */

 SP0SR = 0x00; /*очистить регистр состояния*/

 SP0CR1 = 0x58; /*
разрешить SPI */

}

/* Функция send_data производит инициализацию модуля SPI. */

void send_data(unsigned int data) {

 unsigned int status;

 SP0DR = data; /*задать число для пересылки*/

 while ((SP0SR & 0x80) == 0x00) /*ожидать флага завершения передачи*/

 {

;

 }

 status = SP0SR /*прочитать регистр состояния с целью сброса флага SPIF*/

}

В приведенном примере мы показали лишь технику программирования обмена для контроллера SPI, однако мы не останавливались на особенностях подчиненного устройства, с которым происходит обмен.

4.19.5 Периферийные ИС с интерфейсом SPI

Интерфейс SPI обычно используется для расширения функциональных возможностей однокристального МК. Многие производители полупроводниковых компонентов выпускают периферийные интегральные схемы с интерфейсом SPI. По функциональному назначению эти схемы принадлежат к следующим группам устройств:

• Память типа EEPROM или FLASH;

• Дополнительные порты ввода/вывода;

• Часы реального времени;

• АЦП высокого разрешения (число разрядов преобразования превышает 8 бит);

• Драйверы светодиодных и жидкокристаллических дисплеев;

• Многоканальные ЦАП;

• Схемы фазовой автоподстройки частоты.

4.20. Введение в теорию аналого-цифрового преобразования

Встраиваемые микропроцессорные системы на основе МК семейства 68HC12 часто предназначаются для управления реальными промышленными объектами, в которых входные сигналы имеют аналоговую природу. Это сигналы различных датчиков: тока, напряжения, температуры, давления, ускорения, освещенности, загрязненности воздуха и т.д. Управляя каким либо технологическим агрегатом, МК должен обработать выходные сигналы этих датчиков, рассчитать по их значениям требуемые управляющие воздействия и сформировать необходимые управляющие сигналы для исполнительных устройств. Однако МК по своей сути является цифровым устройством, он способен преобразовывать данные только в цифровом виде. Поэтому для взаимодействия с аналоговыми датчиками микропроцессорная система должна быть оснащена аналого-цифровым преобразователем, который позволит представить аналоговые сигналы в виде цифровых кодов.

Процесс преобразования изменяющегося во времени аналогового сигнала в последовательность цифровых кодов предполагает выборку (запоминание) величины измеряемого аналогового сигнала через равноотстоящие во времени интервалы с последующим преобразованием каждого такого отсчета в цифровой код (рис. 4.80).

Рис. 4.80. Временная диаграмма, поясняющая процесс преобразования аналогового сигнала в цифровой код.

Для представления некоторого изменяющего во времени аналогового сигнала в цифровом коде необходимо:

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

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Истребитель. Ас из будущего

Корчевский Юрий Григорьевич
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.25
рейтинг книги
Истребитель. Ас из будущего

Честное пионерское! Часть 3

Федин Андрей Анатольевич
3. Честное пионерское!
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Честное пионерское! Часть 3

Обгоняя время

Иванов Дмитрий
13. Девяностые
Фантастика:
попаданцы
5.00
рейтинг книги
Обгоняя время

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Отмороженный 8.0

Гарцевич Евгений Александрович
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Отмороженный 8.0

Совершенный: охота

Vector
3. Совершенный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Совершенный: охота

Калибр Личности 1

Голд Джон
1. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 1

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник