Страница 4 из 9

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

Добавлено: 15 май 2013, 09:06
PKM
Если речь идет только о шаге - в линуксе есть коррекция винта. Но опять же не в маче.
А что именно клиентов не устраивает в линуксе? Добавь десяток-два железных кнопочек на панели рядом с экраном :)
ПС лучше всего красивые скрины в маче не показывай им :hehehe:

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

Добавлено: 15 май 2013, 09:13
nkp
PKM писал(а):красивые скрины в маче не показывай им
to Афтаев:
покажи красивый скрин мача
правда хочеться увидеть тот "идеал" к которому стремиться...
(до этого видел только наляпистые экраны - имхо - игрушечные напоминают)

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

Добавлено: 15 май 2013, 09:22
michael-yurov
Я вот когда делал, сделал все одноцветным, мне самому нравилось:
Mach3_black.png (3887 просмотров) <a class='original' href='./download/file.php?id=14636&mode=view' target=_blank>Загрузить оригинал (218.5 КБ)</a>
mach3_white.png (3887 просмотров) <a class='original' href='./download/file.php?id=14637&mode=view' target=_blank>Загрузить оригинал (329.18 КБ)</a>
А народ недоволен - мол расположение кнопок нестандартное, цвета не, как в оригинале и т.п.
вот и получилось в итоге:
RS.png (3887 просмотров) <a class='original' href='./download/file.php?id=14638&mode=view' target=_blank>Загрузить оригинал (69.31 КБ)</a>

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

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

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


PS Скрин от michael-yurov лучший и чуть ли не первый солидный скин для Мача, которяй я видел. (скины матеров не в счет)
PSS Мач запускал только два раза - первый оч. давно, запустил, увидел всю эту красоту - сразу удалил :), второй когда тестировал генератор шагов.

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

Добавлено: 15 май 2013, 09:44
tooshka
Тема плавно перетекла совсем в другое русло)) А почему в линукс снс трудно-невозможно? такие морды писать??

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

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

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

За похвалу - спасибо, очень приятно такие слова услышать.
Я вот тоже долго и упорно сопротивлялся уродскому виду Mach3, а потом сдуру решил попробовать, что это за программа, решил, что сделаю шкурку и будет хорошо. До сих пор жалею что с ним связался.
Это не программа, это оружие холодной войны против энтузиастов ЧПУ.

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

Добавлено: 15 май 2013, 09:52
aftaev
michael-yurov, ждем коробочку желательно как у китайцев но дешевле, баксов этак за 10 :)

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

Добавлено: 15 май 2013, 09:53
michael-yurov
tooshka писал(а):Тема плавно перетекла совсем в другое русло)) А почему в линукс снс трудно-невозможно? такие морды писать??
Ничего страшного, все важное для начала процесса изучения уже обсудили,
а сейчас остается просто читать, читать. и пробовать, а потом снова много читать.
aftaev писал(а):michael-yurov, ждем коробочку желательно как у китайцев но дешевле, баксов этак за 10 :)
За 10 не сделаю. Оказалось, простейшие вещи (разъемы, стабилизаторы, переключатели, оптоинтерфейсы, DC-DC преобразователи и т.п. очень дорого стоят), в итоге в $10 никак не уложиться.

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

Добавлено: 15 май 2013, 10:52
Сергей Саныч
tooshka писал(а):А почему в линукс снс трудно-невозможно? такие морды писать??
так думаю, никому не надо. Это не в "стиле Unix" :) Хорошо, что графический интерфейс вообще есть.

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

Добавлено: 15 май 2013, 11:10
nkp
tooshka писал(а):такие морды писать??
тут основное понять - какие - "такие" ??
по пунктам...
Serg-tmn писал(а):так думаю, никому не надо. Это не в "стиле Unix"
экранов в емс написано несколько- я имею в виду не расположение кнопок,а концептуальные решения...
========
в крайнем случае можно взять тот же (полюбившийся) экран мача и скопировать его под емс ;)
будет на 85% похоже...

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

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

ЕМС лучше обсуждать в другой теме, здесь как бы про СТМ32, потому с дискуссией про ЕМС завязую

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

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

Если продолжать, то в более подходящей теме. :)

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

Добавлено: 20 май 2013, 23:26
michael-yurov
Не смог я осилить эту тему... :cry:
Уже неделю смотрю на все на это, как баран на новые ворота, и ни с места.

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

Вроде бы с логикой работы прерываний немного разобрался, но что писать на белом листе - загадка.
А при попытке почитать что-то еще, мозг отказывается воспринимать дальнейшую неструктурируемую информацию.

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

Добавлено: 21 май 2013, 00:21
Serg
Достаточно двух библиотек: cmsis и stdperf.
показывай что наваял, только не в виде проекта (а то долго будешь ждать ответа :) ), а в виде содержимого файлов, которые сам создавал/правил

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

Добавлено: 21 май 2013, 00:41
michael-yurov
Какие конкретно файлы нужно подключать к проекту, наверное, разберусь, ориентируясь на используемые функции.

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

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

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

Дальше - совсем теряюсь.

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

Добавлено: 21 май 2013, 08:39
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);
         
}

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

Добавлено: 21 май 2013, 12:33
michael-yurov
Спасибо, позже поразбираюсь.
Но на первый взгляд это не то, что мне хотелось увидеть.
Хотелось бы понять, какие конкретно действия необходимо и достаточно осуществить.
И хотелось бы максимально использовать функции из приведенных библиотек.

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

Добавлено: 21 май 2013, 13:59
Impartial
michael-yurov писал(а):Хотелось бы понять, какие конкретно действия необходимо и достаточно осуществить.
Если действия со средой средой, то могу объяснить только по IAR. Если в плане настройки периферии, то тут лишнего ничего нет.
А с библиотеками, если есть горячее желание, придется разбираться самому. На мой взгляд это бесполезная трата времени.

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

Добавлено: 21 май 2013, 17:43
michael-yurov
Impartial писал(а):Если действия со средой средой, то могу объяснить только по IAR.
В плане периферии микроконтроллера.
Мне бы русскими словами, а то текст выше для меня практически не воспринимаемый.

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

Добавлено: 21 май 2013, 18:29
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);

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