0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
1 | |
STM32F100RB на VL-Discovery портВ 2,3,4 пин не настраиваются19.10.2013, 00:27. Показов 8478. Ответов 13
Метки нет (Все метки)
Возникла интересная проблема. Вероятно по моей неопытности с архитектурой СТМ32.
Требуется включить внутренние подтягивающие резисторы прота В к плюсу питания. Все выводы первой половины порта слушаются, кроме 2,3,4 пина. Тоесть пины 0,1,5,6,7 удается подключить и к земле и к плюсу питания, а 2,3,4 не реагируют. При чем на 4 пине, постоянно включена подтяжка к +3.3В и нельзя поменять. На втором пине 0.15В и тоже не меняется. Остальные пины по умолчанию плавающие, с напряжениями где-то по середине напряжения питания. К тому же пины работают. Например на пин 2 поцепил прерывание, работает. Не работает включение подтяжки. Подумал, что у меня плата дискавери проблемная. Взял другую, точно такую же. Нифига не поменялось. Та же история. В чем же дело? Вот код которым пытаюсь включить подтяжку к +3.3В. Если вместо GPIO_Pin_2 пишу GPIO_Pin_0 или 1,5,6,7, то работает. Не понимаю: Код
#include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" int main() { GPIO_InitTypeDef PORT; //Затактируем все три порта RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE); PORT.GPIO_Pin = (GPIO_Pin_2); PORT.GPIO_Mode = GPIO_Mode_IPU; //PORT.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOB, &PORT); while(1) { //Программа ничего не делает в пустом цикле } }
0
|
19.10.2013, 00:27 | |
Ответы с готовыми решениями:
13
STM32F100RB (discovery) и I2C Плохо ли для ryzen 5 3400g, на материнке с 8 пин разъемом, только на 4 пин вставленным 16 пин разъем питания на материнке Fujitsu D2990-A Можно ли как-то запитать от БП с 20(24) пин? Можно ли воспользоваться 8 пин разъемом БП, как 6 пин того же БП ? |
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
19.10.2013, 00:47 | 2 |
Только что проверил порт А, там все нормально. Все ноги подтягиваются к +3.3В.
А вот что происходит с портом В не понимаю. По схеме от VL-Dyscovery к порту В ничего не подключено. Что за фигня?
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
19.10.2013, 00:47 | 3 |
Иду проверю порт С...
Порт С тоже в порядке. В общем 2,3,4 пины порта В не реагируют на команды включения подтягивающих резисторов. Что делать? Куда смотреть?
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
19.10.2013, 00:54 | 4 |
Блин, что за чайниковский подход! Вы когда уже в документацию заглянете?
Datasheet -> PB2,3,4. Интересный пунктик - "Main function (after risit)".
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
19.10.2013, 01:01 | 5 |
Конечно чайниковский. Не все же сразу родились гуру. Я-то 3-й день всего с СТМ32. С прерываниями разобрался только по мануалу. А тут подумал глюк какой-то.
Ладно, благодарю за подсказку, иду читать рефман.
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
19.10.2013, 01:14 | 6 |
Сообщение от TDuki
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
19.10.2013, 01:25 | 7 |
Благодарю! Иду читать цикл статей. Временно перейду на порт А с ним хоть проблем меньше.
Посмотрел рефман. PB2 - PB2/BOOT1 PB3 - JTDO PB4 - NJTRST И что же с этим делать? Я же чайник. Я так понял на ноги 3,4 завязан интерфейс отладчика. Могу ли я как-то перенастроить 2,3,4 ноги, или лучше их не трогать, а испоьзовать другие ноги порта? Ну хотя бы PB2 освободить... (только что такое BOOT1?) ЗЫ Продвинутых гуру, прошу подсказать а не нервничать сразу. Ведь форум тогда зачем?
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
19.10.2013, 01:40 | 8 |
Сообщение от TDuki
Отладочные пины - смотря каким отладчиком пользуетесь. Если не JTAGовским, а встроенным в Dyscovery, тогда можете эти два пина переопределить (читайте Мануал). Но imho проще не изобретать приключения на свою голову и пользоваться пока остальными пинами.
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
19.10.2013, 01:55 | 9 |
Так и поступлю. Передалаю девайс на порт А.
Спасибо за помощь:)
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
19.10.2013, 11:37 | 10 |
Сообщение от TDuki
И кстати на PORTA - PA13-14v сидит SWD ... :)))))))
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
13.11.2013, 17:03 | 11 |
Сообщение от dosykus_2
И кстати на PORTA - PA13-14v сидит SWD ... :))))))) Ну не то, что бы многоногий, но ноги нужны. 3 входа от датчиков Холла, 6 выходов ШИМ для драйвера 3-фазного моста, аналоговый вход для измерения тока, несколько цифровых входов для концевых выключателей. Плюс выводы для UART.
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
13.11.2013, 17:10 | 12 |
Ну и сразу вопрос для знающих. Мне нужен ШИМ сигнал. Но не сам ШИМ на выводах, а прерывание по ШИМ. По нему через таблицу коммутации фаз двигателя, будут управляться конкретные ключи моста.
Вот и вопрос, можно ли настроить таймер, так что бы он генерировал не ШИМ на выводах МК, а прерывания по изменению сигнала? Очевидное решение, это настроить ШИМ на таймере на какой-то вывод МК, а к этому выводу привязать обработчик внешнего прерывания. Но хотелось бы экономить выводы. Если это возможно конечно. Если невозможно, то остатся пожертвовать одним выводом.
0
|
0 / 0 / 0
Регистрация: 12.08.2012
Сообщений: 1,217
|
|
13.11.2013, 19:16 | 13 |
У таймера всяко должно быть прерывание по сравнению и по переполнению, можно это использовать, но как мне представляется это таблица коммутации должна управлять аппаратными шимами а не наоборот, темболее что в stm32 есть таймеры с аппаратным dead-time и fault protection, что как раз заточено на управление в том числе двигателями.
0
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
14.11.2013, 00:27 | 14 |
Сообщение от mShit
Может кто-то сможет подсказать, или дать участок кода для настройки ТИМ1 в трехфазный ШИМ? Хотя именно для бесколлекторника у меня есть сомнения... Продвинутый таймер, насколько я понимаю, заточен для получения 3-фазной ШИМ сразу на всех 6 выводах со сдвигом фаз 120 градусов, что превосходно для создания частотников для асинхронных двигателей. Для BLDC алгоритм немного другой. Нужно включать 2 из 3-х фаз на основании сигналов от датчиков Холла. Ну а дедтайм не проблема. Этим занимается драйверная микросхема IR2130.
Сообщение от mShit
Мне пока проще генерировать ШИМ прерывание и в обработчике прерывания включать и выключать нужные выводы МК. Хотя это более ресурсоемко, но мне пока это понятнее.
Сообщение от mShit
Может есть ссылочка на участок кода где настраивается таймер на такой режим?
0
|
14.11.2013, 00:27 | |
14.11.2013, 00:27 | |
Помогаю со студенческими работами здесь
14
4 или 6 пин,вместо 8 пин-это возможно? Особенности подключений БП 20 и 24 пин к материнкам 24 пин На Бп 4 пин для проца а на мамке 8 пин Питание ЦПУ 4 пин вместо 8 пин Можно ли вставить 4 пин джек в 3 пин? Проверка пин кода и в соответствии с ним заполнить поля после ввода пин-кода на другой форме Плата 24 пин с БП 20 пин Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
|
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
|
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
|
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
|
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
|
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
|
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
|
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
|
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
|
Как обойтись без проверки на null, чтобы избежать NullPointerException в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
|
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:void(0)"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
|
Как узнать индекс элемента списка по его значению в Python
hw_wired 24.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только манипулировать элементами списка, но и определять их точное местоположение. Индекс элемента представляет собой. . .
|