реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Тактовая частота GPIO входа и выхода STM32F100, Одинакова ли?
RomanRom
сообщение Feb 29 2012, 16:40
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 14-02-05
Пользователь №: 2 635



Вопрос возник после чтения Reference Manual на STM32F100xx.
На с.103 при описании режимов входов и выходов GPIO есть две одинаковые фразы

==The data present on the I/O pin is sampled into the Input Data Register every APB2
clock cycle===

Однако на с.101 в Table 16 биты MODE0-1 (2-10-50 МГц)
указаны только для режима выхода GPIO.

Влияет ли тактовая частота 2-10-50 МГц на прием данных по входу?
Если влияет, то почему MODE0-1 в режиме входа устанавливаются 00?


Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 29 2012, 16:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(RomanRom @ Feb 29 2012, 20:40) *
Влияет ли тактовая частота 2-10-50 МГц на прием данных по входу?
Если влияет, то почему MODE0-1 в режиме входа устанавливаются 00?

Это не тактовая частота, а режим работы выходных драйверов, позволяющий указанных частот на выходе достичь.
В режиме входа ставится в 00, скорее всего, для обеспечения минимальной емкости, минимизации утечек и т.п.
Go to the top of the page
 
+Quote Post
RomanRom
сообщение Mar 1 2012, 09:43
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 14-02-05
Пользователь №: 2 635



Спасибо за ответ, действительно это не тактовая частота, но возникли еще вопросы.

1) Наверное вместо максимальных выходных частот 2-10-50 МГц надо было указывать максимальную длительность (крутизну) фронтов выходного сигнала. Тогда не было бы путаницы, почему в STM32F100 крайняя частота 24 МГц, а в STM32F103 50 МГц. Но это вопрос больше к разработчикам.

2) Как физически организуется смена крутизны фронтов в выходном КМОП-каскаде? Об этом на картинках ничего нет.

3) Что будет, если в режиме входа GPIO установить биты MODE0-1 не 00, а 01, 10, 11? По идее три последних режима к входному каскаду физически не относятся, так почему нужно устанавливать именно 00?
Go to the top of the page
 
+Quote Post
RomanRom
сообщение Mar 3 2012, 10:14
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 14-02-05
Пользователь №: 2 635



Ответов что-то нет, наверное, из "песочницы" надо переносить вопросы поближе к гуру...

Попутно еще один вопрос. В даташите STM32F100 на с.60 в разделе Input/output AC characteristics
указана максимальная частота на выходе GPIO 24 МГц fmax(IO)out.
Правильно ли я понимаю, что такой частоты на выходе достичь при тактовой частоте 24 МГц нельзя?
Или есть в STM32 какой-то режим наподобие CKOUT в ATmega48, когда на выход обычного порта транслируется
тактовая частота кварцевого генератора установкой фьюзов?
Какая максимальная частота на выходе GPIO возможна? По идее за один такт в режиме bit-band можно установить 1, за другой установить 0, итого должно получиться в идеале (на коротком промежутке времени) 12 МГц при тактовой 24 МГц?
Go to the top of the page
 
+Quote Post
Sergey_Aleksandr...
сообщение Mar 5 2012, 10:46
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764



Цитата(RomanRom @ Mar 3 2012, 14:14) *
Или есть в STM32 какой-то режим наподобие CKOUT в ATmega48, когда на выход обычного порта транслируется тактовая частота кварцевого генератора установкой фьюзов?

Есть вывод MCO, на который можно вывести через внутренний мультиплексор сигнал с HSE, HSI, PLL, XTALL... В Reference Manual в разделе "Reset and clock control" описано. "Ногодрыганьем" большую частоту на порту не получите, не умеет STM32 быстро ногами шевелить. Про таймер не скажу, не разбирался пока с ихними режимами.

По поводу больших частот. Игрался с STM32f105, выдавал на ненагруженный выход MCO сигнал с PLL. Максимально допустимые 50 МГц - меандр искажённый, но узнаваем. На 72 МГц (уже overclocking) фронты очень сильно завалены, т.е. мощности выходного драйвера не хватает.
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 5 2012, 11:27
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(RomanRom @ Mar 1 2012, 12:43) *
2) Как физически организуется смена крутизны фронтов в выходном КМОП-каскаде? Об этом на картинках ничего нет.

Предположу - изменением нагрузочной способности. Чем выше выходной ток , тем выше крутизна.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Mar 8 2012, 14:48
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Sergey_Aleksandrovi4 @ Mar 5 2012, 12:46) *
"Ногодрыганьем" большую частоту на порту не получите, не умеет STM32 быстро ногами шевелить. Про

Кстати, а почему "не умеет"?
Я задавал похожий вопрос тут: http://electronix.ru/forum/index.php?showt...p;#entry1035328

но никто толком не ответил.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Mar 8 2012, 20:32
Сообщение #8


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



В том вопросе — а гляньте дизассемблер да и увидите, что там делается.
И цикл с volatile-переменной вероятнее всего эту переменную на стеке заводит, каждый декремент — прочесть из памяти, уменьшить, записать назад.
И GPIO_SetBits() вызывается как функция, потом проверяет свои аргументы на допустимость, потом только пишет в порт.
А если по-нормальному, то из 72-мегагерцового STM32F103 ногодрыгом в цикле импульсы длительностью около 28 наносекунд (два такта) вполне выдаются, если компилятор адрес порта в регистр занесёт до цикла.
Т.е.
Код
Pin<'B', 12> FOO; // см. pin.h в примерах scmRTOS для CortexM3/GCC

    FOO.Mode(OUTPUT);

    for(;;) {
        FOO.On();
        FOO.Off();
    }
даёт импульсы 28 нс с паузой чуток подлиннее (переход всё же).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Allregia
сообщение Mar 9 2012, 09:22
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(ReAl @ Mar 8 2012, 22:32) *
В том вопросе — а гляньте дизассемблер да и увидите, что там делается.
И цикл с volatile-переменной вероятнее всего эту переменную на стеке заводит, каждый декремент — прочесть из памяти, уменьшить, записать назад.


Спасибо Александр, теперь прояснилось.

Цитата
И GPIO_SetBits() вызывается как функция, потом проверяет свои аргументы на допустимость


А вот об этом я хотел спросить поподробнее - о праверках. Я соверешнно не понимаю этих "assert" - оно работает на этапе компиляции или остается коде?
Так это что, по каждому чиху во всех функциях из стандартных STшных библиотек делаются все эти проверки при входе?! Ну на время начальной инициализации еще ладно, но а потом, во время работы?! Я тогда понимаю, почему многие этими библиотеками не пользуются...
Go to the top of the page
 
+Quote Post
ReAl
сообщение Mar 9 2012, 19:31
Сообщение #10


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Allregia @ Mar 9 2012, 11:22) *
А вот об этом я хотел спросить поподробнее - о праверках. Я соверешнно не понимаю этих "assert" - оно работает на этапе компиляции или остается коде?
Оно не может работать на этапе компиляции -- при этом ещё неизвестно, с каким аргументом функция вызвана. Была бы функция inline в h-файле, могло бы отработать при компиляции.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 10 2012, 06:30
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Глупый вопрос:
Где мне взять документацию на STM32L151 ?

Вот здесь
http://www.st.com/internet/mcu/product/252048.jsp#top
Есть документ DS6876 с обзором процессора.
Есть документы AN3371, AN3248..... с описание разных частей процессора, но там явно не всё. Например нету про UART , порты IO.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
яман-тау
сообщение Mar 10 2012, 06:42
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 662
Регистрация: 15-02-09
Из: Магнитогорск
Пользователь №: 44 875



RM0038
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016