Как изменить тактовую скорость платы ядер STM32L476RG?

Шаранья
Сб 25 ноября 2017 г. 18:46
Привет, эксперты
Мне просто было интересно о скорости платы ядер STM32L476RG!
С, скажем, Arduino Uno работает на 16 МГц.Какова тактовая скорость STM32L476 в среде Arduino?

ZMEMW16
Сб 25 ноября 2017 г., 19:14
http: // www.ул.com/en/evaluation-tools/n ... 476rg.HTML
Руководство пользователя UM1724. Crystal, который я заметил, 8 МГц, если он установлен :!: Краткий взгляд предложил не так, как есть подробный абзац о его требуемых характеристиках.

Получить Cubemx, также библиотеки F7 (есть меню обновления для выполнения этого в Cubemx), вероятно, необходимо получить компилятор инструментов ARM GCC 6.х.х
Играйте в окне конфигурации, измените значение такта HSE и посмотрите, что происходит.
Вам нужно будет зарегистрироваться, чтобы загрузить пакет Cubemx и нажать, чтобы принять лицензию.

Сканирование таблицы предлагает 80 МГц, самая высокая фонда в текущей таблице потребления, я думаю, что самого низкого было 100 кГц, может быть, даже 32 кГц
Стивен

fpistm
Сб 25 ноября 2017 г., 19:16
Спасибо HSI (16 МГц), он может работать до 80 МГц.

Шаранья
Сб 25 ноября 2017 г., 19:47
Раньше я программировал STM32L476 с использованием HAL и Cube MX, поэтому у меня есть идея.Но как определить тактовую скорость в среде Arduino?
Также есть способ узнать, на какую текущую скорость работает процессор?

fpistm
Сб 25 ноября 2017 г. 20:07
Какое ядро ​​arduino вы использовали?

Если это этот: https: // github.com/stm32duino/arduino_core_stm32

Вы можете переопределить void systemClock_config (void) в эскизе. extern "C" void SystemClock_Config(void) {...}

Шаранья
Сб 25 ноября 2017 г., 22:07
Не могли бы вы привести пример кода.Я не очень свободно свободно!
Я попробовал, как это ниже, в Arduino:
void setup() { // put your setup code here, to run once: #define F_CPU 80000000 SystemCoreClockUpdate(); pinMode(13,OUTPUT); } void loop() { // put your main code here, to run repeatedly: digitalWrite(13,HIGH); digitalWrite(13,LOW); }

Шаранья
Солнце 26 ноября 2017 г. 10:52 утра
Хорошо.....Теперь я могу получить текущую частоту тактовой частоты CPU, написав этот небольшой кусок кода.
void setup() { // put your setup code here, to run once: extern uint32_t SystemCoreClock; Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: Serial.println(SystemCoreClock); delay(1000); }

Стивестронг
Солнце 26 ноября 2017 г. 12:14
[Шаранья - Солнце 26 ноября 2017 г. 10:52] - Кроме того.Но я мог бы получить только частоту около 400 кГц (вместо этого процессор работает на 80 МГц).Почему это так медленно?Есть ли способ сделать это быстро, напрямую доступа к регистрам GPIO?
Поиск на форуме для быстрого доступа GPIO.
Например: ViewTopic.PHP?F = 18&T = 2888

Шаранья
Солнце 26 ноября 2017 г. 13:22
Я попробовал этот код ниже.Но я получаю скорость 2.72 МГц макс.Время отключения намного длиннее, чем вовремя.Почему это происходит?
void setup() { // put your setup code here, to run once: pinMode(13,OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: GPIOA->BSRR = (1<<5); GPIOA->BRR = (1<<5); }

Пито
Солнце 26 ноября 2017 г. 13:44
Здесь
ViewTopic.PHP?F = 18&T = 2888&P = 37578#P37593
Вы можете увидеть, что для петли требуется 417NS с переключателем 1/0 (регистры BRR/BSRR) при 72 МГц, то есть 2.39 МГц..
Чтобы максимизировать свою частоту выводов ввода -вывода, вы должны «развернуть петлю». void loop() { // put your main code here, to run repeatedly: GPIOA->BSRR = (1<<5); GPIOA->BRR = (1<<5); GPIOA->BSRR = (1<<5); GPIOA->BRR = (1<<5); GPIOA->BSRR = (1<<5); GPIOA->BRR = (1<<5); GPIOA->BSRR = (1<<5); GPIOA->BRR = (1<<5); ....}

Шаранья
Солнце 26 ноября 2017 г. 14:20
Я подозревал это.Большое спасибо за ответ.Теперь я оценил и получил скорость 40 МГц для каждого сегмента кода!Но одна вещь, которую я хотел бы спросить.
Почему сигналы являются синусоидальным типом природы?Я охватил сигнал, выходящий из AVR на 2 МГц, который был совершенно квадратным.Это происходит из -за пропускной способности областей?Моя область - Rigol DS1102E, который имеет полосу пропускания 100 МГц!

Пито
Солнце 26 ноября 2017 г. 14:36
Переключите свой зонд на 1:10.

Шаранья
Солнце 26 ноября 2017 г. 15:20
Я уже измеряю в режиме 1:10.Я также попробовал с режимом 1: 1, но все остается прежним! Максимальная частота, которую вы можете увидеть на своем остепе Но как скорость здесь 48 МГц?

Пито
Солнце 26 ноября 2017 г. 15:43
Я отредактировал свой пост на FCPU/6..
С BW 100 МГц вы не можете увидеть цифровой сигнал 48 МГц с отличными краями.. Вам понадобится >300 МГц BW, чтобы быть счастливым..

Шаранья
Солнце 26 ноября 2017 г., 17:18
I edited my post on FCPU/6..

Пито
Солнце 26 ноября 2017 г. 18:09
Я не понял! Чипы STM32F103 (Cortex M3, 72 МГц One), как Bluepill, получили 2 состояния ожидания во время чтения из флеш -памяти. Это означает, что они обычно не выполняют 1 инструкцию за часы.

Чипы STM32F4XX (Cortex M4), такие как L476.
Адаптивный акселератор в реальном времени (ART Accelerator ™), позволяющий выполнять 0-й-газовое состояние из флэш-памяти Таким образом, подсчет циклов в F103 и F4XX может отличаться. Это была моя точка зрения, которую я добавил в свой предыдущий пост, который вы не читали.

fpistm
Пн 27 ноября 2017 г. 5:55 утра
[Шаранья - Солнце 26 ноября 2017 г., 17:18] - Еще одна проблема, с которой я сталкиваюсь в Arduino IDE.Каждый раз, когда я закрываю Arduino IDE и вновь открою его, настройки, касающиеся доски/процессора ядер, и т. Д.Правление по умолчанию выбирается как Arduino Yun.Также я не могу найти доски Nucleo64 в списке.Затем я должен открыть менеджера по доходам, и после того, как менеджер по доходам обновляется, доски Nucleo появляются в списке основных досок!Почему это происходит.Простите за мои глупые вопросы, так как я не знаком с Arduino Ide.
Все мои настройки/загруженные файлы для ядра STM32 сохраняются в папке C: \ users \ sharanya \ appdata \ local \ arduino15 \ packages \ stm32.
Кажется странным. Вы пытались очистить локальный файл JSON? (C: \ users \ sharanya \ appdata \ local \ arduino15 \ package_stm_index.json*)
Какую версию Arduino IDE вы использовали и на какую ОС?