|
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 10
|
|
Режимы портов в STM3218.02.2012, 18:08. Показов 18576. Ответов 12
Метки нет (Все метки)
Здравствуйте уважаемые форумчане, начал изучение АРМ контроллеров и возник вопрос по поводу конфигурации портов.
До этого более или мение програмил АВРки и такуих вопросов какбы не возникало изза отсуствия такого широкого конфигурирования. Дело вот в чем, почитал я пост Ди ARM. Учебный Курс. Порты GPIO вроде все ясно, но при практической попытке сделать чтото под свои нужды (в учебных целях) запутался в 3х соснах, а точнее в 7ми :)) Мог бы мне кто то на пальцах показать/рассказать как и для чего нужны данные режимы портов и что они вообще все значат (что это за подтяжки итд): - Вход Hi-Z - Вход с подтяжкой вверх - Вход с подтяжкой вниз - Аналоговый вход (для каналов АЦП) - Выход с открытым коллектором (стоком, если быть точным) - Выход тяни-толкай (push-pull) - И альтернативные функции, т.е. работа от периферии. Тут у нас формируется выход вида вида тяни-толкай или открытый коллектор. Заранее извиняюсь за такие глупые вопросы, гугл мне не смог помочь Спасибо.
0
|
|
| 18.02.2012, 18:08 | |
|
Ответы с готовыми решениями:
12
Режимы индикации или разные режимы работы светодиода Настройка портов роутера. Открытие портов и чем это чревато Общение с барометром MS5540 на STM32 (Arduino to STM32) |
|
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
|
|
| 18.02.2012, 19:14 | |
|
"Hi-Z" -- высокоомное состояние, оно же, Z - состояние, оно же 3-е состояние -- выход болтается в воздухе, необходимо, например, если необходимо объединить ВЫХОДЫ микроконтроллера и ВЫХОДЫ другого устройства, без коллизий.
"- Выход с открытым коллектором (стоком, если быть точным)" -- выход или подключен к "0" или в воздухе болтается (например, для внешней подтяжки вверх) "- Выход тяни-толкай (push-pull)" -- двухтактный выход, полноценный выход или "0" или "1" "- Вход с подтяжкой вверх" -- на входе стоит резистор на "+", состояние по умолчанию (если на вход ничего не подано) будет "1" "- Вход с подтяжкой вниз" -- на входе стоит резистор на "землю", состояние по умолчанию (если на вход ничего не подано) будет "0"
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 10
|
|
| 18.02.2012, 20:28 | |
|
Сразу хочу задать пару вопросов:
Вход с подтяжкой вверх/вниз - тут чтоб каклибо задействовать вход надо прижать к земле (вверх) или к питанию(вниз), например кнопкой к земле ??? HiZ я так и непонял :)) но думаю щас он мне сильно и не пригодится и порты (выходные) выдаю 3.3v ???
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
|
|
| 18.02.2012, 20:59 | |
|
[quote="Romdo"]Вход с подтяжкой вверх/вниз - тут чтоб каклибо задействовать вход надо прижать к земле (вверх) или к питанию(вниз), например кнопкой к земле ???
quote] Можно для этого, если хватит сопротивления подтяжки. Hi-z вход без подтяжек. Если такой вход подключать к выходу с push-pul, то нет смысла вводить подтяжку. Выход push-pul, это выход с двумя устойчивыми состояниями.
0
|
|
|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 132
|
|||
| 18.02.2012, 21:03 | |||
0
|
|||
|
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
|
|
| 18.02.2012, 21:39 | |
|
Из STM32F10x_ref_manual стр.74 рисунок 9, позволил себе чуть дорисовать.
Имеется на входе два отключаемых резистора R1, R2, На выходе есть 2 транзистора VT1, VT2, На рисунке я его показал крестом ключ (для наглядности) S1. Рассмотрим входную цепь "INPUT DRIVER" Итак каждый резистор R1 и R2 отключаемый (имеет последовательно включенный ключ). Если замкнут ключ в цепи R1, то получиться "- Вход с подтяжкой вверх", если в цепи R2 "- Вход с подтяжкой вниз". если оба ключа разомкнуты, то получиться плавающий вход "Input Ftooting". т.е. если нужна кнопка, по настраиваем "- Вход с подтяжкой вверх" и цепляем кнопку от порта на землю. кнопка не нажата - на порту будет "1", нажата -"0". или наоборот настраиваем "- Вход с подтяжкой вниз" и цепляем кнопку от порта на "+Uп" кнопка не нажата - на порту будет "0", нажата -"1". В режиме "Input Ftooting" если хочешь кнопку, то надо внешний резистор ставить. Выход "OUTPUT DRIVER" Ключ S1 замкнут. Если транзисторы VT1 и VT2 работают в противофазе то будет режим "- Выход тяни-толкай (push-pull)" если VT1 отключен, а VT2 работает и резисторы R1, R2 отключены, -- получаем режим "- Выход с открытым коллектором (стоком, если быть точным)" Если Ключ S1 разомкнуть, резисторы отключить, т.е. выход будет "оторван" от всех цепей получиться режим "Выход с третьим состоянием"
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 10
|
|
| 18.02.2012, 22:56 | |
|
judshym огого, спасибо что так детально разжевал :) многое понял
А для чего вообще нужен Hi-Z режим ? как Вы писали выше "необходимо, например, если необходимо объединить ВЫХОДЫ микроконтроллера и ВЫХОДЫ другого устройства, без коллизий." но я не очень понял =\
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 10
|
|||||||||||
| 20.02.2012, 21:39 | |||||||||||
|
С Hi-Z вроде разобрался
Теперь если не сложно объясните КАК происходит это конфигурирование ?? =\ Вот кусочек кода из Keil который выкладывал Ди:
Строки конфигурирования CRL регистров
НО ... не понял как происходит это выставление. В фрагменте строки "GPIO_CRL_CNF5" мы сбрасываем в 00 (это вроде понятно и режим Push-Pull тоже) но как установить режимы 01, 10, 11 согласно таблице <Изображение удалено> Тоже самое по поводу установки скорости порта, объясните КАК происходит эта установка режимов ??? В АВР все было просто (на примере ДДРх, просто выставлял 0 и 1 в нужном количестве). И еще заметил что у ВХОДа и ВЫХОДа портов согласно картинке одинаковые комбинации (00, 01, 10) но бит "MODE[1:0] 00" выставляет порт на вход, если не прав поправьте меня :) Заранее спасибо ! :)
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 132
|
|
| 20.02.2012, 21:58 | |
|
в файле "stm32f10x.h" прописаны макросы для всей переферии. Например, GPIO_CRL_CNF5 соответствует 0x00C00000 или в двоичной 0b0000 0000 1100 0000 0000 0000 0000 0000. Т.е можно видеть, что при логическом сложении (символ |) с каким либо значением в регистре вы установите эти два бита в регистре. Положение этих двух единиц в GPIO_CRL_CNF5 соответствует положению битов CNF5[1:0] в регистре CRL. Для работы только с одним битом (либо 0 либо 1) блока CNF5 есть макросы GPIO_CRL_CNF5_0 для бита ноль и GPIO_CRL_CNF5_1 для бита 1. С остальными регистрами все точно так же.
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 10
|
|||||||||||
| 20.02.2012, 23:35 | |||||||||||
|
Итак, покопался я по файлу "stm32f10x.h" - свалка еще та :)
нашел нужные "кусочки" из примера на мигание диодом, но и тут опять в замешательстве =\ (у меня STM32VL Dyscovery, и диоды на 8м и 9м порту С)
Если есть какие то замечания или ошибки - пишите. Спасибо.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 132
|
|
| 21.02.2012, 00:06 | |
|
Похоже на правду
0
|
|
|
k0dir
|
||
| 30.08.2014, 20:24 | ||
если я цепляючерез резистор 10к 9В, то в точке соединения 4.5 при том что внутрення подтяжка 40 кОм, следовательно Hi-Z должно быть гораздо выше |
||
| 30.08.2014, 20:24 | |
|
Помогаю со студенческими работами здесь
13
Чем связать STM32 + STM32 в одном корпусе? Режимы Режимы работы glut режимы режимы энергосбережения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|