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

 
 
> STM32F407 макс. частота GPIO
rekcuf
сообщение Dec 12 2013, 12:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-10-08
Пользователь №: 40 704



Начал изучать ARM с платки STM32F4-Discovery.

Первым делом решил подергать выводом с максимальной скоростью.

Смотрю в даташит: GPIO подключены к шине AHB1, макс. скорость шины - 168 МГц.





При этом нигде не сказано, что выводами можно дергать с такой частотой. Везде речь идет о 84 МГц.

Написал код, при включенной оптимизации он скомпилировался в 3 инструкции.
Код
while (1)
  {    
    GPIOA->BSRRL = 2;
    GPIOA->BSRRH = 2;    
  }


Что и подтвердилось на осциллографе. На одном канале системная частота, на другом - вывод, которым дергаю.




Так вот, кто-нибудь может объяснить, как так:
GPIO висят на AHB1, частота которой 168 МГц, а фактическая скорость работы оказывается 84 МГц, что больше похоже на шину APB2 ??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
coolbassnik
сообщение Dec 12 2013, 12:07
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 22-10-10
Из: Украина
Пользователь №: 60 348



В даташите на первой странице с характеристиками написано :
Up to 140 I/O ports with interrupt capability
– Up to 136 fast I/Os up to 84 MHz
– Up to 138 5 V-tolerant I/Os
Это ограничение частоты именно портов ввода-вывода.
И далее в описании портов ввода-ввывода читайте:
2.2.34 General-purpose input/outputs (GPIOs)
....
Fast I/O handling allowing maximum I/O toggling up to 84 MHz.


Сообщение отредактировал coolbassnik - Dec 12 2013, 12:09
Go to the top of the page
 
+Quote Post
Aner
сообщение Dec 12 2013, 13:18
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Не очень понятно, за что боритесь? Выясняя то, что прописано, и то что и так понятно, ... то чего обычно не читаете. Если ранее делали проекты на 1..3xx серии, то тут в 4xx много отличий и подводных камней, ... столкнулся переводя пару проектов на эти 4-ки. Чую "народ" копья поломает еще.
Go to the top of the page
 
+Quote Post
rekcuf
сообщение Dec 13 2013, 13:35
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-10-08
Пользователь №: 40 704



Я ни за что не борюсь, просто начал изучать STM32 после PIC18, поэтому некоторые вещи мне непривычны. При чтении доков показалось странным, что GPIO работают с частотой 84 МГц, а сидят на шине 168 МГц...
Go to the top of the page
 
+Quote Post
Aner
сообщение Dec 13 2013, 15:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Переходя с PIC18 ещё много чего интересного будет, с дма, прерываниями, плавающими векторами итд. Потом, почитав попробовав отладиться, вдруг поймете: "и чего я раньше не пререшёл с PIC18 на STM32F ... "
Go to the top of the page
 
+Quote Post
_pv
сообщение Dec 13 2013, 16:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(rekcuf @ Dec 12 2013, 18:00) *
Так вот, кто-нибудь может объяснить, как так:
GPIO висят на AHB1, частота которой 168 МГц, а фактическая скорость работы оказывается 84 МГц, что больше похоже на шину APB2 ??

судя по картинке между GPIOA->BSRRL = 2; и GPIOA->BSRRH = 2; прошел ровно 1 такт 168МГц, что не так?
один такт на GPIOA->BSRRL = 2; один на GPIOA->BSRRH = 2; еще три на переход, получили 168/5=33.
Go to the top of the page
 
+Quote Post

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

 


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


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