STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение PKM »

Если речь идет только о шаге - в линуксе есть коррекция винта. Но опять же не в маче.
А что именно клиентов не устраивает в линуксе? Добавь десяток-два железных кнопочек на панели рядом с экраном :)
ПС лучше всего красивые скрины в маче не показывай им :hehehe:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение nkp »

PKM писал(а):красивые скрины в маче не показывай им
to Афтаев:
покажи красивый скрин мача
правда хочеться увидеть тот "идеал" к которому стремиться...
(до этого видел только наляпистые экраны - имхо - игрушечные напоминают)
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

Я вот когда делал, сделал все одноцветным, мне самому нравилось:
Mach3_black.png (3883 просмотра) <a class='original' href='./download/file.php?id=14636&mode=view' target=_blank>Загрузить оригинал (218.5 КБ)</a>
mach3_white.png (3883 просмотра) <a class='original' href='./download/file.php?id=14637&mode=view' target=_blank>Загрузить оригинал (329.18 КБ)</a>
А народ недоволен - мол расположение кнопок нестандартное, цвета не, как в оригинале и т.п.
вот и получилось в итоге:
RS.png (3883 просмотра) <a class='original' href='./download/file.php?id=14638&mode=view' target=_blank>Загрузить оригинал (69.31 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Nick »

michael-yurov писал(а):Я сейчас своим фильтром неравномерностей импульсов занят. Он даст намного более полезный результат, чем эта догоняющая коробочка.
Просто за счет того, что до идеала стабилизирует импульсы, выровняет скачки ускорения, и повысит частоту step для более мягкого микрошага.
В результате от обычного LPT удасться получить результат практически, как от килофлопа.
Можно одним решением убить сразу двух зайцев:
Делаем pid, stepgen и encoder. Если нет энкодера, то на обратную связь заводим выход с stepgen.
В итоге pid будет сглаживать траекторию, а энкодер если надо корректировать. Кстати, можно читать управляющие сигналы через тот же энкодер.

В общем, надо три "библиотеки" (компонента) pid, encoder и stepgen и возможность связать их пины, прямо как в hal. А можно и свой hal написать, и вообще взять готовые компоненты из LinuxCNC :)


PS Скрин от michael-yurov лучший и чуть ли не первый солидный скин для Мача, которяй я видел. (скины матеров не в счет)
PSS Мач запускал только два раза - первый оч. давно, запустил, увидел всю эту красоту - сразу удалил :), второй когда тестировал генератор шагов.
Аватара пользователя
tooshka
Почётный участник
Почётный участник
Сообщения: 1803
Зарегистрирован: 24 окт 2012, 14:26
Репутация: 209
Настоящее имя: Андрей
Откуда: Нижний Новгород
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение tooshka »

Тема плавно перетекла совсем в другое русло)) А почему в линукс снс трудно-невозможно? такие морды писать??
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

Nick писал(а):Можно одним решением убить сразу двух зайцев:
Делаем pid, stepgen и encoder. Если нет энкодера, то на обратную связь заводим выход с stepgen.
В итоге pid будет сглаживать траекторию, а энкодер если надо корректировать. Кстати, можно читать управляющие сигналы через тот же энкодер.

В общем, надо три "библиотеки" (компонента) pid, encoder и stepgen и возможность связать их пины, прямо как в hal. А можно и свой hal написать, и вообще взять готовые компоненты из LinuxCNC
Пока не смог понять, что это, т.к. с линуксом мало дел имел.
Я эту штуку просто на микроконтроллере без библиотек и т.п. по простому делаю, без энкодера.
Алгоритм и правда очень похож на ПИД регулирование, или на ФАПЧ.

За похвалу - спасибо, очень приятно такие слова услышать.
Я вот тоже долго и упорно сопротивлялся уродскому виду Mach3, а потом сдуру решил попробовать, что это за программа, решил, что сделаю шкурку и будет хорошо. До сих пор жалею что с ним связался.
Это не программа, это оружие холодной войны против энтузиастов ЧПУ.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение aftaev »

michael-yurov, ждем коробочку желательно как у китайцев но дешевле, баксов этак за 10 :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

tooshka писал(а):Тема плавно перетекла совсем в другое русло)) А почему в линукс снс трудно-невозможно? такие морды писать??
Ничего страшного, все важное для начала процесса изучения уже обсудили,
а сейчас остается просто читать, читать. и пробовать, а потом снова много читать.
aftaev писал(а):michael-yurov, ждем коробочку желательно как у китайцев но дешевле, баксов этак за 10 :)
За 10 не сделаю. Оказалось, простейшие вещи (разъемы, стабилизаторы, переключатели, оптоинтерфейсы, DC-DC преобразователи и т.п. очень дорого стоят), в итоге в $10 никак не уложиться.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Сергей Саныч »

tooshka писал(а):А почему в линукс снс трудно-невозможно? такие морды писать??
так думаю, никому не надо. Это не в "стиле Unix" :) Хорошо, что графический интерфейс вообще есть.
Чудес не бывает. Бывают фокусы.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение nkp »

tooshka писал(а):такие морды писать??
тут основное понять - какие - "такие" ??
по пунктам...
Serg-tmn писал(а):так думаю, никому не надо. Это не в "стиле Unix"
экранов в емс написано несколько- я имею в виду не расположение кнопок,а концептуальные решения...
========
в крайнем случае можно взять тот же (полюбившийся) экран мача и скопировать его под емс ;)
будет на 85% похоже...
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение aftaev »

nkp писал(а):to Афтаев:
покажи красивый скрин мача
Ставим клиентам ЕМС. Пробуют. Открывают только видят эти убогие диалоговые окна, в которых хрен знает где искать флешку сразу кричат нам это не подходит.
nkp писал(а):правда хочеться увидеть тот "идеал" к которому стремиться...
Стойки Сименс прям в которых можно чертить :)

ЕМС лучше обсуждать в другой теме, здесь как бы про СТМ32, потому с дискуссией про ЕМС завязую
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Serg »

Serg-tmn писал(а):так думаю, никому не надо. Это не в "стиле Unix" :) Хорошо, что графический интерфейс вообще есть.
В "стиле Unix" - это когда кто-то что-то делает и отдаёт всем исходники и если кому-то не нравятся какие-то мелочи, то он просто переделывает как хочет. И подобные переделки народ как правило считает чем-то вроде тонкой настройки, недостойной публикации, разве что общую идею. А вы много публикуете своих настроек для используемых программ?
А для того-же Mach3 многие изменив цвет или расположение пары кнопок громко объявляют о создании принципиально нового, суперудобного скринсета.
Ещё в "стиле Unix" - это когда небольшая программка хорошо делает своё небольшое дело, но зато все такие программы очень хорошо умеют дружить друг с другом и из них как из конструктора можно собирать средства для решения поставленных задач. Как правило графический интерфейс - это всего-лишь один из компонентов, и если в нём нет необходимости, то его можно и не использовать. Пример - linuxcnc, оно вполне может нормально управлять станком без графического интерфейса. В виндовс-же практически все программы, особенно разных авторов, друг другу враги и конкуренты, и каждая старается уметь делать всё то, что и конкуренты плюс ещё чего-нибудь.

Если продолжать, то в более подходящей теме. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

Не смог я осилить эту тему... :cry:
Уже неделю смотрю на все на это, как баран на новые ворота, и ни с места.

Хотел начать писать свою программу на отладочной плате с чистого листа.
Первый шаг - вызвать процедуру прерывания при изменении состояния какого нибудь пина, например - того, к которому подключена пользовательская кнопка.
И все - ступор!
Не понимаю, какие библиотеки нужно подключить,
Не понимаю, что, где и как я должен настроить,
Не понимаю, какие функции вызвать и какие параметры в них нужно передать,
Не понимаю даже, как будет называться процедура, обрабатывающая прерывание.

Вроде бы с логикой работы прерываний немного разобрался, но что писать на белом листе - загадка.
А при попытке почитать что-то еще, мозг отказывается воспринимать дальнейшую неструктурируемую информацию.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Serg »

Достаточно двух библиотек: cmsis и stdperf.
показывай что наваял, только не в виде проекта (а то долго будешь ждать ответа :) ), а в виде содержимого файлов, которые сам создавал/правил
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

Какие конкретно файлы нужно подключать к проекту, наверное, разберусь, ориентируясь на используемые функции.

Пока ничего не навоял. Белый лист.
Не могу начать, туплю.

Хотелось бы использовать функции и константы из файла EXTI библиотеки периферии.
Это то, что мне нужно?
Untitled-1.png (3824 просмотра) <a class='original' href='./download/file.php?id=14787&mode=view' target=_blank>Загрузить оригинал (72.96 КБ)</a>
Я так понимаю, что первым делом я должен настроить источник опорной частоты для порта с нужным мне пином.

Потом, вероятно, настроить этот пин на вход? правильно?

Дальше - совсем теряюсь.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Impartial »

Вот так это приблизительно выглядит для STM32f100. Выдернуто из проекта поэтому мог что то забыть.
Обработчик прерывания по спаду нажатия кнопки на порте А11 пустой. Происходит только сброс бита прерывания.

Код: Выделить всё

#include "stm32f10x.h"

void init(void)
{
RCC->CR |= RCC_CR_HSION;
while(~RCC->CR & RCC_CR_HSIRDY);

RCC->CR |= RCC_CR_HSEON;
while(~RCC->CR & RCC_CR_HSERDY);
RCC->CFGR   =   RCC_CFGR_PLLMULL3 | RCC_CFGR_PLLSRC; 
RCC->CR |= RCC_CR_PLLON;
while(~RCC->CR & RCC_CR_PLLRDY);

RCC->CFGR |= RCC_CFGR_SW_PLL;
while ((RCC->CFGR & (RCC_CFGR_SWS_HSE | RCC_CFGR_SWS_PLL)) != RCC_CFGR_SWS_PLL);

RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;

//EXTI INTERRUPT SETUP
  GPIOA->CRH &= ~(GPIO_CRH_CNF11 | GPIO_CRH_MODE11);//A11 
  GPIOA->CRH |= GPIO_CRH_CNF11_0; //AC1
  AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI11_PA; // A11
  EXTI->IMR  |= EXTI_IMR_MR11;  //INT A11
  EXTI->FTSR |= EXTI_FTSR_TR11; //FALING EDGE
  
NVIC->ISER[0] |= NVIC_ISER_SETENA_7;//ENABLE EXTI1 INT 7 NUM PIN_A11

}

void EXTI1_IRQHandler(void) //interrupt faling edge GPIOA_11
{
EXTI->PR |= EXTI_PR_PR1;
//user code
}


void main(void)
{
   init();
   while(1);
         
}
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

Спасибо, позже поразбираюсь.
Но на первый взгляд это не то, что мне хотелось увидеть.
Хотелось бы понять, какие конкретно действия необходимо и достаточно осуществить.
И хотелось бы максимально использовать функции из приведенных библиотек.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Impartial »

michael-yurov писал(а):Хотелось бы понять, какие конкретно действия необходимо и достаточно осуществить.
Если действия со средой средой, то могу объяснить только по IAR. Если в плане настройки периферии, то тут лишнего ничего нет.
А с библиотеками, если есть горячее желание, придется разбираться самому. На мой взгляд это бесполезная трата времени.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение michael-yurov »

Impartial писал(а):Если действия со средой средой, то могу объяснить только по IAR.
В плане периферии микроконтроллера.
Мне бы русскими словами, а то текст выше для меня практически не воспринимаемый.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics

Сообщение Impartial »

Все очень просто!

RCC->CR |= RCC_CR_HSION;
while(~RCC->CR & RCC_CR_HSIRDY);
Эти строки значат:
В микроконтроллере есть блок отвечающий за тактирование (RCC) он так и называется в документации.
В этом блоке есть регист (CR - регистр управления). В этом регистре есть бит HSION отвечающий за включение/выключение тактирования от внутреннего RC генератора. Чтобы не лазить каждый раз и не смотреть где этот бит в позиции регистра, берем его по имени, объявленному в "stm32f10x.h".
Устанавливаем его в 1 (операция |= ).
Это равнозначно тому, что если записать по адресу 0х40010000 (RCC) + 0x00000000 (CR) число 1 (бит HSION);
Точнее считаем 16 бит по этому адресу, сделаем операцию "ИЛИ" с 1 и запишем обратно.
Далее в цикле проверяем бит HSIRDY в этом же регистре. Он установится когда внутренний генератор запустится и выйдет на рабочий режим.
Это операция сделана на всякий случай так как при включении микроконтроллера внутренний генератор включается автоматом.
Точно так же и все остальное. В записи "RCC->CR" RCC это базовый адрес периферийного устройства, а "CR" это смещение внутри блока.

RCC->CR |= RCC_CR_HSEON;
while(~RCC->CR & RCC_CR_HSERDY);

Здесь тоже самое, но включаем внешний генератор и ждем пока заведется кварц.
И так далее - все однотипно. Просто для разного семейства разные наборы периферии.
Ответить

Вернуться в «Электроника»