Как стать автором
Обновить

Комментарии 7

Интересная разработка.

Кнопки я бы сделал через АЦП, не ограничиваясь тремя штуками…
Вопрос не по теме поста, но может добрые олды подскажут где трабла?
Сразу оговорюсь, я нуб в STM32, но всеми силами пытаюсь этот недостаток исправить.
По теме: Уже 3 недели ковыряю «народный» stm32f103c8, дро... мучаю регистры тактирования, но не могу увидеть заветные 72МГц. Писал в Keil, IAR, использовал разные библиотеки CMSIS… Тестовая задача такова: в цикле инкрементация переменной, при достижении необходимой задержки моргание светодиода (Хэлло, ворлд))) ). Методом тыка и секундомера вычислил что частота APB шины колеблется около 4МГц… И это с HSE и PLLx9-15
Внимание вопрос — Инкрементация в 32 битном АРМ проходит за 1 такт? Потому что за неимением осциллографа приходится считать частоту на пальцах)).
Второй вопрос, если по моим странным расчётам частота источника ~400 КГц, то куда копать? Сразу говорю, HSE и PLL запускаются и переключаются 100%.
Заранее спасибо, если есть дельные мысли))
Что мешает использовать CubeMX для генерации кода инициализации клокера? Плюс не забывайте, что на операции jmp и проверки тоже тратятся такты процессора. Ещё GPIO не в состоянии надергать 72мгц.
Это я учитывал, так что если бы получил частоту ~в 2 раза ниже расчитанной не расстроился бы. По поводу GPIO не совсем правильно сказано. Все операции проводятся от шины APB в процесоре, на GPIO комманда выводится раз в секунду)).
Сейчас от отчаяния задал точно такую задачу не менее народной ардунине)). Она, 8 битная, с более старой архитектурой, кодом загаженным встроенными «оптимизациями», на кварце 16 МГц показал результат лишь в 2 раза медленнее чем STM со всеми включенными ускорениями… А это доказывает, что что то тут не так…
Не понял про CubeMX/CubeIDE. Клокер инициализируется ручками? Отсутствие осциллографа можно немного компенсировать второй STMкой. Таймер по DMA может в память класть значение счетчика по фронтам сигнала. Звуковушку не предлагаю, так как там всего 44 кгц частота дискретизации. ARMы штука сложная. Я вот пилю эмулятор флопаря для компьютера Apple2 на STM32F103Cx и не могу реализовать запись. Чтение дискеты уже давно работает, а вот захватить сигнал 250 килобит в секунду ну вообще не получается. Хотя у Японца на AVR тоже получилось.
По снятию сигнала с DMA, спасибо, роскошная идея!
По поводу эмулятора конечно много не подскажу, сам нуб…
Но… Возможно стоит отойти от Куба, в сторону CMSIS, или если хватает знаний вообще на ассемблерные вставки? Насколько я знаю, Куб нерационально использует возможности камня, и сильно засоряет исполняемый файл. А если при этом ещё и RTOS используется, то вообще… Куб хорош для быстрых и нетребовательных к скорости проектам, а тут скорость не маленькая. Но какой либо дельный совет смог бы дать только при углублении в тему.
Во первых используйте куб для генерации донор-проекта, на его основе делаете свое

Во вторых используйте куб для проверки железа, ведь куб генерирует код точней, чем вы руками (сколько потерянного времени из-за того что я при написании руками что-то упустил). Завели проект на кубе, посмотрели что все запускается, а в вашем коде нет — идите сравнивать.

В третьих в кубе есть такая галочка в настройках, вместо HAL использовать LL. И вот он уже генерирует инициализацию на регистрах (inline обертки над ними)

Я делаю донор на LL и копирую инициализацию из него в своей проект, уверенным в том, что нигде в ней уже ошибок нет
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории