Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F407 макс. частота GPIO
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Отладочные платы
rekcuf
Начал изучать ARM с платки STM32F4-Discovery.

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

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





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

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


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




Так вот, кто-нибудь может объяснить, как так:
GPIO висят на AHB1, частота которой 168 МГц, а фактическая скорость работы оказывается 84 МГц, что больше похоже на шину APB2 ??
coolbassnik
В даташите на первой странице с характеристиками написано :
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.
Aner
Не очень понятно, за что боритесь? Выясняя то, что прописано, и то что и так понятно, ... то чего обычно не читаете. Если ранее делали проекты на 1..3xx серии, то тут в 4xx много отличий и подводных камней, ... столкнулся переводя пару проектов на эти 4-ки. Чую "народ" копья поломает еще.
rekcuf
Я ни за что не борюсь, просто начал изучать STM32 после PIC18, поэтому некоторые вещи мне непривычны. При чтении доков показалось странным, что GPIO работают с частотой 84 МГц, а сидят на шине 168 МГц...
Aner
Переходя с PIC18 ещё много чего интересного будет, с дма, прерываниями, плавающими векторами итд. Потом, почитав попробовав отладиться, вдруг поймете: "и чего я раньше не пререшёл с PIC18 на STM32F ... "
_pv
Цитата(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.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.