4.2.1.1. Настройка шин

Сразу после выбора ФАПЧ в качестве источника системной синхронизации ЦПУ Cortex будет работать на частоте 72 МГц. Чтобы остальная часть микроконтроллера работала с оптимальным быстродействием, необходимо выполнить настройку шин AHB и APB.

После сброса синхронизация многие из УВВ находятся в сброшенном состоянии и с отключенной синхронизацией. Перед использованием УВВ необходимо разрешить его синхронизацию и вывести из состояния сброса

//Разрешение синхронизации шин AHB,APB1 и APB2

RCC- AHBENR = 0x00000014;

RCC->APB2ENR = 0x00005E7D;

RCC->APB1ENR = 0x1AE64807;

//Освобождение линий сброса УВВ на шинах APB1 и APB2

RCC->APB2RSTR= 0x00000000

RCC->APB1RSTR= 0x00000000;

4.2.2. Буфер Flash памяти

Если рассмотреть системную архитектуру МК STM32, не трудно заметить, что ядро Cortex-M3 связано с внутренней Flash памятью посредством отдельной шины инструкций I-Bus. Данная шина работает на той же частоте, что и ЦПУ, поэтому, после активизации ФАПЧ ядро будет пытаться работать с ней с максимальным быстродействием (72 МГц). Поскольку, большинство операций ЦПУ Cortex выполняет за один период синхронизации, то доступ к Flash памяти будет осуществляться каждые 1.3 нс. Сразу после запуска МК STM32 синхронизируется внутренним генератором частоты 8МГц, поэтому, проблем с доступом к Flash памяти на этом этапе еще нет. Однако сразу после активизации блока ФАПЧ и выбора его в качестве источника синхронизации время доступа к Flash памяти окажется слишком большим (35 нс), чтобы ЦПУ Cortex могло работать с максимальным быстродействием. Чтобы ЦПУ могло работать на частоте 72 МГц без состояний ожидания в цикле доступа, у Flash памяти предусмотрен буфер упреждающей выборки, состоящий из двух 64-битных буферов. Каждый из этих буферов отвечает за считывание 64-битного слова из Flash памяти и дальнейшую передачу 16- или 32-битных инструкций в ЦПУ Cortex. Данный способ хорошо совместим с инструкциями условного перехода набора инструкций Thumb-2 и предсказанием переходов на конвейере Cortex. В ходе нормального функционирования МК, программисту не следует выполнять каких-либо особых действий с буфером Flash памяти. Однако перед выбором ФАПЧ в качестве основного источника синхронизации необходимо убедиться, что буфер Flash памяти активен. Управление буфером осуществляется через регистр управления доступом к Flash памяти. Помимо активизации буфера, также необходимо задать количество состояний ожидания, которое необходимо буферу предварительной выборки для считывания 8 байт инструкций из Flash памяти. Задержка выбирается следующим образом:

0< SYSCLK <24МГц 0 состояний ожидания

24< SYSCLK <48МГц 1 состояние ожидания

48<SYSCLK <72 МГц 2 состояния ожидания

Данные состояния ожидания действуют между буфером предварительной выборки и Flash памятью и не оказывают влияния на ЦПУ Cortex. После выполнения ЦПУ инструкции из первой части буфера, вторая его часть загружается, таким образом, чтобы выполнение кода осуществлялось непрерывно с оптимальным быстродействием.

Соседние файлы в папке ПЦиПУ. материалы для Курсового проекта Тютякин А.В.