Вы находитесь на странице: 1из 5

Министерство образования Республики Беларусь

Учреждение образования «Белорусский государственный университет


информатики и радиоэлектроники»

Факультет компьютерного проектирования


Кафедра проектирования информационно-компьютерных систем
Дисциплина «Проектирование и программирование микропроцессорных
устройств»

ОТЧЕТ
к лабораторной работе № 7
на тему:
«ПРОГРАММИРОВАНИЕ ШИНЫ SPI ДЛЯ ARM CORTEX-M4F»

Выполнил:
ст. гр. 012601
Фомин И О

Проверил:
Пономарёв И.С.

Минск 2023
Цель работы: изучить программирование шины SPI для ARM Cortex-
M4F и основные регистры настройки, управления и данных.

Ход выполнения работы:

Место SPI в структуре ARM Cortex-M4F представлено на рисунке 1.

Рисунок 1 – Место SPI в архитектуре ARM

Расположение битов разрешения синхронизации портов SPI в регистре


RCC_APB1ENR управления синхронизацией периферии шины APB1 и
расположение битов разрешения синхронизации портов SPI в регистре
RCC_APB2ENR управления синхронизацией периферии шины APB2
представлено на рисунках 2 и 3.
Рисунок 2 – Расположение битов разрешения синхронизации портов SPI в
регистре RCC_APB1ENR управления синхронизацией периферии шины APB1

Рисунок 3 – Расположение битов разрешения синхронизации портов SPI в


регистре RCC_APB2ENR управления синхронизацией периферии шины APB2

Cтруктура методики настройки и программирования SPI представлена


на рисунке 4.
Рисунок 4 – Структура методики настройки и программирования SPI

Основные регистры настройки, управления и данных:


1. Два 16-битных регистра управления: SPIx_CR1, SPIx_CR2
2. 16-битный регистр состояния: SPIx_SR
3. 16-битный регистр данных: SPIx_DR
4. 16-битный регистр полинома для подсчёта CRC: SPIx_CRCPR
(Cyclic Redundancy Code Polynomial Register)
5. 16-битный регистр принятого значения CRC: SPIx_RXCRCR
6. 16-битный регистр передаваемого значения CRC: SPIx_TXCRCR
Регистр SPIx_CR1:
BIDIMODE (BI DIrectional MODE) – режим двунаправленной
передачи: 0
– использование двух выделенных линий, каждая из которых предназначена
для передачи данных в собственном направлении (полнодуплексный
режим), 1 – использование одной линии с передачей данных по ней в двух
направлениях;
BIDIOE (BI DIrectional Output Enable) – разрешение работы на выход
в режиме использования одной линии для передачи данных по ней в обоих
направлениях: 0 – передача запрещена (режим чтения), 1 – передача
разрешена (режим передачи);
DFF (Data Frame Format) – формат данных: 0 – 8-битный, 1 – 16-
битный;
RXONLY (Receive ONLY) – настройка работы SPI только на приём в
полнодуплексном режиме: 0 – полнодуплексная работа, 1 – режим работы
только на приём;
SSM (Software Slave Management) – программное управление
режимом ведомого: 0 – управление выключено, 1 – включено; если данный
бит равен единице, значение бита SSI устанавливается на выводе NSS;
SSI (Internal Slave Select) – значение на выводе NSS в режиме
ведомого при SSM = 1;
LSBFIRST (Least Significant Bit FIRST) – порядок следования битов в
посылке: 0 – от старшего к младшему (MSB), 1 – от младшего к старшему;
SPE (SPI Enable) – запуск работы SPI;
BR[2:0] (Baud Rate control) – задание скоростью приёмопередачи: 000
– fPCLK / 2, 001 – fPCLK / 4, 010 – fPCLK / 8, 011 – fPCLK / 16, 100 – fPCLK / 32, 101 –
fPCLK / 64, 110 – fPCLK / 128, 111 – fPCLK / 256;
MSTR (MaSTeR selection) – выбор режима: 0 – ведомый, 1 – ведущий;
CPOL (Clock POLarity) – задание полярности импульсов
синхронизации: 0 – исходное состояние линии CK = 0, 1 – CK = 1;
CPHA (Clock PHAse) – управление фазой синхроимпульса: 0 –
считывание (захват) бита данного на первом фронте импульса, 1 – на втором.

Вывод: в результате выполнения лабораторной работы было изучено


программирование шины SPI для ARM Cortex-M4F и основные регистры
настройки, управления и данных.

Вам также может понравиться