На STM32F4 не получается высокой частоты

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

На STM32F4 не получается высокой частоты

Сообщение kras »

Самая простая идея: STM32F4 - высокочастотное устройство с тактовой 168МГц, так почему бы не генерировать с него высокочастотную импульсную последовательность для дальнейших целей?

Пишу в Keil на ASM со стандартного примера:

Код: Выделить всё

; Test STM32F4-Assembler project

    AREA    |.text|, CODE, READONLY

    GET led.inc    ; Драйвер светодиодов
    GET button.inc ; Драйвер кнопки
    GET system.inc ; Задержка

; Объявления
HIGH         EQU 0x00000001 ;EQU 0x000F4240 ; 1000000UL
LOW          EQU 0x00000001

            EXPORT __main
__main      PROC

            ; Инициализация кнопок и светодиодов
            BL LedInit
            BL ButtonInit
           
            ; В регистр R4 запишем величину задержки
            LDR R4, =HIGH
         LDR R6, =LOW
           
            ; Начнём с нулевого светодиода
            ; R5 - номер текущего светодиода
            MOV R5, #0
         
; Главный цикл программы         
__mainloop
            ; Если кнопка нажата - светятся все светодиоды.
            BL  ButtonGet
           
            CMP R0, #1
            BEQ __button_1
           
__button_0
            ; Кнопка не нажата
            ; Прибавляем 1
            ;ADD R5, R5, #1
           
            ; Проверяем: не более 3х
            ;CMP R5, #4
            ;BNE __button_end
           
            ; На новый круг, с 0
            ;MOV R5, #0
           
            B __button_end

__button_1
            ; Кнопка нажата
            ; Проверяем: >= 0
            SUBS R5, R5, #1
            BPL __button_end

            ; Заём бита произошёл, -1.
            ; На новый круг, с 3х
            MOV R5, #3
           
; Все проверки на более 3х или менее 0 можно заменить на более простую конструкцию:
; MVN R0, #3     ; Переместить и инвертировать
; AND R5, R5, R0 ; Оставить только младшие 2 бита
     
__button_end
           
            ; Зажжём светодиод N
            MOV R0, R5
            BL  LedOn
           
            ; Задержка
            MOV R0, R4
            BL  delay
           
            ; Погасим светодиод N
            MOV R0, R5
            BL  LedOff
         
         MOV R0, R6
            BL  delay

            ; На очередной круг
            B __mainloop

            ENDP

    END
           


Ок, все должно летать, но лишь ~160кГц, если я ничего не перепутал, глядя на осциллограф. На форумах читал, что задержка выполняется 10 машинных циклов, и частота для вывода падает в 10. Теперь я совсем запутался, и хочу понять, что на самом деле сейчас происходит, и как мне получить сигнал=меандр хотя бы 10МГц? Я сейчас еще усмотрел логику, что упоминается "1000000UL", может тактовая у меня сейчас 1МГц?! Хотя в свойствахпроекта XTAL = 25.0 А в идеале нужно все 100МГЦ и >
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: На STM32F4 не получается высокой частоты

Сообщение Flasher »

Читай даташит-он разобъет все твои мечты...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Если бы мог разобраться с этим в даташите самостоятельно, не задавал бы вопрос! Может есть разные схемы для построения такого простого генератора, ведь это же бред, чтобы устройство тактировалось 168МГц и обладало в такой простой функции производительностью Attiny с XTal ~1МГц, как вообще такое возможно.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Так что делать? Почему даташит разобьет мечты?
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
kisssko
Открыл глаза
Сообщения: 52
Зарегистрирован: Пт янв 10, 2014 02:05:13
Откуда: Воронеж

Re: На STM32F4 не получается высокой частоты

Сообщение kisssko »

Это весь код? Тактовая частота где то настраивается? По умолчанию stm32 на маленькой частоте стартуют от встроенного RC. В даташите всё описано. И настройки самого порта что то в коде не видно.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: На STM32F4 не получается высокой частоты

Сообщение HHIMERA »

Меньше слушай бред про даташит... читай референс... На 168МГц тактовой на длинном тесте ногодрыга 84МГц получить можно... т.к. у F2XX и F4XX ногодрыг за один такт...
"Я не даю готовых решений, я заставляю думать!"(С)
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: На STM32F4 не получается высокой частоты

Сообщение pcb »

В любом случае, имеет место факт, что проц стартует со встроенного генератора.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Прочитал, но не доходит. Можете скинуть самый простой пример?
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: На STM32F4 не получается высокой частоты

Сообщение HHIMERA »

kras писал(а):Прочитал, но не доходит. Можете скинуть самый простой пример?

А на АСМе никто практически не пишет... юзайте СИ...
kras писал(а):Самая простая идея: STM32F4 - высокочастотное устройство с тактовой 168МГц, так почему бы не генерировать с него высокочастотную импульсную последовательность для дальнейших целей?

Cortex не самая лучшая архитектура для генерации чего либо софтовым ногодрыгом, забудьте... Точности до такта не получить... Лучше юзать железо... благо его хватает...
Пишу в Keil на ASM со стандартного примера:

Ну так и забейте в Кейл любой проект СИ с пустым майном... скомпилируйте... зайдите в отладку... ресетните МК... и пошагово смотрите в окне дизасма что, где и как настраивается...
"Я не даю готовых решений, я заставляю думать!"(С)
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Ок, буду изучать.

Но предложите, пожалуйста, простую схему ногодрыга, чтобы просто спаял ее на железе и она точно заработала.

И может у кого есть пример ногодрыга на С?
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: На STM32F4 не получается высокой частоты

Сообщение oleg110592 »

что это такое "схема ногодрыга"?
Пример ногодрыга есть в STM32F10x Standard Peripherals Library: Peripheral’s examples
в папке STM32F10x_StdPeriph_Examples\GPIO\IOToggle\
In this example, HCLK is configured at 72 MHz so PD0 and PD2 toggles at 18MHz.
To achieve the maximum IO toggling frequency, you have to configure your compiler
options for high speed optimization.
rusefi
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт апр 17, 2014 18:18:52

Re: На STM32F4 не получается высокой частоты

Сообщение rusefi »

Давайте начнём с начала... ПОЧЕМУ ASM???
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Схема ногодрыга - электрическая принципиальная схема на рассыпухе, на одной из ног которой получается ногодрыг (krasопедия).

Писал на ASM пару программ (LCD и игрался с базовым примером из акселлерометра и светодиодов), поэтому предпочтителен ASM, но я не против написать на С, если это будет оптимальнее и эффективнее...

Попробую найти, если что отпишусь
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Нашел. У меня такая проблема. Все делал по мануалу для Keil: http://www.emcu.it/STM32F4xx/STM32F4-Li ... ary_Manual. С самого начала написало "Device not found STM32F401VC".

Затем компилирую, пишет "выберете таргет". Сразу увидел окно выбора, выбрал "STM32F40_41..." и... все откомпилилось, ок, начинаю загружать.

Пишет "unknown target connected". Возможно, что это и есть ошибка с STM32F401VC. Может где-то что-то не дописал? Что делать?
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: На STM32F4 не получается высокой частоты

Сообщение oleg110592 »

Пишет "unknown target connected"

это сделано? project->option for target -> utilities ->settings ->add ->stm32f4xx flash
электрическая принципиальная схема на рассыпухе, на одной из ног которой получается ногодрыг

тогда любая схема от производителя:
http://www.st.com/web/catalog/tools/FM1 ... 2/PF252419
http://www.st.com/web/en/catalog/tools/ ... 2/PF252216
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Уже было выставлено, на всякий случай проделал заново... все равно пишет эту ошибку.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: На STM32F4 не получается высокой частоты

Сообщение dosikus »

kras писал(а):Нашел. У меня такая проблема. Все делал по мануалу для Keil: http://www.emcu.it/STM32F4xx/STM32F4-Library/STM32F4


Патологическое рвение делать все через ж ? :)))
Давал же уже ссылку на квик_старт с Keil и F4 http://kazus.ru/forums/showthread.php?t=106278
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: На STM32F4 не получается высокой частоты

Сообщение kras »

Не могу понять, где там описано про сам старт. Как я понял - путь один - скачать библиотеку std peripherial... И дальше уже разница какая-то, как запускать примеры?
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: На STM32F4 не получается высокой частоты

Сообщение dosikus »

http://kazus.ru/forums/showpost.php?p=6 ... stcount=30
И далее .
Создание и настройка проекта без SPL .
Аватара пользователя
Zud
Встал на лапы
Сообщения: 129
Зарегистрирован: Пн авг 19, 2013 03:23:00
Откуда: замкадье

Re: На STM32F4 не получается высокой частоты

Сообщение Zud »

kras писал(а):А в идеале нужно все 100МГЦ и >


Такие частоты наверное только выходом таймера можно получить.
Ответить

Вернуться в «ARM»