|
somsoti_sodir
|
|||||||||||
быстродействие STM32F103ZET624.09.2015, 11:35. Показов 11677. Ответов 20
Метки нет (Все метки)
Приветствую.
Появилась необходимость сделать управляемый генератор на 10Мгц. Решил попробовать в качестве эксперимента в цикле для STM32F103ZET6:
увидел такую картинку, вроде все гуд , делится только частота APB1 но она мне по сути для данной задачи вовсе и не нужна. Частота по идеи, что у ядра, что на шинах AHB и APB2(именно на ней сидит порт B) 72Мгц. <Изображение удалено> а вот осциллограмма с ножки 10 порта B: https://www.cyberforum.ru/savedimages/2015/09/24/zdwdw9bsmdmrmqhxctww.jpg получается всего 1,29Мгц причем компилил и без дебаг инфы - все равно на скорость выполнения не влияет! копнул внутрь функции GPIO_WriteByt - так там кода строка буквально , так что время машинное отнимать особо некому так примерно и должно быть ? или где-то что-то не досмотрел ? а может "лошадку не подходящую" для этих целей пытаюсь запрячь ? |
|||||||||||
| 24.09.2015, 11:35 | |
|
Ответы с готовыми решениями:
20
Помогите разобраться с STM32F103ZET6 SD карта (SDIO) + STM32F103ZET6 не работает Алкотестер МЕТА на stm32f103zet6 нужна помощ!!! |
|
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
|
|
| 24.09.2015, 11:45 | |
|
Поищите топик "Скорость GPIO" на этом форуме. А вообще нужно использовать таймеры. В STM32 из полно.
0
|
|
|
Oxford
|
|
| 24.09.2015, 12:09 | |
|
Использовать надо таймер в режиме PWM
|
|
|
somsoti_sodir
|
|
| 24.09.2015, 12:32 | |
|
на счет таймеров я думал.
но "Генератор" это я написал весьма абстрактно. на самом деле , мне не нужен периодический генератор. длтельность каждого следующего импульса и периода зависит от многих факторов , и время тут сильно критично. я думал заюзать один таймер для отсчета каждых 100ns , и уже в его обработчике анализировать условия и как только возникает необходимость подавать практически мгновенно начало следующего импульса не тратя время на перепрограммирование таймеров, и продолжать анализ данных в обработчике таймера чтобы просчитать время завершения импульса и всего периода в целом а тут получается что без каких либо иных операций частота всего 1,29 мгц |
|
|
Oxford
|
|
| 24.09.2015, 13:43 | |
|
http://itistromyx.ru/forum/lofiversion/ ... 01796.html
1.29мгц это слишком мало. Порты могут больше. Ищите ошибки. И все же я категорически против ногодрыга и не рекомендую. |
|
|
somsoti_sodir
|
||
| 24.09.2015, 15:01 | ||
буду все-та-ки наверное на таймерах мудрить както :) |
||
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 48
|
||
| 25.09.2015, 17:17 | ||
Эта задача на данном процессоре не решается. При длительности 100нс остаётся всего 6 тактов для расчёта нового импульса. В лучшем случае, можно обновлять длительности один раз каждые три импульса. И то для этого придётся задействовать два таймера, один из которых в режиме загрузки через DMA.
0
|
||
|
0 / 0 / 0
Регистрация: 26.03.2015
Сообщений: 316
|
||
| 25.09.2015, 21:26 | ||
0
|
||
|
somsoti_sodir
|
|
| 28.09.2015, 13:26 | |
|
ясненько , на отдельной pll(4046) у меня пока так и реализовано , думал все на одном STM32 реализовать.
интерес все равно затянул меня , стал разбираться с таймерами , но вот никак не могу добиться сработки прерывания. вроде и пример взял готовый в нете , нога таймера (ШИМ) дрыгается , но вот сработки обрвботчика не происходит. После выполнения кода: 1325: NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ 0x0800044A F04F21E0 MOV r1,#0xE000E000 0x0800044E 07A0 LSLS r0,r4,#30 0x08000450 F8C10100 STR r0,[r1,#0x100] //тут адрес именно ISER0 происходит и установка разрешающего прерывания бита для TIM4 в ISER0 и одновременно устанавливается запрещающий бит для TIM4 в =ICER0 Может у меня какие то процы не от мира сего , я их в Китае на таобао покупал. либо я лыжи на асфальте не снял :) где-то туплю |
|
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 28.09.2015, 13:49 | |
|
Проверьте правильность обьявления обработчика прерывания. Файл с телом обработчика в проект подключен?
0
|
|
|
somsoti_sodir
|
|||||||
| 28.09.2015, 14:01 | |||||||
|
|||||||
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 28.09.2015, 14:09 | |
|
Найдите описание таблицы прерываний в stortup-файле и сверьте точно ли там такое имя обработчика используется (TIM4_IRQHomdler).
У меня уже не раз были с этим проблемы.
0
|
|
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
|
| 28.09.2015, 14:10 | |
|
за 100 нс stm32f103 на 72 МГц может выполнить в цикле только одну команду, о каких обработчиках речь? )
0
|
|
|
somsoti_sodir
|
||
| 28.09.2015, 14:21 | ||
Но вот в памяти , я так понял что вектора после сброса лежат по адресу 0x00000000 я не нашел по адресу 0x000000C0 указателя на скомпиленную функцию TIM4_IRQHomdler правда я не уверен что 4байта на вектор идет а не более. Вы же про файл - stortup_stm32f10x_md_vl.s ? (правда я его нашел не в проекте а в папке Keil_v5\ARM\Pack\Keil\STM32F1xx_DFP\1.1. 0\Device\Source\ARM , в проекте подобного не нашел) |
||
|
somsoti_sodir
|
|
| 28.09.2015, 15:05 | |
|
в в кейле таблица тут лжеит - stortup_stm32f10x_hd.lst и тут stortup_stm32f10x_md_vl.lst лежит в папке проекта
в них указано что искомый вектор (TIM4) лежит по адрессу 0xB8 но его там нет а имя указано такое же TIM4_IRQHomdler |
|
|
somsoti_sodir
|
|
| 28.09.2015, 15:07 | |
|
а аппаратный дебагер (JLINK) не может как-то мешать ?
|
|
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 28.09.2015, 15:14 | |
|
Нет.
Возможно, в кейл есть еще какие-то особенности, я с ним никогда не работал.
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
|
|
| 28.09.2015, 15:56 | |
|
consoti_coder,
Можно поинтересоваться,что это и как оно относится к TIM4 port.GPIO_Mode = GPIO_Mode_IPD; port.GPIO_Pin = GPIO_Pin_3; port.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &port);
0
|
|
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 28.09.2015, 16:03 | |
|
не заёбывай человека.
вот лишь бы свои пять копеек вставить
0
|
|
|
somsoti_sodir
|
||
| 28.09.2015, 16:13 | ||
|
||
| 28.09.2015, 16:13 | |
|
Помогаю со студенческими работами здесь
20
как запрограммировать Open103Z на контроллере STM32F103ZET6 Подскажите как залить прошвку в Dev board STM32F103ZET6 Сравнить быстродействие быстродействие SPL vs указатели Быстродействие AT24C512 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|