Jump to content

    

Вопрос по блоку источников тактовой частоты

Есть контроллер 1986ВЕ4У (ARM-Cortex M3). Я пытаюсь затактировать переферийные блоки на ассемблере. Для этого нужно толкнуть соответствующее значение по адресу.
У меня возникает некоторая путаница с тем, что (из документации): Есть RST_CLK, в котором смещением адреса выбираются различные регистры для включения такта. Вопрос в том, в какой последовательности и что включать?

PER2_CLOCK мне однозначно нужен, я так понимаю, что нужен и CPU_CLOCK.
Если есть последовательный стандартный путь во включении тактирования какого-то конечно блока, опишите его, пожалуйста, мне.

Share this post


Link to post
Share on other sites

RST_CLK это просто базовый адрес(=0x40020000)  для группы регистров управления

Все регистры 32-битные, поэтому если надо писать в PLL_CONTROL, то пишете по адресу 0x40020000 + 0х04 = 0x40020004.

CPU_CLOCK по адресу 0x4002000С и т.д.

 

Если есть сомнение в адресе, то смотрим в рисунок "Карта распределения основных областей памяти" и там "Периферия" с адреса 0x40000000 до 0x5FFFFFFF.

 

Share this post


Link to post
Share on other sites

Ваш контроллер на ядре Cortex-M0, а не М3.

Посмотрите в соседнюю тему. Там про тактирование 1986ВЕ1Т. Блоки тактировпния у них отличаются, но общий подход ясен. Открываете функциональную схему блока в спецификации и проходитесь по ней карандашом, формируя путь прохождения для тактового сигнала: включаете нужные источники тактовых сигналов, ждёте их готовности, настраиваете к-ты деления, умножения, состояния мультиплексоров. Каждое действие записываете одним предложением на навой строке и оформляете в виде комментария. Затем под каждым комментарием пишите кусок кода, выполняющий требуемое действие. Каждое действие - это задание нового значения или ожидание требуемого значения какого-то битового поля в каком-то регистре.

Share this post


Link to post
Share on other sites
1 hour ago, Darth Vader said:

 Каждое действие записываете одним предложением на навой строке и оформляете в виде комментария. Затем под каждым комментарием пишите кусок кода, выполняющий требуемое действие. Каждое действие - это задание нового значения или ожидание требуемого значения какого-то битового поля в каком-то регистре.

 

y8SNc1H-_400x400.jpeg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now