STM32

На этом форуме Вы можете задать вопросы знатокам программы и автору.
romanmeteo
Рядовой
Сообщения: 14
Зарегистрирован: 11.07.2018{, 05:59}
Репутация: 0
Имя: Роман

STM32

#1

Сообщение romanmeteo » 13.07.2018{, 13:35}

Добрый день Всем.
Прежде всего хочу выразить огромную благодарность автору и всему сообществу за создание поддержание программного языка FLProg, отличный программный продукт.
Вот назрел вопрос к знатокам и автору, а возможно ли появление в списке STM32F103C8T6 контроллера, у меня периодически возникают проблемы с ардуино контроллерами поэтому я периодически использую stm32, они с более широкими возможностями и по портам и по периферии?

Аватара пользователя
Golan
Капитан
Сообщения: 808
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 70
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

STM32

#2

Сообщение Golan » 13.07.2018{, 13:37}

Вроде обещал Сергей
Добро не ценится в современном мире, люди от него наглеют!

romanmeteo
Рядовой
Сообщения: 14
Зарегистрирован: 11.07.2018{, 05:59}
Репутация: 0
Имя: Роман

STM32

#3

Сообщение romanmeteo » 13.07.2018{, 13:40}

Очень нужно ждем с нетерпением еще раз спасибо!

Аватара пользователя
nalnik
Капитан
Сообщения: 778
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 26
Откуда: Кисловодск

STM32

#4

Сообщение nalnik » 13.07.2018{, 14:13}

romanmeteo писал(а):
13.07.2018{, 13:35}
у меня периодически возникают проблемы с ардуино контроллерами
А можно узнать какие?
Я не злопамятный, Я записываю.

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

STM32

#5

Сообщение kalobyte » 13.07.2018{, 14:37}

обещали поддержку, я только что в другом посте написал про свой опыт теста пакета стм32
простой блинк почти 10к сожрал

вот проглядел сейчас и собрал не блинк, а рфид
Example sketch/program showing how to read data from a PICC to serial.
This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
Sketch uses 26356 bytes (40%) of program storage space. Maximum is 65536 bytes.
Global variables use 1288 bytes (6%) of dynamic memory, leaving 19192 bytes for local variables. Maximum is 20480 bytes.

а вот и блинк
Sketch uses 10156 bytes (15%) of program storage space. Maximum is 65536 bytes.
Global variables use 892 bytes (4%) of dynamic memory, leaving 19588 bytes for local variables. Maximum is 20480 bytes.

а вот для сравнения тот же блинк для меги328
Sketch uses 928 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.

если взять процентное соотношение, то стм32 тут проигрывает и для плк я не вижу особого выигрыша (можно взять ардуину мега), а гимора с библиотеками хватит с головой

надо у флпрог менять концепцию и уходить с ардуины, т.к. генерируемый сишный код все равно непригоден для чтения, то пусть флпрог генерит не ардуиновский с++, а чистый си, который можно скормить компилятору кейла или какой там сейчас самый крутой компилятор считается

и еще надо сделать отдельную прогу или плюшку в флпроге, которая позволит делать не только пользовательские библиотеки из кода или модулей, но и полностью интерфейс, где можно будет мышкой выбирать из готовых значений как это у встроеных модулей

Аватара пользователя
Sancho
Полковник
Сообщения: 2764
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 337
Откуда: Ярославль.
Имя: Александр
Контактная информация:

STM32

#6

Сообщение Sancho » 13.07.2018{, 14:47}

kalobyte писал(а):
13.07.2018{, 14:37}
надо у флпрог менять концепцию и уходить с ардуины, т.к. генерируемый сишный код все равно непригоден для чтения, то пусть флпрог генерит не ардуиновский с++, а чистый си, который можно скормить компилятору кейла или какой там сейчас самый крутой компилятор считается

и еще надо сделать отдельную прогу или плюшку в флпроге, которая позволит делать не только пользовательские библиотеки из кода или модулей, но и полностью интерфейс, где можно будет мышкой выбирать из готовых значений как это у встроеных модулей
Одно маленькое, но весомое, замечание на Ваши "хотелки".
Автору, как и большинству пользователей, важным является графическое создание программы.
Что-бы Вы сказали, если на выходе FLProg будет бинарник?
Кстати, тема хотелок не здесь.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

STM32

#7

Сообщение kalobyte » 13.07.2018{, 16:08}

Sancho писал(а):
13.07.2018{, 14:47}
Что-бы Вы сказали, если на выходе FLProg будет бинарник?
так и должен быть бинарник
флпрог будет запускать мейк файл для кейла
Sancho писал(а):
13.07.2018{, 14:47}
Автору, как и большинству пользователей, важным является графическое создание программы.
так я нигде и не говорил, что надо переходить на код
я говорю, что флпрог должен уйти от ардуины, т.к. ардуина это упрощенное программирование в коде, а флпрог генерит нечитаемый код, но компилятору на это по барабану
однако библиотеки и язык ардуины дают большой оверхед, особенно для стм32, что делает бессмысленным переходит на стм32, т.к. никакого выигрыша в памяти нет, следовательно время будет потрачено зря

а вот если флпрог будет использовать чистый си в блоках и библиотеки на чистом си, то тогда будет большой выигрыш у стм32 по памяти, скорости, количеству выводов и перефирии и самое главное по цене
я смотрел цену на blue pill - она стоит как ардуина мини, но у таблетки больше выводов, есть железный усб, часы, железная пищалка, модуля рассчета црц, уникальный серийник (можно привязывать прошивку к железке) и еще куча всего, что делает мегу328 непригодной для дальнейшего использования и следовательно нет смысла тратиться поддержку на устаревшего контроллера

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


придумать бы блок ртос и потом подцеплять к нему модули или как-то так
Sancho писал(а):
13.07.2018{, 14:47}
Кстати, тема хотелок не здесь.
это пока мои размышления о дальнейшем развитии флпрог, хотелки слишком жирные

Аватара пользователя
Rovki
Полковник
Сообщения: 2415
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 62
Откуда: Чехов
Имя: Анатолий
Контактная информация:

STM32

#8

Сообщение Rovki » 01.12.2018{, 00:13}

Может кому интересно будет http://micropython.org/
Электронщик до мозга костей и не только

aidar_i
Капитан
Сообщения: 982
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 89
Откуда: Уфа
Имя: Айдар
Контактная информация:

STM32

#9

Сообщение aidar_i » 09.07.2019{, 00:46}

Достал свой STM32. Прошивается с помощью STM FlashLoader Demo.exe. Но никак не смог с помощью UART и ST-LINK, пишет при прошивке по UART: Couldn't find the DFU device: [1EAF:0003]. Так и не смог решить, хотя все делал по инструкциям.

PS. Решил, пытался прошивать через адаптер UART. Подключил к USB STM32, заработало все.

jorj22
Рядовой
Сообщения: 31
Зарегистрирован: 03.07.2018{, 16:08}
Репутация: 0
Имя: Юрий

STM32

#10

Сообщение jorj22 » 09.07.2019{, 23:07}

Обратите внимание на эту тему : viewtopic.php?f=181&t=5426

aidar_i
Капитан
Сообщения: 982
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 89
Откуда: Уфа
Имя: Айдар
Контактная информация:

STM32

#11

Сообщение aidar_i » 17.07.2019{, 07:44}

Попробовал скомпилировать в 3 контроллера программу эту.
СпойлерПоказать
Сравнение МК.png
Сравнение МК.png (8.33 КБ) 405 просмотров
В таблице все видно!
Ардуино код съедает в STM32 много памяти, но из за того , что у него объем памяти (особенно динамической) немалый (хоть основной меньше у МЕГИ) , он работает хорошо данной программой (с настройкой платы на 128к).
Кстати у моего STM 32 объем памяти 128к (хотя пишут 64к). Когда в настройках ставлю 64 -программа не влезает.
Использование в этом проекте STM в этой программе оправдывает себя полностью, экономически тем более. Нужно иметь только МК с памятью не менее128к, тогда ардуино проекты будут работать неплохо.
Такой вывод я получил, начав мучить его.

ecoins
Сержант
Сообщения: 271
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 30
Откуда: Шатура
Имя: Энвер

STM32

#12

Сообщение ecoins » 17.07.2019{, 19:53}

Подтверждаю, все как Вы написали.
Но STM32 в разы быстрее работает чем Mega,Uno - зависит конечно от проекта.
Если в нем есть встроенные delay() ( в библиотеках к примеру ), тут быстродействие процессора мало на что повлияет.
-------
И еще снова о замечательном качестве - толерантность многих пинов к +5в.

Аватара пользователя
Nikan
Капитан
Сообщения: 743
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 40
Откуда: москва

STM32

#13

Сообщение Nikan » 17.07.2019{, 20:05}

ecoins писал(а):
17.07.2019{, 19:53}
Если в нем есть встроенные delay() ( в библиотеках к примеру ), тут быстродействие процессора
А поведайте нам как в Ваших библах (например для дисплея ) организован точный отсчет времени?
А то про delay много пишите конкретику бЫ....

ecoins
Сержант
Сообщения: 271
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 30
Откуда: Шатура
Имя: Энвер

STM32

#14

Сообщение ecoins » 17.07.2019{, 21:23}

Во всех библиотеках обходимся без delay(). Отсчёт идёт с точностью до ms. В диспетчере задач с точностью до mcs.

Аватара пользователя
Nikan
Капитан
Сообщения: 743
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 40
Откуда: москва

STM32

#15

Сообщение Nikan » 17.07.2019{, 21:32}

ecoins писал(а):
17.07.2019{, 21:23}
Во всех библиотеках обходимся без delay(). Отсчёт идёт с точностью до ms. В диспетчере задач с точностью до mcs.
так чем считаете ???
ответ будет или нет?

ecoins
Сержант
Сообщения: 271
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 30
Откуда: Шатура
Имя: Энвер

STM32

#16

Сообщение ecoins » 17.07.2019{, 21:45}

millis() и micros().
Подробнее в текстах открыто выложенных библиотеках - они с комментариями.

aidar_i
Капитан
Сообщения: 982
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 89
Откуда: Уфа
Имя: Айдар
Контактная информация:

STM32

#17

Сообщение aidar_i » 17.07.2019{, 21:47}

ecoins писал(а):
17.07.2019{, 19:53}
Но STM32 в разы быстрее работает чем Mega,Uno - зависит конечно от проекта.
Согласен! Мне в нем понравился, что динамическая память большая , даже с учетом , что используется больше памяти чем 4 раза по сравнению с UNO и MEGA.

Аватара пользователя
Nikan
Капитан
Сообщения: 743
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 40
Откуда: москва

STM32

#18

Сообщение Nikan » 17.07.2019{, 22:13}

ecoins писал(а):
17.07.2019{, 21:45}
millis() и micros().
Подробнее в текстах открыто выложенных библиотеках - они с комментариями.
Ну наконец то прямой ответ появился...
еще бы один - что будет если время цикла ( в котором считываете показания переменных millis() и micros() )
превысит необходимый интервал в библиотеке?

ecoins
Сержант
Сообщения: 271
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 30
Откуда: Шатура
Имя: Энвер

STM32

#19

Сообщение ecoins » 18.07.2019{, 03:56}

Nikan писал(а):
17.07.2019{, 22:13}
Ну наконец то прямой ответ появился...
еще бы один - что будет если время цикла ( в котором считываете показания переменных millis() и micros() )
превысит необходимый интервал в библиотеке?
Будет не большое отставание для конкретного момента, которое потом будет скомпенсировано в следующем периоде, например:
500,500,499,501,500 - периоды в ms.
При правильно спроектированном проекте (среднего размере) изменение точности наступления события для Arduino Nano менее 1ms - я приводил фото с логического анализатора. На ESP32, STM32 - точность наступления каждого события в заданный период существенно выше.
Все это не так существенно в реальных проектах. В диспетчере есть и относительно точные метки времени (ограничения связаны с точностью таймеров контроллера) с периодом 10ms.

Аватара пользователя
Nikan
Капитан
Сообщения: 743
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 40
Откуда: москва

STM32

#20

Сообщение Nikan » 18.07.2019{, 10:26}

ecoins писал(а):
18.07.2019{, 03:56}
Будет не большое отставание для конкретного момента, которое потом будет скомпенсировано в следующем периоде, например:
500,500,499,501,500 - периоды в ms
в библе дисплея не увидел компенсацию отставания - если не сложно ткните в номер строки.
ecoins писал(а):
18.07.2019{, 03:56}
Все это не так существенно в реальных проектах.
как раз существенно - тайминги при передачи данных (особенно инициализация) жестко регламентированы производителем (в данном обсуждении) чипа дисплея.
ecoins писал(а):
18.07.2019{, 03:56}
В диспетчере есть и относительно точные метки времени (ограничения связаны с точностью таймеров контроллера) с периодом 10ms.
как будет работать библа( и будет ли) без жестких рамок диспетчера задач? при наличии аппаратных прерываний (например прием данных с Uart-ов, энкодера на пинах с прерываниями) ?
и с каких пор точность таймера контроллера стала чем-то ограничена, если стала - проясните плиз.
вот пример точности 0 таймер счетчика для AVR (там где считаются mikros() и millis() ) частота 16мг.ц

1 сек / 16 000 000 = 0,0000000625 это один такт проца, проц выполняет все инструкции за 1 такт - чтобы посчитать интервал надо 2 такта (в первом записываем значение в таймер во втором сравниваем получаем результат) итог подсчета - 0.125Us ( 0,125 микросекунды)
Мало ТОЧНОСТИ?

Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость