Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Тактирование STM32F103C6 на StdPeriph и Протеус...

Вс ноя 18, 2018 20:25:30

Сделал тактирование STM32F103C6 на StdPeriph в Keil 5.24a (как тут: http://www.avislab.com/blog/stm32-clock_ru/)

Прошил в железо, три светодиода на портах PB0, PB1, PC13 по очереди зажигаются на 0,5сек итого цикл 1,5 сек.

Действительно ли микроконтроллер у меня заработал на 72мГц (кварц на 8мГц) а порт на 50мГц с такими настройками,
(72000000*1,5)/(0x5AE8BA*3) = 6,042... не слишком ли много машинных циклов на цикл ожидания?

Почему в Протеусе 8.7 если выставить частоту кристалла 8мГц циклы в осциллографе растягиваются как будто надо поставить
72мГц, но если поставить 72мГц то симуляция вообще зависает? (При 50Мгц ещё не зависает)

Я правильно понимаю, в Протеусе у этой модели глючит режим GPIO_Mode_Out_PP, т.е. никогда не подключаются выходы к
+ питания?

Есть ли разница в какой последовательности следуют блоки кода "настройка портов" и "настройка тактирования" ?

main.cpp из проекта:


Проект: https://yadi.sk/d/v6zT2YcwmDylKg

Re: Тактирование STM32F103C6 на StdPeriph и Протеус...

Вс ноя 18, 2018 20:50:27

DENIS451 писал(а):если поставить 72мГц то симуляция вообще зависает?
Комп не справляется с симуляцией. Купите новый, более мощный, желательно топовый, или купите МК 103C8 за 1.5$.

Re: Тактирование STM32F103C6 на StdPeriph и Протеус...

Вс ноя 18, 2018 21:51:18

Я не точно выразился, симуляция не зависает, но судя по всему она попадает в ловушку,
в которую не должна попадать если прописать в "Crystal Frequency:" число больше 51000000:
Код:
...
  else  /* Проблемы с HSE. Тут можно написать свой код, если надо что-то делать когда микроконтроллер не смог перейти на работу с внешним кварцом */
    {     
    while (1) {}  /* Пока тут заглушка - вечный цикл*/
    }

...

Подскажите какое число должно стоять в модели STM32F103C6 "Crystal Frequency:" если у меня кварц на 8мГц а ядро микроконтроллера я пытаюсь запустить на 72мГц?

У меня есть отладочная плата с STM32F103C6R6 и с STM32F103C8R6

Re: Тактирование STM32F103C6 на StdPeriph и Протеус...

Вс ноя 18, 2018 22:59:59

DENIS451 писал(а):если прописать в "Crystal Frequency:" число больше 51000000
Этот МК не поддерживает частоту кварца больше 16 МГц. Пишите 8000000. Тем более что в коде написано.
/* PLLCLK = 8MHz * 9 = 72 MHz */

То есть кварц на 8 МГц, а умножитель увеличивает до 72 МГц.

DENIS451 писал(а):У меня есть отладочная плата с STM32F103C6R6 и с STM32F103C8R6
Почему тогда используете протеус?

Re: Тактирование STM32F103C6 на StdPeriph и Протеус...

Вс ноя 18, 2018 23:18:57

Протеус использую что бы снизить вероятность спалить микроконтроллер.

Если прописать в Протеусе 8мГц, то период мигания светодиодов на одинаковой прошивке становиться ровно в 9 раз медленные чем на реальном железе (по показанию виртуального осциллографа)!
Ответить