Перейти к содержанию
    

STM32F407 макс. частота GPIO

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

 

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

 

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

 

 

957a458cdb09.jpg

 

 

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

 

Написал код, при включенной оптимизации он скомпилировался в 3 инструкции.

while (1)
  {    
    GPIOA->BSRRL = 2;
    GPIOA->BSRRH = 2;    
  }

 

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

 

228d9d64cf5b.png

 

 

Так вот, кто-нибудь может объяснить, как так:

GPIO висят на AHB1, частота которой 168 МГц, а фактическая скорость работы оказывается 84 МГц, что больше похоже на шину APB2 ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В даташите на первой странице с характеристиками написано :

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не очень понятно, за что боритесь? Выясняя то, что прописано, и то что и так понятно, ... то чего обычно не читаете. Если ранее делали проекты на 1..3xx серии, то тут в 4xx много отличий и подводных камней, ... столкнулся переводя пару проектов на эти 4-ки. Чую "народ" копья поломает еще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ни за что не борюсь, просто начал изучать STM32 после PIC18, поэтому некоторые вещи мне непривычны. При чтении доков показалось странным, что GPIO работают с частотой 84 МГц, а сидят на шине 168 МГц...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переходя с PIC18 ещё много чего интересного будет, с дма, прерываниями, плавающими векторами итд. Потом, почитав попробовав отладиться, вдруг поймете: "и чего я раньше не пререшёл с PIC18 на STM32F ... "

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот, кто-нибудь может объяснить, как так:

GPIO висят на AHB1, частота которой 168 МГц, а фактическая скорость работы оказывается 84 МГц, что больше похоже на шину APB2 ??

судя по картинке между GPIOA->BSRRL = 2; и GPIOA->BSRRH = 2; прошел ровно 1 такт 168МГц, что не так?

один такт на GPIOA->BSRRL = 2; один на GPIOA->BSRRH = 2; еще три на переход, получили 168/5=33.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...